IOS xcodebuild

<?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>teamID</key>
        <string>UA11AAJJKK8</string> //TeamID
        <key>method</key>
        <string>ad-hoc</string> //ad-hoc打包
        <key> compileBitcode</key> //是否编译bitcode
        <false/>
    </dict>
    </plist>

使用脚本打包可以有三种方法。

不管使用哪种方法,项目的相关设置必须正确,如证书,描述文件等。

注意事项:
1、打包时必须进入项目目录进行
2、获取证书名称:Launchpad->其他->钥匙串访问->选择证书->鼠标右击->显示简介->细节->常用名称->复制
3、获取描述文件UUID:打开Xcode->菜单栏->Preferences->Accounts->Apple IDs->帐号->show Details->Provisioning Profiles->选择项目中使用的描述文件->鼠标右击->show in Finder
4、获取target/schemes:终端->cd 项目目录->进入项目目录后,执行命令"xcodebuild -list"


xcodebuild:https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
xctool:https://github.com/facebook/xctool

脚本执行方法:终端-sh 脚本文件-回车

方法一,只是使用xcodebuild生成spa包


# xcodebuild
 
pwd
 
# 1 删除旧文件
rm -rf "archive/log.txt"
rm -rf "archive/zsydemo.xcarchive"
rm -rf "archive/zsydemo.ipa"
 
# 2 清除旧项目
xcodebuild clean -configuration Release -alltargets >> archive/log.txt
 
# 3 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)
# workspace
xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
# project
# xcodebuild archive -project zsydemo.xcodeproj -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
 
# 4 导出IPA xcodebuild
# 方法1(未使用plist文件设置ipa包;需要指定包格式)
xcodebuild -exportArchive -exportFormat IPA -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa  -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt
# 方法2(使用plist配置生成ipa;不需要指定包格式)
# xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportOptionsPlist archive/ipaTestExportOptions.plist -exportPath archive >> archive/log.txt
完善说明 20180709

// 路径设置
upload_path="/Users/zhangshaoyu/Desktop/build"
archive_path="${upload_path}/uploadIPA/${target_name}.xcarchive"
# ipa_path="${upload_path}/uploadIPA/${target_name}.ipa" # 未使用plist文件打包时
ipa_path="${upload_path}/uploadIPA/ipa/" # 使用plist文件打包时
plist_path="${upload_path}/xcodebuildPlist_script.plist"
 
# 4 导出IPA xcodebuild
# 方法(使用plist配置生成ipa;不需要指定包格式,且生成目录不需要设置文件名称,即只需要"./archive/",而不是"./archive/test.ipa")
# plist文件配置说明
# 1 提交App Store的plist文件参数设置,如:method=app-store,uploadBitcode=YES,uploadSymbols=YES
# 2 内测的plist文件参数设置,如:method=ad-hoc,compileBitcode=NO
# 3 method的可选值为:app-store, package, ad-hoc, enterprise, development, developer-id
xcodebuild -exportArchive \
-archivePath "$archive_path" \
-exportPath "$ipa_path" \
-exportOptionsPlist "$plist_path" -quiet >> "$log_path"


方法二,使用xcodebuild生成archive包,然后使用xcrun生成ipa包

使用注意事项:xcrun生成ipa包时必须时绝对的全路径


# xcodebuild + xcrun
# 使用注意:项目必须设置好证书、描述文件;其次ipa包的生成路径必须是绝对的全路径
 
 
pwd
 
# 1 删除旧文件
rm -rf "archive/log.txt"
rm -rf "archive/zsydemo.xcarchive"
rm -rf "archive/zsydemo.ipa"
 
# 2 清理旧项目
xcodebuild clean -configuration Release -alltargets >> archive/log.txt
 
# 3 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)
xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -destination generic/platform=iOS -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
 
 
# 4 导出IPA xcrun
pwd
ipa_path=`pwd`/archive/zsydemo.ipa
xcrun -sdk iphoneos PackageApplication -v archive/zsydemo.xcarchive -o "$ipa_path" >> archive/log.txt >> archive/log.txt

方法三,使用xctool生成archive包,然后使用xcodebuild生成ipa包

使用注意事项:xctool生成archive包时必须设置正确的参数顺序

# xcodebuild + xctool
# 使用注意:项目中必须正确设置证书、描述文件;且必须注意xctool命令书写格式。
 
pwd
 
echo "<----------开始删除旧文件---------->"
 
# 删除旧文件
rm -rf "archive/log.txt"
rm -rf "archive/zsydemo.xcarchive"
rm -rf "archive/zsydemo.ipa"
 
echo "<----------成功删除旧文件---------->"
 
echo "<----------开始清除旧项目---------->"
 
# 重要,执行xcodebuild命令时,必须进入项目目录
# 清空前一次build的项目缓存 
xctool clean -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release >> archive/log.txt
 
echo "<----------成功清除旧项目---------->"
 
echo "<----------开始归档archive包---------->"
 
# 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)
# 根据指定的项目、scheme、configuration与输出路径打包出archive文件(注意参数配置顺序)
xctool -workspace zsydemo.xcworkspace -scheme zsydemo archive -archivePath archive/zsydemo.xcarchive >> archive/log.txt
 
echo "<----------成功归档archive包---------->"
 
echo "<----------开始导出ipa包---------->"
 
# 导出IPA 使用指定的provisioning profile导出ipa
xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa -exportFormat ipa -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt
 
echo "<----------成功导出ipa包---------->"
 
# 输出总用时
echo "<----------Finished. Total time: ${SECONDS}s---------->"

--------------------- 

猜你喜欢

转载自blog.csdn.net/a133900029/article/details/83090571