Unity自动打包——ios project builder

开发过程中想利用window系统打包Ipa文件,找到了ios project builder这个软件,这里简单记录一下使用方法。
按照ios project builder提供的步骤,
1.先通过执行MigrationAssistant文件夹下的Migration assistant (step 1, Mac).command命令行,在Mac环境下导出证书与mobileprovision以及IOS SDK
2.在Window环境下执行Migration assistant (step 2, PC).cmd命令行,安装从Mac环境下的导出的证书与SDK。在这里插入图片描述
执行Build and deploy后导出Ipa文件。

Unity导出Xcode工程的过程中常常需要引用第三方SDK和修改plist文件。UnityEditor.iOS.Xcode中利用
PBXProject和PlistDocument 可以帮助我们自动导入和修改文件。

public class XCodeProjectMod : MonoBehaviour
{
    [PostProcessBuild]
    public static void OnPostprocessBuild(BuildTarget BuildTarget, string path)
    {
        if (BuildTarget == BuildTarget.iOS)
        {
            UnityEngine.Debug.Log("XCodePostProcess: Starting to perform post build tasks for iOS platform.");

            /*======== projPath ========*/
            string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";

            PBXProject proj = new PBXProject();
            proj.ReadFromFile(projPath);

            string target = proj.TargetGuidByName("Unity-iPhone");

            // ENABLE_BITCODE=False
            proj.SetBuildProperty(target, "ENABLE_BITCODE", "false");

            // add extra framework(s)
            proj.AddFrameworkToProject(target, "Security.framework", false);
            proj.AddFrameworkToProject(target, "CoreTelephony.framework", true);
            proj.AddFrameworkToProject(target, "libz.tbd", true);

            // rewrite to file
            File.WriteAllText(projPath, proj.WriteToString());

            string plistPath = path + "/Info.plist";
            PlistDocument plist = new PlistDocument();
            plist.ReadFromString(File.ReadAllText(plistPath));

            // Get root
            PlistElementDict rootDict = plist.root;

            /* ipad 关闭分屏 */
            rootDict.SetBoolean("UIRequiresFullScreen", true);
            rootDict.SetBoolean("UIFileSharingEnabled", true);

            //var now = System.DateTime.Now;
            //string time = string.Format("{0}_{1}_{2} {3}:{4}:{5}", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
            ///* 设置Build值 */
            //rootDict.SetString("CFBundleVersion", string.Format("{0}({1})", GlobalVars.VERSION, time));

            /* iOS9所有的app对外http协议默认要求改成https */
            // Add value of NSAppTransportSecurity in Xcode plist
            var atsKey = "NSAppTransportSecurity";

            PlistElementDict dictTmp = rootDict.CreateDict(atsKey);
            dictTmp.SetBoolean("NSAllowsArbitraryLoads", true);

            // location native development region
            rootDict.SetString("CFBundleDevelopmentRegion", "zh_CN");

            // for share sdk 截屏
            //rootDict.SetString("NSPhotoLibraryUsageDescription", "We need use photo library usage");

            // Write to file
            File.WriteAllText(plistPath, plist.WriteToString());
        }
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity自动打包 Android Export Project 并执行 Il2Cpp 编译,可以使用 Unity 提供的命令行工具和脚本来完成。 首先,在 Unity 中构建 Android 项目时,需要使用命令行参数来指定平台和构建类型,例如: ``` Unity.exe -batchmode -quit -projectPath "path/to/project" -executeMethod BuildPlayer.Android -logFile "path/to/logfile.txt" -androidPlatform "android" -buildTarget "apk" -androidAPILevel "28" -androidKeystoreName "keystore" -androidKeyaliasName "alias" -androidKeystorePass "password" -androidKeyaliasPass "password" -androidPackage "com.example.app" -androidVersionCode "1" -androidVersionName "1.0" -outputPath "path/to/output.apk" ``` 在执行上述命令后,Unity自动打包 Android Export Project,并输出 APK 文件到指定的输出路径。 接下来,需要使用 Unity 提供的 il2cpp.exe 工具来执行 Il2Cpp 编译。在 Unity 安装目录下,可以找到 il2cpp.exe 工具的位置。例如: ``` C:\Program Files\Unity\Editor\Data\il2cpp\build\il2cpp.exe ``` 可以使用以下命令来执行 Il2Cpp 编译: ``` il2cpp.exe --convert-to-cpp -o "path/to/output/folder" "path/to/Android/export/project/so/library" ``` 在执行上述命令后,il2cpp.exe 工具会自动将 Android Export Project 中的 C++ 代码编译成可执行代码,并输出到指定的输出文件夹中。 最后,需要将生成的可执行文件和资源文件打包成 APK 文件。可以使用 Android Studio 或其他 APK 打包工具来完成此操作。 需要注意的是,自动打包 Android Export Project 并执行 Il2Cpp 编译需要一定的命令行和脚本编写经验,建议在实际操作前做好相关的测试和备份工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值