2013-12-12 39 views
2

我正在为iOS构建和使用FacebookSDK。我想通过詹金斯自动化。现在,当我在编辑器中“构建并运行”时,它会正确构建xcode项目。但是当我通过命令行运行后,postbuildprocess从不运行。我无法在网上找到关于此问题的任何信息。有人有主意吗?或者需要其他信息来提出理论?Unity3d命令行Autobuild不运行postbuild

这里是自动构建代码:

[MenuItem("Build/iOS")] 
static void PerformiOSBuild() 
{ 
    EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.iPhone); 
    BuildPipeline.BuildPlayer(GetScenePaths(), "iOS",BuildTarget.iPhone,BuildOptions.None); 
} 

,这里是我的命令行ARGS:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath "/Users/USERNAME/Desktop/Work/PROJECTNAME/Unity/" -executeMethod AutoBuilder.PerformiOSBuild -quit -batchmode 
+0

尝试删除“SwitchActiveBuildTarget”。你应该只做过一次(第一次安装Jenkins项目)。我们实际上停止构建并在第一次切换构建目标后重新启动它。 – Jared

回答

1

我能够通过手动调用Facebook的后处理来解决这个问题。这里是我的构建脚本:

using System; 
using UnityEngine; 
using UnityEditor; 
using UnityEditor.FacebookEditor; 

class BuildScript 
{ 
    static void PerformBuild() 
    { 
     string[] scenes = { "Assets/monster_island.unity" }; 
     string buildPath = System.IO.Directory.GetCurrentDirectory() + "/iOS"; 
     BuildOptions opt = BuildOptions.None; 
     BuildTarget target = BuildTarget.iPhone; 

     // Run Xcode project build 
     BuildPipeline.BuildPlayer(scenes, buildPath, target, opt); 

     // Run Facebook's post-processing script 
     XCodePostProcess.OnPostProcessBuild(target, buildPath); 
    } 
} 

请记住,我是新来的Unity,所以如果在这里的东西看起来总体感觉自由地这么说。