问题描述
有个iOS项目,代码中配置了一个APP provisioning profile和一个Plugin provisioning file,现在需要通过jenkins平台来打包,生成iOS ipa文件。
解决过程
研发已经习惯于使用图形化xcode工具来打包,作为一个DevOps工程师,命令行才是我们的拿手好戏,我常挂在嘴边的一句话是“凡是命令行可实现的,皆可自动化!”
1、作为DevOps工程师,我需要从开发那边拿到:证书的p12文件及密码,以及provisioning profile及相关的属性信息。
2、拿到证书的P12文件,将该文件上传到构建机器,并双击后,输入密码,将证书导入构建机器上。
3、按照如下步骤,将provisioning profile导入构建机器上:
3.1 通过security命令解析mobileprovision文件 到一个新的文件中:
security cms -D -i xx.mobileprovision > tmp.xml 2> /dev/null
3.2 通过PlistBuddy命令获得 mobileprovision文件 的UUID:
/usr/libexec/PlistBuddy -c "print UUID" tmp.xml
3.3 把mobileprovision文件复制到指定的目录下:
cp xx.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/${uuid}.mobileprovision
4、做完上面准备工作后,就可以在jenkins的shell窗口进行如下配置,来实现打包:
# bundle ID
APP_BUNDLE_IDENTIFIER="cn.org.xxx.app"
PLUGIN_BUNDLE_IDENTIFIER="cn.org.xxx.plugin"
# configiration: Debug、Beta、Release
CONFIGURATION="Release"
# 编译用Provisioning profile
APP_PROFILE="AppProfile"
PLUGIN_PROFILE="PluginProfile"
# 编译用证书,数据来自于provisioning profile中Certificates配置
CODE_SIGN_IDENTITY="iPhone Distribution: xxxxx (TEAMID)"
# Team
DEVELOPMENT_TEAM

文章描述了一位DevOps工程师如何使用命令行工具,包括security和PlistBuddy,处理多个provisioningprofile和证书,以便在Jenkins上自动化构建iOSIPA文件。过程涉及证书导入、provisioningprofile的解析和配置,以及使用xcodebuild进行编译和导出。最后强调了理解ipa生成过程和掌握xcode编译命令的重要性。
最低0.47元/天 解锁文章
626

被折叠的 条评论
为什么被折叠?



