美文网首页
iOS持续集成实现Jenkins下多Scheme打包

iOS持续集成实现Jenkins下多Scheme打包

作者: 吊儿郎当的认真 | 来源:发表于2019-01-07 17:16 被阅读14次

前言

我们的app是使用多Scheme对应多环境, 测试时会打包出三个app, 分别对应三个环境. 实现参考手把手教你给一个iOS app配置多个环境变量 - 简书, jenkins的配置可自行百度.本篇文章主要讲解使用shell脚本构建项目的相关配置.

shell脚本代码

相关代码:

#工程环境路径

workspace_path=.

#工程名称

project_name=XXXX

#scheme名称

scheme_name=XXX_Test

#打包类型

configuration_type=XXX_Debug

#ipa导出配置文件名

ExportOptionsPlist_name=ExportOptions_Test.plist

echo "清除缓存文件"

xcodebuild clean

rm -rf archive

rm -f $scheme_name.ipa

echo "打ipa包"

sed -i '' 's/\app-store\<\/string\>/\development\<\/string\>/' $ExportOptionsPlist_name

sed -i '' 's/ProvisioningStyle = Automatic;/ProvisioningStyle = Automatic;/' $project_name.xcodeproj/project.pbxproj

echo "编译生成app命令"

xcodebuild archive -workspace $project_name.xcworkspace -scheme $scheme_name -configuration $configuration_type -archivePath archive/$project_name.xcarchive

echo "生成ipa"

xcodebuild -exportArchive -exportOptionsPlist $ExportOptionsPlist_name -archivePath archive/$project_name.xcarchive -exportPath ./ -configuration $configuration_type -allowProvisioningUpdates

相关代码变量解读

"workspace_path":工程路径变量 直接给"."就好

"project_name":工程名称

project_name

"scheme_name":"scheme的名称

scheme_name

"configuration_type": Debug或者Release

"ExportOptionsPlist_name": xcode9之后需要的打包配置不同的环境需要不同的ExportOptionsPlist文件, 需要在工程里创建添加plist文件

plist文件内容

plist文件内容

ProvisioningStyle 选择Automatic自动模式, 最后在xcode9之后需要添加-allowProvisioningUpdates. 然后不同环境配置不同的任务即可, 也可以使用一个任务将这些配置参数化即可. 最后在xcode9上 多scheme打不同的包会报证书不匹配的错误:"Automatic signing is unable to resolve an issue with the "xxx.app" target's entitlements."

此时可在buildSettings下面的Packaging 设置Product Bundle Identifier 和 info.plist文件中的Bundle Identifier一致即可

相关文章

网友评论

      本文标题:iOS持续集成实现Jenkins下多Scheme打包

      本文链接:https://www.haomeiwen.com/subject/dcnurqtx.html