公司项目都是使用jenkins编译打包,再分发到服务器供测试人员下载测试。
在用Xcode 7的时候直接将企业签名文件设置到xcodebuild命令里,xcode 8的时候新增了exportOptionsPlist
,到xcode 9的时候变成了必须使用exportOptionsPlist
。
shell脚本变更为
#更新git的submodule
git submodule init
git submodule update
#进入项目目录
cd MyWorkspace/
#清理上次打包产生的文件
rm -rf "./JenkinsArchive"
mkdir "JenkinsArchive"
rm -rf "./JenkinsIPAExport"
mkdir "JenkinsIPAExport"
#做clean,保证全新的编译
xcodebuild -workspace MyWorkspace.xcworkspace \
-scheme MyWorkspace \
-configuration Debug \
clean
#编译,需要项目支持Auto manage signing
xcodebuild -workspace MyWorkspace.xcworkspace \
-scheme MyWorkspace \
-configuration Debug \
archive \
-archivePath ./JenkinsArchive/MyWorkspace.xcarchive
#导出ipa
xcodebuild -exportArchive \
-archivePath ./JenkinsArchive/MyWorkspace.xcarchive \
-exportPath ./JenkinsIPAExport/project.ipa \
-exportOptionsPlist ./MyWorkspace/ExportOptions.plist
#存档
zip -r ./JenkinsArchive/MyWorkspace_dSYM.zip ./JenkinsArchive/MyWorkspace.xcarchive/dSYMs/MyWorkspace.app.dSYM/
#上传,因为分发渠道不同,此处省略,我是使用了蒲公英的分发渠道
这里重点说一下ExportOptions.plist
的格式,我的大概如下,需要替换provisioningProfiles
下面的签名
和provision profile name
,还有teamID
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>compileBitcode</key>
<false/>
<key>method</key>
<string>enterprise</string>
<key>provisioningProfiles</key>
<dict>
<key>com.my.project</key>
<string>provision profile name</string>
</dict>
<key>signingCertificate</key>
<string>iPhone Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>team id</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>
有一个简单的方法可以获取到ExportOptions.plist
,使用Xcode 9做一次archive
,在archive
结束后依次选择Export
->Enterprise(或者你自己的签名方式)
,按提示导出,最后在导出的文件夹中有一个ExportOptions.plist
文件,直接使用即可。
网友评论