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

打印 上一主题 下一主题

主题 985|帖子 985|积分 2955

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  1. var pbxProject = new PBXProject();
复制代码
二 、获取projectPath

  1. var projectPath = PBXProject.GetPBXProjectPath(iosProjectPath);
复制代码
三 、读取pbxProject 文件

  1. pbxProject.ReadFromFile(projectPath);
复制代码
四 、 读取Unity-iPhone"对应的target和UnityFramework

  1. GetUnityMainTargetGuid是获取XCode工程中"Unity-iPhone"对应的target,GetUnityFrameworkTargetGuid则对应"UnityFramework"
  2. var mainTargetGuid = pbxProject.GetUnityMainTargetGuid();//
  3. //这个对应target中的Unity-iPhone
  4. var frameworkTargetGuid = pbxProject.GetUnityFrameworkTargetGuid();//
  5. //这个对应target中UnityFramework
复制代码
五 、添加

  1. pbxProject.AddBuildProperty(mainTargetGuid, "OTHER_LDFLAGS", "-ObjC");
  2. pbxProject.AddBuildProperty(frameworkTargetGuid, "OTHER_LDFLAGS", "-ObjC");
  3. pbxProject.SetTeamId(mainTargetGuid, "");
  4. pbxProject.SetTeamId(frameworkTargetGuid, "");
  5. pbxProject.SetBuildProperty(mainTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
  6. pbxProject.SetBuildProperty(frameworkTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
  7. pbxProject.SetBuildProperty(mainTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
  8. pbxProject.SetBuildProperty(frameworkTargetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
  9. pbxProject.SetBuildProperty(mainTargetGuid, "GCC_C_LANGUAGE_STANDARD", "gnu11");
  10. pbxProject.SetBuildProperty(frameworkTargetGuid, "GCC_C_LANGUAGE_STANDARD", "gnu11");
  11. pbxProject.AddFrameworkToProject(frameworkTargetGuid, "Photos.framework", false);
  12. // info.plist 设置
  13.             var plistPath = Path.Combine(iosProjectPath, "Info.plist");
  14.             var plist = new PlistDocument();
  15.             plist.ReadFromString(File.ReadAllText(plistPath, Encoding.ASCII));
  16.             plist.root.values.Add("NSPhotoLibraryUsageDescription", new PlistElementString("We will use this permission if the child sends lessons and feedback through the album."));
  17.             plist.root.values.Add("ITSAppUsesNonExemptEncryption", new PlistElementBoolean(false));
  18.             AddPlistElementDict(plist,"NSAppTransportSecurity","NSAllowsArbitraryLoads",new PlistElementBoolean(true));
复制代码
六、操作完后要写回文件,否则无效

  1. File.WriteAllText(plistPath, plist.WriteToString());
复制代码

七 、总结

  1. string pbxProjectPath = PBXProject.GetPBXProjectPath(path);
  2.         pbxProject = new PBXProject();
  3.         pbxProject.ReadFromString(File.ReadAllText(pbxProjectPath));
  4.         mainTarget = pbxProject.GetUnityMainTargetGuid();//这个对应target中的Unity-iPhone
  5.         frameworkTarget = pbxProject.GetUnityFrameworkTargetGuid();//这个对应target中UnityFramework
  6.         //...
  7.         //你的操作
  8.         //...
  9.      pbxProject.WriteToFile(pbxProjectPath);  //操作完后要写回文件,否则无效
复制代码










免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表