Mxnet CANopen makefile 人脸识别 plot scroll interface camera chartjs Browserify Pure CSS EaselJS vue的钩子函数 bootstrap后台管理系统 change事件 matlab停止运行命令 wps临时文件 基于bootstrap的框架 linux下载器 如何升级python kubernetes视频教程 python数据 python3下载安装 python手册 python函数的调用 java发邮件 java继承关键字 java如何连接mysql java创建集合 java当前日期 java文件复制 网页游戏开发入门 asp建站系统 谷歌地球打不开 win10长期服务版 pyh vue上传文件 网络适配器下载 wscript 临时会话
当前位置: 首页 > 学习教程  > 编程语言

Unity自动打包——ios project builder

2020/7/24 11:21:08 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

开发过程中想利用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());
        }
    }
}


本文链接: http://www.dtmao.cc/news_show_50402.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?