Unity和iOS 原生专题一 unity打包设置C#设置 Xcode添加OTHER_LDFLAGS和Info.plist设置

server/2024/10/21 10:05:00/

一、 获取 PBXProject PBXProject的很多操作都是通过guid的

var pbxProject = new PBXProject();

二 、获取projectPath

var projectPath = PBXProject.GetPBXProjectPath(iosProjectPath);

三 、读取pbxProject 文件

pbxProject.ReadFromFile(projectPath);

四 、 读取Unity-iPhone"对应的target和UnityFramework

GetUnityMainTargetGuid是获取XCode工程中"Unity-iPhone"对应的target,GetUnityFrameworkTargetGuid则对应"UnityFramework"var mainTargetGuid = pbxProject.GetUnityMainTargetGuid();////这个对应target中的Unity-iPhone
var frameworkTargetGuid = pbxProject.GetUnityFrameworkTargetGuid();////这个对应target中UnityFramework

五 、添加

pbxProject.AddBuildProperty(mainTargetGuid, "OTHER_LDFLAGS", "-ObjC");
pbxProject.AddBuildProperty(frameworkTargetGuid, "OTHER_LDFLAGS", "-ObjC");pbxProject.SetTeamId(mainTargetGuid, "");
pbxProject.SetTeamId(frameworkTargetGuid, "");
pbxProject.SetBuildProperty(mainTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
pbxProject.SetBuildProperty(frameworkTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");pbxProject.SetBuildProperty(mainTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
pbxProject.SetBuildProperty(frameworkTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");pbxProject.SetBuildProperty(mainTargetGuid, "GCC_C_LANGUAGE_STANDARD", "gnu11");
pbxProject.SetBuildProperty(frameworkTargetGuid, "GCC_C_LANGUAGE_STANDARD", "gnu11");pbxProject.AddFrameworkToProject(frameworkTargetGuid, "Photos.framework", false);// info.plist 设置var plistPath = Path.Combine(iosProjectPath, "Info.plist");var plist = new PlistDocument();plist.ReadFromString(File.ReadAllText(plistPath, Encoding.ASCII));plist.root.values.Add("NSPhotoLibraryUsageDescription", new PlistElementString("We will use this permission if the child sends lessons and feedback through the album."));plist.root.values.Add("ITSAppUsesNonExemptEncryption", new PlistElementBoolean(false));AddPlistElementDict(plist,"NSAppTransportSecurity","NSAllowsArbitraryLoads",new PlistElementBoolean(true));

六、操作完后要写回文件,否则无效

File.WriteAllText(plistPath, plist.WriteToString());

七 、总结

string pbxProjectPath = PBXProject.GetPBXProjectPath(path);pbxProject = new PBXProject();pbxProject.ReadFromString(File.ReadAllText(pbxProjectPath));mainTarget = pbxProject.GetUnityMainTargetGuid();//这个对应target中的Unity-iPhoneframeworkTarget = pbxProject.GetUnityFrameworkTargetGuid();//这个对应target中UnityFramework//...//你的操作//...pbxProject.WriteToFile(pbxProjectPath);  //操作完后要写回文件,否则无效


http://www.ppmy.cn/server/18124.html

相关文章

9节点牛拉法matlab

潮流计算程序matlab 牛拉法 采用matlab对9节点进行潮流计算,采用牛拉法,程序运行可靠。

洛谷 P1541 [NOIP2010 提高组] 乌龟棋

思路:暴力DP‘“ 其实在想到暴力dp之前,作者寻思着这个题目可能和”摆花“那道题差不多,就用那种思想想了一下,结果其实不是这样的。这里并不能开二维进行推进。由于我们在二维表示的时候,代表的含义就是在走了i个格子…

flutter笔记-hello dart

文章目录 1. 搭建环境2. 运行官方首个程序3. AS中运行iOSAndroid 语法简述1. 变量常量字符串补充 2. 集合3. 函数关于可选报错:匿名函数 4. 特殊运算符5. 类 dart 包 1. 搭建环境 环境的搭建在window和mac都差不多,都是从官网下载对应操作系统对应版本的…

文件上传总结

这篇总结很好 文件上传漏洞详解-CSDN博客 文件上传利用成功条件 1.文件能够上传 2.文件能够解析 3.文件路径可知 上传点 可上传头像、文件的地方 编辑器漏洞 绕waf 干货 | 最全的文件上传漏洞之WAF拦截绕过总结-腾讯云开发者社区-腾讯云 (tencent.com) 防御手段 1.上…

超级好用的C++实用库之Des加解密

概述 DES(Data Encryption Standard,数据加密标准)是一种历史悠久的对称密钥加密算法,由IBM公司在1970年代设计,并于1977年被美国国家标准局选作联邦资料处理标准。DES使用56位密钥对64位的数据块进行操作,…

Netty 进阶

文章目录 1. 粘包与半包1.1 粘包现象1.2 半包现象1.3 现象分析1.4 解决方案1) 方法1,短链接2) 方法2,固定长度3) 方法3,固定分隔符4) 方法4,预设长度 2. 协议设计与解析2.1 为什么需要协议?2.2 redis 协议举例2.3 http…

区间图着色问题:贪心算法设计及实现

区间图着色问题:贪心算法设计及实现 1. 问题定义2. 贪心算法设计2.1 活动排序2.2 分配教室2.3 算法终止 3. 伪代码4. C语言实现5. 算法分析6. 结论7. 参考文献 在本文中,我们将探讨如何使用贪心算法解决一个特定的资源分配问题,即区间图着色问…

LeetCode54. 螺旋矩阵

LeetCode54.螺旋矩阵 题解思路 代码 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> res;int n matrix.size();// 行int m matrix[0].size(); // 列vector<vector<bool>> st(n, v…