Unity 自动化打包XCode工程
每次打包都要手动修改Xcode的各种配置,于是研究了一下通过Unity提供的API设置XCode的各种配置
XCode签名
- 在我使用的Unity版本中(Unity2018.2)可以通过代码为XCode签名,PlayerSetting还可以设置权限等各种设置,具体请自行查看API:
//xxxx为你的证书的ID
PlayerSettings.iOS.appleDeveloperTeamID = xxxx;
PlayerSettings.iOS.appleEnableAutomaticSigning = true;
- unity提供一套api去修改xcode项目工程配置以及修改plist文件内容(当unity build结束后, 会自动回调OnPostProcessBuild) 新建一个脚本实现OnPostProcessBuild
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget bulidTarget, string path)
{
//Debug.Log("iOS 打包回调配置");
if (bulidTarget != BuildTarget.iOS) return;
//基础配置,得到工程的targetGuid
string projectPath = PBXProject.GetPBXProjectPath(path);
PBXProject project = new PBXProject();
string fileText = File.ReadAllText(projectPath);
project.ReadFromString((fileText));
string targetGuid = project.TargetGuidByName(PBXProject.GetUnityTargetName());
//"z.entitlemests"名字自取
var capManager = new ProjectCapabilityManager(projectPath, "z.entitlements", PBXProject.GetUnityTargetName());
//capability设置
SetCapabilities(capManager);
//BuildSetting
SetBuidSetting(project, targetGuid, projectPath);
//framework
AddFramework(project, targetGuid, projectPath);
//plist文件
AddPlist(path);
//代码
AddiosCode(path);
}
- 开启XCode Capabilities面板下的各种开关(列举两个,其它自查文档)
private static void SetCapabilitie