Unity编译至Xcode工程后自动添加文件和库的方法

为什么想要自动添加

由于Unity是全平台的游戏开发环境,在开发中针对特定平台的特定功能时,很难避免根据对象平台的不同而引入不同的依赖。包括源码,需要的库和框架等。在使用各种插件后这种情况愈发严重:比如想加入内购功能,StroreKit.framework必不可少,而且也需要相应的处理代码。按照一般的Unity插件开发流程,在完成.cs的接口声明和Unity侧的调用实现后,最重要的当然是在iOSnative侧完成实现。而在以前,包括依赖库和所有源码文件,都只有在Unity生成Xcode工程之后,再手动添加。如果工程小依赖少的话花不了太多时间,但是如果项目很大,很可能折腾一次就要十来分钟,严重影响了工作效率,必须加以解决。

怎么办

Unity开发团队也意识到了这个问题,在Unity编译的最后加入了一个脚本调用的命令,会自动搜索Editor文件夹下的PostprocessBuildPlayer,并进行调用,在该文件中可以自己加入脚本来向Xcode中添加库和文件。关于PostprocessBuildPlayer的详细信息,可以参看官方文档,关于向Xcode中添加文件或库,gonzoua的xcs也许是不错的选择。但是似乎xcs只能针对Xcode3来添加,在Xcode4中,主工程文件的结构发生了改变,导致xcs失效,而这个项目也迟迟没有更新(也许有时间我会考虑接手继续这个项目,但肯定不是现在...)。因此不得不打其他主意。

在Unity3.5中,加入了一个很棒的标签——[PostProcessBuild],被该标签标注的函数将自动在buildplayer后被调用,这为大家提供了一个不需要用脚本和命令行就能添加或修改编译得到的工程的绝好的入口。darktable用python实现了一个Xcode4工程文件读写的接口ModPBXProj,但是对于Unity来说,更需要的是C#的实现。Cariola完成了一部分实现,但是存在一些错误和不太好用的地方,代码也很乱。onevcat在其基础上进行了一些改进和整理。但是因为变动的还是比较大,很难merge回去,所以决定onevcat开了一个项目来继续推进这个项目。


Github地址:https://github.com/onevcat/XUPorter

你可能感兴趣的:(IOS开发,Unity开发)