XUPorter是unity导出xcode工程的自动化插件,因为后期Unity官方已经将相关API集成到引擎里,作者已经不再维护。
但对于大公司项目的自动化流程,短时间内更换一套API也是不太划算的,这里只记录一下修改XUPorter以兼容Unity2019.3之后导出xcode工程的UnityFramework形式。
其实很简单,先直接上代码,后面再讲原理。
//XCProject.cs中 Line 337
public PBXDictionary AddFile( string filePath, PBXGroup parent = null, string tree = "SOURCE_ROOT", bool createBuildFiles = true, bool weak = false )
{
//.....
PBXNativeTarget mainTarget = GetNativeTarget("Unity-iPhone");//获取主工程Target
ArrayList mainDic = (ArrayList)mainTarget.data["buildPhases"];//获取主工程的包含项目
//.....
//在switch中各种资源下,加入剔除操作即可
if(mainDic.Contains(currentObject.Key))
{
Debug.Log("currentObject is: " + currentObject.Key + " " + filePath);
continue;
}
}
这样生成的xcode工程就不会把咱们自己的资源、依赖、桥接等文件加入到主工程了。
着急用的朋友可以直接拿走,没