//设置Capabilities
void SetCapabilities(string pathToBuildProject)
{
string projPath = pathToBuildProject + "/Unity-iPhone.xcodeproj/project.pbxproj"; //项目路径,这个路径在mac上默认是不显示的,需要右键->显示包内容才能看到。unity到处的名字就是这个。
UnityEditor.iOS.Xcode.PBXProject pbxProj = new UnityEditor.iOS.Xcode.PBXProject(); //创建xcode project类
pbxProj.ReadFromString(File.ReadAllText(projPath)); //xcode project读入
string targetGuid = pbxProj.TargetGuidByName(PBXProject.GetUnityTargetName()); //获得Target名
//设置BuildSetting
pbxProj.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
pbxProj.AddBuildProperty(targetGuid, "OTHER_LDFLAGS", "-ObjC");
pbxProj.SetBuildProperty(targetGuid, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym"); //定位崩溃bug
pbxProj.SetBuildProperty(targetGuid, "EXCLUDED_ARCHS", "armv7");
pbxProj.AddFrameworkToProject(targetGuid, "MediaPlayer.framework", false);
pbxProj.AddFrameworkToProject(targetGuid, "AdSupport.framework", true);
//添加资源
pbxProj.AddFileToBuild(targetGuid, pbxProj.AddFile(System.Environment.CurrentDirectory + "/LTBaseSDK_Oversea/ltgame.cfg", "Resource/ltgame.cfg", PBXSourceTree.Source));
//修改编译方式
string mmfile = pbxProj.FindFileGuidByProjectPath("Classes/UnityAppController.mm");
var flags = pbxProj.GetCompileFlagsForFile(targetGuid, mmfile);
flags.Add("-fno-objc-arc");
pbxProj.SetCompileFlagsForFile(targetGuid, mmfile, flags);
mmfile = pbxProj.FindFileGuidByProjectPath("Libraries/Plugins/IOS/LTSDK/LTSDKNPC.mm");
flags = pbxProj.GetCompileFlagsForFile(targetGuid, mmfile);
flags.Add("-fno-objc-arc");
pbxProj.SetCompileFlagsForFile(targetGuid, mmfile, flags);
pbxProj.WriteToFile(projPath);
string[] splits = PlayerSettings.applicationIdentifier.Split('.');
var capManager = new ProjectCapabilityManager(projPath, splits[splits.Length - 1] + ".entitlements", PBXProject.GetUnityTargetName());//创建设置Capability类
if (PlayerSettings.applicationIdentifier.Equals("com.longtugame.dzyz.longtu"))
{
//正式包,增加计费
capManager.AddInAppPurchase();
}
capManager.AddAssociatedDomains(new[]
{
"applinks:dy.longtugame.com"
});
capManager.WriteToFile();//写入文件保存
}