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,如何在 ...
随机推荐
- [Codeforces Round #816 (Div. 2)] D. 2+ doors
这次Div.2比之前我打的有些要难啊,前三道题就耗了好多时间,D题干脆摆烂了... 还是太逊了 对于一个\(x\),有\(x|y_i=z_i\),那么我们设\(num[x]=z_1\)&\(z ...
- DateFormat类&SimpleDateFrormat类介绍-Dateformat类的format方法parse方法
DateFormat类&SimpleDateFrormat类介绍 java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就 ...
- 你知道CDN是干嘛的吗?
theme: cyanosis 前言 几年前,我在浏览互联网时偶然发现了一个新的电子商务网站,注意到网站上的图片加载速度不快.我刷新了页面并重试了几次.终于,十秒钟后,我能够看到带有图像的渲染网页. ...
- 带你读AI论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击
摘要:这篇文章属于系统分析类的文章,通过详细的实验分析了离地攻击(Living-Off-The-Land)的威胁性和流行度,包括APT攻击中的利用及示例代码论证. 本文分享自华为云社区<[论文阅 ...
- Spring AOP与AspectJ的对比及应用
1 简介 AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中.而最流行的AOP框架分别是Spring AOP和AspectJ. 2 Spring AOP vs AspectJ Spr ...
- Cubase11/12 安装破解图文教程 【2022年12月29日亲测有效】
Cubase11/12安装破解图文教程 下载安装包工具 Cubase官网:点击官网进行下载 Cubase11/12工具包:点击立即下载 Cubase12完成破解教程:点击立即查看 安装Cubase11 ...
- SpringCloud Sleuth链路追踪
1.概要 一般的,一个分布式服务跟踪系统,主要有三部分: 数据收集 数据存储 数据展示 然而这三个部分其实不都是由SpringCloud Sleuth(下面我简称为Sleuth)完成的,Sleuth负 ...
- Docker挂载
1.挂载的概念 预备:你需要了解docker的基本知识 docker实现了容器部署,那当我们需要配置或者查看容器生成的日志文件怎么办? docker提供了挂载机制:挂载能够将容器内的目录/文件和外部的 ...
- 2021级《JAVA语言程序设计》上机考试试题2
以下是学生页面 首先先给上数据库 在准备准备工作 以下为代码: package Bean; public class Student { private String StuID; private S ...
- 有趣的python库-turtle
turtle-绘制图像用 画樱花树 import turtle as tt import random # 画樱花的躯干(60,t) def tree(branch, t): if branch &g ...