[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));
}

最新文章

  1. 【NLP】基于统计学习方法角度谈谈CRF(四)
  2. Oracle内存管理技术
  3. HTML 与 css 的简单学习
  4. Theano3.2-练习之数据集及目标函数介绍
  5. 2014 Hangjs 见闻流水账第二天
  6. 微信成为开发者C#代码
  7. 【Web】写个HTML页面去调试HTTP接口方便些
  8. 输出有序数组的中两个元素差值为指定值diff的两个元素
  9. 2、网页制作Dreamweaver(图片热点、frameset框架)
  10. 使用MySQL中的EXPLAIN解释命令来检查SQL
  11. JavaEE Tutorials (10) - Java持久化查询语言
  12. jQuery如何设置自增自减值
  13. 具体解释首页被K后SEOer必做的三大排除方法!
  14. Scala课程01
  15. Linux 下安装 SVN服务器
  16. Python3调用企业微信用于告警
  17. Python档案袋( 进程与协程 )
  18. 牛客练习赛38 D 出题人的手环
  19. 11.c#类的成员初始化顺序
  20. 揭开yield关键字的神秘面纱

热门文章

  1. 洛谷P8567 真&#183;基础数论问题
  2. string 类的用法
  3. 移动端微信小程序开发学习报错记录--toast.js:41 未找到 van-toast 节点,请确认 selector 及 context 是否正确
  4. 吾剑未尝不利,国内Azure平替,科大讯飞人工智能免费AI语音合成(TTS)服务Python3.10接入
  5. 梳理selenium的鼠标方法
  6. spring-in-action-day05-REST
  7. spring-cloud06---Hystrix01简介
  8. 视觉十四讲:第十二讲_RGB-D稠密点云
  9. JavaScript的this指向详解
  10. 基于SpringBoot实现操作GaussDB(DWS)的项目实战