1 using System.IO;
2 using UnityEngine;
3 using UnityEditor;
4 using UnityEditor.iOS.Xcode;
5 using UnityEditor.Callbacks;
6 using System.Collections;
7
8 public class XcodeSettingsPostProcesser
9 {
10
11 [PostProcessBuildAttribute (0)]
12 public static void OnPostprocessBuild (BuildTarget buildTarget, string pathToBuiltProject)
13 {
14
15 // Stop processing if targe is NOT iOS
16 if (buildTarget != BuildTarget.iOS)
17 return;
18
19 // Initialize PbxProject
20 var projectPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
21 PBXProject pbxProject = new PBXProject ();
22 pbxProject.ReadFromFile (projectPath);
23 string targetGuid = pbxProject.TargetGuidByName ("Unity-iPhone");
24
25 // Sample of adding build property
26 pbxProject.AddBuildProperty(targetGuid, "OTHER_LDFLAGS", "-all_load");
27
28 // Sample of setting build property
29 pbxProject.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
30
31 // Sample of update build property
32 pbxProject.UpdateBuildProperty(targetGuid, "OTHER_LDFLAGS", new string[]{"-ObjC"}, new string[]{"-weak_framework"});
33
34 // Sample of adding REQUIRED framwrok
35 pbxProject.AddFrameworkToProject(targetGuid, "Security.framework", false);
36
37 // Sample of adding OPTIONAL framework
38 pbxProject.AddFrameworkToProject(targetGuid, "SafariServices.framework", true);
39
40 // Sample of setting compile flags
41 var guid = pbxProject.FindFileGuidByProjectPath("Classes/UI/Keyboard.mm");
42 var flags = pbxProject.GetCompileFlagsForFile(targetGuid, guid);
43 flags.Add("-fno-objc-arc");
44 pbxProject.SetCompileFlagsForFile(targetGuid, guid, flags);
45
46 // Apply settings
47 File.WriteAllText (projectPath, pbxProject.WriteToString ());
48
49 // Samlpe of editing Info.plist
50 var plistPath = Path.Combine (pathToBuiltProject, "Info.plist");
51 var plist = new PlistDocument ();
52 plist.ReadFromFile (plistPath);
53
54 // Add string setting
55 plist.root.SetString ("hogehogeId", "dummyid");
56
57 // Add URL Scheme
58 var array = plist.root.CreateArray ("CFBundleURLTypes");
59 var urlDict = array.AddDict ();
60 urlDict.SetString ("CFBundleURLName", "hogehogeName");
61 var urlInnerArray = urlDict.CreateArray ("CFBundleURLSchemes");
62 urlInnerArray.AddString ("hogehogeValue");
63
64 // Apply editing settings to Info.plist
65 plist.WriteToFile (plistPath);
66 }
67 }

最新文章

  1. [8.1] Triple Step
  2. JavaScript DOM编程艺术读书笔记(一)
  3. 阿里云主机(aliyun-Linux) x64安装Redis详解
  4. BZOJ4423 [AMPPZ2013]Bytehattan
  5. DuiLib 自定义识别控件
  6. tomcat提供文件下载
  7. 在调用“Fill”前,SelectCommand 属性尚未初始化
  8. 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
  9. org.json.JSONObject与com.google.gson.Gson
  10. android151 笔记 3
  11. Android应用Icon大小在不同分辨率下定义
  12. 不创建类将json数据转换
  13. Blocks(闭包)
  14. [Day02] int, str功能学习
  15. 用vue写添加数据、删除数据、筛选数据表格
  16. redis使用总结(二)(jedis使用)
  17. mariadb第二章-增删改
  18. Scala笔记
  19. MyBatis:2
  20. MongoDB下载及安装

热门文章

  1. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0
  2. 命令行部署repmgr管理集群+switchover+切换测试
  3. R数据分析:孟德尔随机化中介的原理和实操
  4. 在执行npm install执行报错node-sass
  5. CNCF社区首个!KubeEdge达到软件供应链SLSA L3等级
  6. 树莓派4B—LCD触摸屏和硬件串口配置
  7. makefile 入门第一课
  8. [AHOI2002]黑白瓷砖
  9. HNOI2019 最小圈
  10. CCRD_TOC_2007_EULAR专辑_1