简介
近期项目升级到2019.4.10f1版本,在用自动化打包的时候,遇到了一些问题,其中一个是,在导出XCode工程之后,运行工程的时候,编译报错:'UnityFramework/UnityFramework.h' file not found
在之前版本没有问题,这个时候看下项目结构,Unity导出的XCode目录和之前版本不一样,现在有个MainApp文件夹,里面是入口文件main.mm
点击打开main.mm看到了报错这一行,头文件的引用 include <UnityFramework/UnityFramework.h>,看下项目目录中有UnityFramework文件夹和UnityFramework.h头文件,但是文件夹的层级目录不对
所以只需要在自动化打包代码中加入处理,把引用改成正确的路径即可。
public static void OnPostProcessBuild( BuildTarget target, string pathToBuiltProject )
{
if (target != BuildTarget.iOS)
{
Debug.LogWarning("Target is not iPhone. XCodePostProcess will not run");
return;
}
//main.mm中找不到UnityFramework/UnityFramework.h的问题
var mainAppPath = Path.Combine(pathToBuiltProject, "MainApp", "main.mm");
var mainContent = File.ReadAllText(mainAppPath);
var newContent = mainContent.Replace("#include <UnityFramework/UnityFramework.h>", @"#include ""../UnityFramework/UnityFramework.h""");
File.WriteAllText(mainAppPath, newContent);
}
再次打包,打开main.mm引用已经修改