1. Project.pbxproj
Xcode项目中的xxx.xcodeproj其实是一个文件夹,右键单击xxx.xcodeproj,显示包内容:
Project.pbxproj的解析
关于这个配置文件的结构,请参考 project.pbxproj,最熟悉的”陌生人 (http://www.olinone.com/?p=215),解析该文件可以使用现有的解析工具mod-pbxproj,该工具是一个python的脚本。其github地址为: https://github.com/kronenthaler/mod-pbxproj 。
为了修改不同taget的profile,我们需要知道这些配置在文件中的具体位置,不难发现:
我们的目标是为不同的bundle id设置不同的profile,所以只需要找到不同target的XCBuildConfiguration,修改其中PROVISIONING_PROFILE的值即可。通过分析project.pbxproj文件结构,你会发现其找到这些target的buildSettings的路径如下:
rootObject=>PBXNativeTarget=>XCConfigurationList=>XCBuildConfiguration。
XCBuildConfiguration会有Debug和Release两个版本,这里我们以修改Release版本的为例进行说明。
2. Python脚本修改profile
需要在工程目录下配置如下脚本文件,通过从json文件中读取配置信息,然后根据不同的bundle id来设置不同的profile文件和其他字段信息。其中xcode_configurator_profile.py为修改profile的脚本文件,profile.json为配置的证书信息。demo如下图所示:
首先在profile.json文件中配置好bundle id和对应的profile文件,如下如所示:
然后在工程目录下执行xcode_configurator_profile.py:
检查profile修改结果:
如果设置了以后有任何问题, 你可以在对应的xxx.xcodeproject下找到对应的备份。
原因一:工程文件冲突
解决办法:
1,右击.xcodeproj文件
2,显示包内容
3,双击打开.pbxproj文件
4,搜索<<<,找到冲突地方
5,解决冲突
原因一:工程文件格式出错
1,在Sourcetree或者其他工具中找到最近的.pbxproj文件提交历史
2,使用 Command+d 打开Sourcetree文件修改对比工具
3,查看修改的地方有异常出,修改异常
如:
我们用的是git.一般都是各自在工程中建立文件,添加文件到工程中,这些冲突。一旦有了这些冲突后.pbxproj可能就打不开了。 我们都是先查看冲突的地方,再用编辑器打开.pbxproj文件,搜索<<<<这样类似文本,删掉你不需要的。当..pbxproj文件可以打开时就用xcode打开,删除冲突的地方。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)