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,如何在 ...
随机推荐
- 序列化框架-Kyro简述
网上有很多资料说 Kryo 只能在 Java 上使用,这点是不对的,事实上除 Java 外,Scala 和 Kotlin 这些基于 JVM 的语言同样可以使用 Kryo 实现序列化. 1.使用方法 ( ...
- ionic+vue+capacitor系列笔记--常见报错以及解决
1.Require statement not part of import statement.(@typescript-eslint/no-var-requires) 解决 .eslintrc.j ...
- C# 线程查漏补缺
进程和线程 不同程序执行需要进行调度和独立的内存空间 在单核计算机中,CPU 是独占的,内存是共享的,这时候运行一个程序的时候是没有问题.但是运行多个程序的时候,为了不发生一个程序霸占整个 CPU 不 ...
- T02 ExtractSubject 项目开发总结
公纵号: 皮豪 博客:www.kbug.cn 邮箱:pphboy@qq.com 前言 看来已经是一种习惯,每次寒假都会开发一个项目出来.本次项目使用的是Qt GUI,语言是C++.不得不说,在业务上写 ...
- Linux xsync命令脚本
功能:在主机上分发文件到其他机器 在主机machine136上进行如下操作(master) 1.安装 rsync yum install -y rsync 2.bin下创建 xsync 转自:(82条 ...
- window.alert和console.log()
使用 window.alert() 您能够使用警告框来显示数据: 实例 <!DOCTYPE html> <html> <body> <h1>我的第一张网 ...
- 【TS】object类型
object是一个对象,在ts中定义对象类型的语法为:let 变量名 :object = { } 在object类型中,对象内部定义的值是不受类型约束的,只要是一个object类型即可,例如: let ...
- ps抠图小技巧
1.背景橡皮擦工具 适合分离单一背景. 中括号键可以调整大小. 2.调整边缘抠图(也叫选择并遮住) 适合扣毛发丝. 套索工具框选出大概: 点击选择并遮住后出来一个面板: 视图选择叠加,输出设置勾上净化 ...
- Median String
You are given two strings ss and tt, both consisting of exactly kk lowercase Latin letters, ss is le ...
- JSP 与 Servlet 之间的联系,及其语法
JSP 是什么 JSP 将 Java 代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容.JSP 文件在运行时会被其编译器转换成更原始的 Servlet 代码.JSP ...