Unity打包xcode修改工程配置代码
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 }
Unity打包xcode修改工程配置代码的更多相关文章
- iOS 统计Xcode整个工程的代码行数
小技巧5-iOS 统计Xcode整个工程的代码行数 1.打开终端 2.cd 空格 将工程的文件夹拖到终端上,回车,此时进入到工程的路径 此时已经进入到工程文件夹下 3.运行指令 a. find . - ...
- Xcode 修改工程名以及注意事项
1.先把整个工程文件夹名改为新的工程名. 2.打开工程,单击,输入新的工程名,会出现,点击确定. 3.回到工程界面,在中选择 Manage Schemes,然后再弹出的对话框,把工程名改为新的名字. ...
- XCode修改工程名注意
以下文字转载过来,在使用的过程中遇到几个问题 1.需要在 Build phases 里面,检查下 Link Binary With Libraries 以及Compline Sources 2.Bul ...
- Xcode 修改工程名称
总会遇到几个项目,在做到一半的时候被要求改项目名,网上找了下相关的资料,大多数是xcode5以前的版本,所以解决好了在这里mark一下,给需要的人. 目标为:将项目名XCD4改成xcd5. 先上结果图 ...
- Xcode修改工程文件名字
http://stackoverflow.com/questions/8262613/renaming-xcode-4-project-and-the-actual-folder
- 细聊 Cocoapods 与 Xcode 工程配置
前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开 ...
- unity远程修改游戏配置
关于修改游戏配置这点,如果pc还好 但是在移动端,比较麻烦,比如游戏换ip地址了,可能需要重新打包了 那能不能动态修改,这里有个思路 以udp举例 在客户端里面写一个udp服务,在游戏第一界面打开,比 ...
- Xcode里修改工程名、类名、批量修改变量名
转:http://blog.csdn.net/yuedong56/article/details/13767001 一.修改工程名: 1.点击工程,右键,选择如图选项. 2.右侧如图位置,修改工程名. ...
- Unity导出xcode后自动化导入第三方SDK
最近因为在给项目接入第三方SDK,遇到了一个比较烦人的事情就是,每次出包都要重新根据第三方SDK说明设置xcode,每次最少花20分钟来设置,如果出错的话就不一定是20分钟的事了,所以我决定要做一个自 ...
- Git在Xcode中的配置与使用常见问题总结
书接上回提出的Git在Xcode中的配置与使用常见问题4个问题 问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库? 问题3,如何在 ...
随机推荐
- Java 进阶P-8.15
对象串行化 ObjectInputStream类 readObject() ObjectOutputStream类 writeObject() Serializable接口 对象的寿命通常随着生成该对 ...
- 【新晋开源项目】内网穿透神器[中微子代理] 加入 Dromara 开源社区
1.关于作者 dromara开源组织成员,dromara/neutrino-proxy项目作者 名称:傲世孤尘.雨韵诗泽 名言: 扎根土壤,心向太阳.积蓄能量,绽放微光. 拘浊酒邀明月,借赤日暖苍穹. ...
- 【分析笔记】NXP PCF85263 设备驱动分析笔记
驱动移植 供应商无法提供相应的驱动程序,不过在 linux 最新的内核倒是有一份 pcf85363 的驱动,看代码并核对寄存器功能,是可以兼容 pcf85263 芯片.只是我们用的内核比较老 linu ...
- SpringBoot+mybatis的驼峰命名转换不生效
使用SpringBoote+mybatis在mybatis-config.xml的配置文件内配置的驼峰命名不生效 然后我就将mybatis的配置写在application.yml内,然后就生效了 用注 ...
- zookeeper 部署
官网: https://zookeeper.apache.org/ download 下载完成后 赋值文件到centos /opt/software 单机部署 解压到/opt/module tar ...
- IDEA手动导入jar包到maven本地库
第一步:下载需要的jar包 第二步:file project structure-liberaries 第三步:点击+号-选择java,再选择刚才下载的jar包,ok 此时我们把jar包加到项目了,但 ...
- Idea的jdbc中的查询与增删该
在上一篇的折磨中 终于写好了代码 来总结一下其中的奥妙 (相同部分:)1.有mysql并且与主机建立连接 2.有jar包并且复制到自己创建的libs文件下,右键add 3.需要写main方法 4.需要 ...
- echarts在移动端上tooltip弹框点击空白不能关闭的问题解决方案
1.首先新建一个mixin.js文件 export const mixinAutoHideTooltip = { mounted() { this.mAutoHideTooltip(this.$el) ...
- 大曝光!从RabbitMQ平滑迁移至Kafka架构设计方案!
历史原因,公司存在多个 MQ 同时使用的问题,我们中间件团队在去年下半年开始支持对 Kafka 和 Rabbit 能力的进行封装,初步能够完全支撑业务团队使用. 鉴于在之前已经基本完全实施 Kafka ...
- Diffusers库的初识及使用
diffusers库的目标是: 将扩散模型(diffusion models)集中到一个单一且长期维护的项目中 以公众可访问的方式复现高影响力的机器学习系统,如DALLE.Imagen等 让开发人员可 ...