马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、 获取 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-iPhone
- frameworkTarget = pbxProject.GetUnityFrameworkTargetGuid();//这个对应target中UnityFramework
- //...
- //你的操作
- //...
- pbxProject.WriteToFile(pbxProjectPath); //操作完后要写回文件,否则无效
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |