python 脚本实现自动配置iOS工程证书文件

Python09

python 脚本实现自动配置iOS工程证书文件,第1张

       在实现iOS项目的自动打包工程中,我们需要配置好工程的证书文件信息,为了能够自动的根据bundle id来设置不同的profile文件,我们可以通过脚本文件来修改工程的projext.pbxproj文件帮助我们进行自动设置。

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下找到对应的备份。

iso的应用可以使用python编码的。

方法如下:

首先,要在iosApp工程中安装python解释器,比如pybee的python-ios-support,编译时target选择iphoneos.armv7或者arm64。

然后,用pip install安装rubicon-objc搭建python和objc的桥梁。

最后,用python写ios语法,开发app即可。

请采纳,谢谢

python3 ci.py

通过 itms-services 协议,发布或者分享 iOS 应用程序导读:itms-services 协议常用于 iOS 企业应用的无线部署,这可在不使用 iTunes 的情况下将内部软件发布或者分享给用户。

配置持续集成请查看 Jenkins + iOS 持续集成配置