1.修改ios启动入口
unity发布xcode工程中,默认启动入口类是UnityAppController,有的时候需要加入原生代码,又不能影响unity的发布过程,则需要在Assets/Plugins/iOS中加入CustomAppController.mm,此类继承UnityAppController,IMPL_APP_CONTROLLER_SUBCLASS宏会在工程运行后覆盖main.mm中的AppControllerClassName为自定义类。
2.unity中添加xcode entitlement
有时候需要在xcode中加入capability,修改证书的权限,而不影响unity发布xcode工程,则可以在assets中加入MSDKDev.entitlements,通过postprocess修改发布后的工程文件。主要代码:
var target_name = PBXProject.GetUnityTargetName();
var target_guid = proj.TargetGuidByName(target_name);
var src = AssetDatabase.GetAssetPath(file);
var file_name = Path.GetFileName(src);
var dst = buildPath + "/" + target_name + "/" + file_name;
FileUtil.CopyFileOrDirectory(src, dst);
proj.AddFile(target_name + "/" + file_name, file_name);
proj.AddBuildProperty(target_guid, "CODE_SIGN_ENTITLEMENTS", target_name + "/" + file_name)
3.修改android启动入口
android工程启动入口配置在AndroidManifest.xml,在plugins中覆盖此文件中的工程入口类,自定义类继承UnityPlayerActivity,另建立android工程,生成jar包,导入原工程。
4.xcode证书发布
使用第三方证书发布时,需要第三方提供development distribution证书的provision file(记录对应证书、entilement、设备id等信息)。
5.gradle中proguard混淆规则配置