Unity 打包到XCode自动化设置参数
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string buildPath)
{
if (buildTarget != BuildTarget.iOS)
return; string pbxProjPath = PBXProject.GetPBXProjectPath(buildPath);
var pbxProject = new PBXProject();
pbxProject.ReadFromString(File.ReadAllText(pbxProjPath));
string targetGuid = pbxProject.GetUnityMainTargetGuid();
string frameworkGuid = pbxProject.GetUnityFrameworkTargetGuid(); // 设置关闭Bitcode
pbxProject.SetBuildProperty(targetGuid, ENABLE_BITCODE_KEY, "NO");
pbxProject.SetBuildProperty(frameworkGuid, ENABLE_BITCODE_KEY, "NO"); // xcode archive filed
var token = pbxProject.GetBuildPropertyForAnyConfig(targetGuid, "USYM_UPLOAD_AUTH_TOKEN");
if (string.IsNullOrEmpty(token))
{
token = "FakeToken";
}
pbxProject.SetBuildProperty(targetGuid, USYM_UPLOAD_AUTH_TOKEN, token);
pbxProject.SetBuildProperty(frameworkGuid, USYM_UPLOAD_AUTH_TOKEN, token); //添加系统库(Unity默认会添加部分库,不能添加重复的库,否则会有问题)
//例
pbxProject.AddFrameworkToProject(frameworkGuid, "CoreTelephony.framework", false); //添加tbd
//例
string fileGuidSqlite = pbxProject.AddFile("usr/lib/libsqlite3.tbd", "Libraries/libsqlite3.tbd", PBXSourceTree.Sdk); //添加引用的资源 如 .bundle文件
//例
string p = .bundle地址; string bun = pbxProject.AddFile(p, "名称.bundle", PBXSourceTree.Absolute);
pbxProject.AddFileToBuild(targetGuid, bun); //修改Info.plist文件
SetInfoPlist(buildPath); File.WriteAllText(pbxProjPath, pbxProject.WriteToString()); UnityEngine.Debug.Log("PBXProject : ---->" + pbxProject.WriteToString());
} public static void SetInfoPlist(string buildPath)
{
List<string> privacySensiticeData = new List<string>(); PlistDocument plist = GetInfoPlist(buildPath); //选择语言(字符串)
plist.root.SetString("NSPhotoLibraryAddUsageDescription", "此App需要您的同意,才能保存图片到您的相册");
plist.root.SetString("NSPhotoLibraryUsageDescription", "此App需要您的同意才能读取媒体资料库");
//(bool值)
plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false); //设置LSApplicationQueriesSchemes(数组)
//例
PlistElementArray loginChannelsArr;
loginChannelsArr = plist.root.CreateArray("LSApplicationQueriesSchemes");
loginChannelsArr.AddString("mqqapi");
loginChannelsArr.AddString("mqq"); //配置(字典)
PlistElementDict plistDic;
plistDic = plist.root.CreateDict("NSAppTransportSecurity");
plistDic.SetBoolean("NSAllowsArbitraryLoads", true); // 添加 url scheme
PlistElementArray urlTypes = plist.root.CreateArray("CFBundleURLTypes");
PlistElementDict wxUrl = urlTypes.AddDict();
wxUrl.SetString("CFBundleTypeRole", "Editor");
wxUrl.SetString("CFBundleURLName", "weixin");
wxUrl.SetString("CFBundleURLSchemes", "wx...............");
PlistElementArray wxUrlScheme = wxUrl.CreateArray("CFBundleURLSchemes");
wxUrlScheme.AddString( "wx..............."); plist.WriteToFile(GetInfoPlistPath(buildPath));
}
Unity 打包到XCode自动化设置参数的更多相关文章
- unity打包iOS上线归纳
1.去https://developer.apple.com登陆账号去生成打包用的签名文件,生成一个测试用的和一个上线发布用的签名文件 注意:签名文件绑定id必须和应用绑定包命一致,iOSapp唯一性 ...
- Unity日常记录 - QualitySettings 性能设置
unity打包时,可通过QualitySettings优化图像性能,这是最常设置也是最明显的图像性能体现 设置图形质量的水平,一般来说,质量是以牺牲性能为代价的,所以最好不要追求移动设备或旧硬件的最高 ...
- Unity打包提示UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.错误
不要将打包的输出路径设置为Assets文件夹下面即可,MD真坑 老外给出的解释: As you have noticed after you click build settings you are ...
- 实力封装:Unity打包AssetBundle(大结局)
→→前情提要:让用户选择要打包的文件←← 大结局:更多选择 Unity打包AssetBundle从入门到放弃系列终于要迎来大结局了[小哥哥表示实在写不动了o(╥﹏╥)o]... 经过上一次的教程,其实 ...
- Unity打包IOS和Android以及之间的交互
1.导出的Xcode工程 主要讲解Unity导出的Xcode工程的目录结构 2.导出的Android-Eclipse工程 主要讲解Unity导出的Android-Eclipse工程的目录结构 3.导出 ...
- Unity---DOTween插件学习(2)---设置参数、Ease曲线、回调函数、动画控制函数
目录 6.Set设置参数 7.Ease曲线 8.回调函数 9.动画控制函数 本文及系列参考于Andy老师的DOTween系列 欢迎大家关注Andy老师 6.Set设置参数 在Unity中添加一个Cub ...
- Python+Selenium自动化-设置等待三种等待方法
Python+Selenium自动化-设置等待三种等待方法 如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...
- HoloLens开发手记 - Unity之Recommended settings 推荐设置
Unity提供了大量的设置选项来满足全平台的配置,对于HoloLens,Unity可以通过切换一些特定的设置来启用HoloLens特定的行为. Holographic splash screen 闪屏 ...
- Xcode无法设置视图的 autosizing control原因
转自:Xcode无法设置视图的 autosizing control原因 学习Xcode的iOS编程时,可能会发现Autosizing Control不见了,其原因很简单,因为你在设置中选择了Auto ...
- FlexSlider插件的详细设置参数 http://www.woothemes.com/flexslider/
http://www.woothemes.com/flexslider/ FlexSlider插件的详细设置参数 $(window).load(function() { $('.flexslider' ...
随机推荐
- cordova第三方插件的创建,修改以及调试指南---真机调试,浏览器调试
cordova使用以及真机调试,浏览器调试 创建插件 点击参考此文-- 超详细手把手教你cordova开发使用指南+自定义插件 插件修改注意事项--很重要 每次对自己代码目录里面任何内容进行修改后 都 ...
- 图文并茂Windows系统使用XAMPP搭建本地mysql数据库导入数据库并使用node.js访问数据库
点击下载XAMPP 点击启动Apache和Mysql 如果出现这种报错,修改配置文件,一般出现这种情况是因为端口占用 再次尝试START, 成功啦~~ 接下来我们准备一份写好的SQL 文件 输入如下命 ...
- Java自动装箱与拆箱
装箱就是自动将基本数据类型转换为包装器类型(int-->Integer).调用方法:Integer的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer- ...
- 字节输出流OutputStream类-字节输出流写入数据到文件
字节输出流OutputStream类 java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地.它定义了字节输出流的基本共性功能方法.public v ...
- Jvm--MinorGC过程
第一次GC: 在不断创建对象的过程中,当Eden区域被占满,此时会开始做Young GC也叫Minor GC 1)第一次GC时Survivous中S0区和S1区都为空,将其中一个作为To Surviv ...
- 12月2日内容总结——边框属性,display属性,css盒子模型,浮动、溢出、定位、z-index属性和建议博客页面搭建
目录 一.边框 边框简介 border-style--边框样式 border-width--边框宽度 border-color--边框颜色 二.display属性 三.CSS盒子模型 概念 margi ...
- 基于二叉树的高效IP检索格式MMDB
一.MMDB简介 MMDB(MaxMind Database) 是MaxMind推出的一个数据存储和检索的数据库格式,用于旗下针对IP检索和存储的Geo产品. IP格式由二进制比特数组组成,很容易想到 ...
- ChatGPT调研分析与应用场域结合构想
作者:京东科技 胡骏 摘要 1. ChatGPT调研分析 2022年11月30日,ChatGPT横空出世,在全球范围内形成了热烈的讨论.根据Similarweb的数据,今年1月,平均每天约有1300万 ...
- ctfshow_web入门 sql注入(web171~248)
sql注入 这是算是学习+做题+记录的一个笔记吧,而且基本都是看着Y4师傅的博客做的 由于是做过sqli靶场,所以这个就记录快点了.如果靶场没遇到的,也会做笔记. union 联合注入 web171 ...
- Windows 10系统设置多用户同时远程登录教程 and rdpwrap下载 and Win10多用户同时远程桌面的另类解决方案---支持1809和1909和2004版本V2.0
转载简书: Windows 10系统设置多用户同时远程登录教程 - 简书 (jianshu.com) 转载github: 发布 ·stascorp/rdpwrap ·GitHub 转载csdn: Wi ...