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

Python037

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

问题:按照网上的教程,设置了自动执行的任务,虽然脚本能运行,但是py文件并没有产生日志文件。

解决方法:在程序或脚本中 填写python.exe的绝对地址,我这里填写的是虚拟环境下的python地址

添加参数 : 这里填写脚本wind.py的绝对位置

起始于: 填写的是 日志产生文件的 位置。

由于我的脚本位置和 日志产生的位置是一样的。所以对于文件位置不一样的可能没有参考意义。

下面是运行后的结果:

写一个小的python程序,如test.py

由于python执行的比较快,窗口会一闪而过,所以加入while循环保持窗口。

在和test.py文件的同文件夹下 ,新建一个.bat文件,例如run.bat 这是由于python文件不是可执行文件,所以需要借助bat文件进行操作。

第二行是执行这个test.py文件

右键单击此电脑或我的电脑,点击 管理 ->系统工具 ->任务计划程序 ->任务计划程序库

之后点击右侧创建基本任务

上述操作的图就不放了,参考链接:

https://jingyan.baidu.com/article/5d6edee227e38dd8ebdeec2f.html

进入创建基本任务后,名称随意取,描述可选填,点击下一步

触发器,什么时候触发脚本,这里先选择一次,点击系一部之后选择一次的时间,这里往后写几分钟,方便一会查看结果 点击下一步

操作这里默认启动程序就可以,点击下一步

选择要执行的脚本文件,选择浏览,选中run.bat文件点击打开 ,点击下一步

点击完成

在任务计划程序库中找到刚才建立的 测试 任务,在右下方有属性选项点击,更改红色圈出来的地方。 也可以在触发器中更改触发时间,或者新建触发条件

等待触发时间到,就会运行改脚本,按住Ctrl+C停止运行,测试成功

原文链接:

https://blog.csdn.net/weixin_39025871/article/details/121488751