当点击 iOS 项目的“Build and Run”时,Unity 生成一个 Xcode 项目,启动 Xcode,构建项目,并在设备上运行它。我想在 Xcode 完成构建之后但在运行之前运行一个 shell 脚本。如果这只是一个 Xcode 项目,我可以简单地在构建阶段选项卡中添加一个“运行脚本”条目,但由于该项目是由 Unity 自动生成的,我不确定如何继续。
(如果重要的话,我正在运行 OS X Yosemite。)
最佳答案
取决于你想投入多少工作。
解决方案 A:使用 Unity 的 PostProcess
您可以使用 Unity 的 PostProcess
,相应地修改 Xcode 项目。
只需用 [PostProcessBuild]
注解标记一个静态方法,Unity 就会在 Unity 构建后执行它。
例子:
[PostProcessBuild]
static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
{
// modify the Xcode project here, or run the shell script directly (if it is ok to do this already here)
}
来源:
- 来源:http://docs.unity3d.com/412/Documentation/ScriptReference/PostProcessBuildAttribute.html
- 用于修改 Xcode 项目的 Python 脚本(不确定它是否可以在构建阶段添加 shell 脚本):https://github.com/kronenthaler/mod-pbxproj
- 如何在 C# 中启动进程:How do I start a process from C#?
解决方案 B:附加 Xcode 项目
您可以相应地修改您的 Xcode 项目,然后在开始下一个构建时只需使用 Append
,当检测到该文件夹已存在时,Unity 会询问您要做什么。
解决方案 C:手动执行
- 使用
Build
代替Build And Run
- 在 Unity 完成构建后修改 Xcode 项目
- 使用 Xcode 在设备上手动
运行
解决方案 D:以批处理模式运行构建/像 Jenkins 一样使用 CI
您可以从命令行(终端)调用构建,并在不同的构建步骤期间/之间做任何您想做的事情。但由于这是很多工作,我建议看一下像 Jenkins 这样的 CI。它带有 Mac OS X 的安装程序,并且设置起来并不难。我想有很多关于它的文档和问答。
Jenkins :http://jenkins-ci.org
我希望有适合您需要的东西。如果您需要更多帮助或信息,请告诉我。干杯。
关于ios - Unity3D/iOS : Running a shell script post-Xcode build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616356/