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' ...
随机推荐
- 1.MAC获取文件路径;2.MAC使用SSH连接远程服务器,实现文件上传下载
首先来说一下如何获取文件路径 ····打开terminal,把文件拖进terminal 窗口,自动显示路径. 接下来说一下使用SSH连接远程服务器,实现文件上传下载 1. 上传本地文件到服务器 sc ...
- File类获取功能的方法-File类判断功能的方法
File类获取功能的方法 获取功能的方法 public string getAbsolutePath()∶返回此File的绝对路径名字符串. public string getPath() ︰将此Fi ...
- 【分析笔记】DW7888 马达驱动芯片待机模式漏电流过高的问题
发现问题 客户反馈说我们的硬件关机漏电流很大,但是拔掉电池之后再上电(仍处于关机状态)就会恢复为 16~20uA 左右.这让我也讶异,因为亲自测试过,漏电流只有 MCU 的休眠电流 16~20uA 左 ...
- python del 函数
用法: -------del用于list列表操作,删除一个或者连续几个元素. # 定义一个list >>> a = [1,2,3,4] >>> a [1,2,3, ...
- DBSCAN学习笔记
基本概念 核心点:若某个点的密度达到算法设定的阈值,即ε-邻域内点的数量(包括自己)不小于minPts,则该点为核心点. 边界点:在ε-邻域内点的数量小于minPts,但是落在核心点邻域内的点. 噪声 ...
- configurable 神图
自己做的
- MySQL数据库报1055错误
有点坑啊,当初装MySQL数据库的时候没有整配置文件,结果MySQL报1055错误的时候,网上的解决办法都说如果需要永久生效的话,只能通过改配置文件实现,but,我没有配置文件,蜜汁尴尬啊 1.已安装 ...
- 在Mariadb中创建数据库-九五小庞
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎 ...
- 2021级《JAVA语言程序设计》上机考试试题7
现在是学生查看,重置密码,原来是搜索,现在直接浏览,直接重置密码,改了下 代码如下: <%@ page language="java" contentType="t ...
- 软赢软件控制器在Zstack云主机实现电机控制的方法
工控领域上云实践-Zstack和软赢 在上面链接提到软赢的软件运动控制器在Zstack云主机上实现etherCat总线的电机控制,在后来的对比中发现,在云主机上虽然实现了让电机转起来,但是因为实时性还 ...