iOS APP编译脚本和上传AppStore脚本(xcrun a
2021-04-16 本文已影响0人
简单点的笨演员
编译脚本
保存下面的代码到项目目录下build.plist,并修改里面的配置,这个编译配置文件:
<?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>method</key>
<string>app-store</string>
<key>teamID</key>
<string>XXXXXXXXX</string> <!--- 修改成你的 teamID -->
<key>uploadBitcode</key>
<true/>
<key>compileBitcode</key>
<true/>
<key>uploadSymbols</key>
<true/>
<key>signingStyle</key>
<string>manual</string>
<key>signingCertificate</key>
<string>Apple Distribution</string>
<key>provisioningProfiles</key>
<dict>
<key>com.test.app1</key> <!--- 修改成你的 Bundle Identifier -->
<string>XXXXXXXX</string> <!--- 修改成你的 证书名 -->
<key>com.client.appname.watchkitapp</key>
<string>Client App WatchApp Release</string>
<key>com.client.appname.watchkitapp.watchkitextension</key>
<string>Client App WatchKitExtension Release</string>
<key>com.client.appname.RemoteNotificationServiceExtension</key>
<string>Client App PushExtension Release</string>
<key>com.client.appname.Stickers</key>
<string>Client App Stickers Release</string>
</dict>
</dict>
</plist>
保存下面的代码到项目目录下build.sh,并修改里面的配置,第一次执行需要在当前目录下的命令行下执行:chmod +x build.sh,之后要编译直接在命令行执行:sh /YOUR_PATH/build.sh:
#!/bin/bash
# 没有权限执行就执行下面的命令
# chmod +x build.sh
# 配置
TARGET_NAME=YOUR_PROJECT_NAME
OUTPUT_PATH=./build
# 切换到脚本的目录
cd $(dirname $0)
# 清理之前的输出
rm -r -f ${OUTPUT_PATH}
mkdir ${OUTPUT_PATH}
# 进入build路径clean一下你的工程
echo "===============现在清理工程==============="
xcodebuild clean -workspace ios.xcworkspace -scheme ${TARGET_NAME} -configuration Release -quiet
if [ $? -eq 0 ]; then
# archive导出.xcarchive文件
echo "===============现在编译工程==============="
xcodebuild archive -workspace ios.xcworkspace -scheme ${TARGET_NAME} -archivePath ${OUTPUT_PATH}/${TARGET_NAME}.xcarchive -quiet
if [ $? -eq 0 ]; then
# 导出ipa包
echo "===============现在打包ipa==============="
xcodebuild -exportArchive -archivePath ${OUTPUT_PATH}/${TARGET_NAME}.xcarchive -exportPath ${OUTPUT_PATH} -exportOptionsPlist build.plist -quiet
if [ $? -eq 0 ]; then
echo "===============打包成功==============="
fi
fi
fi
注意,这里打包的证书是直接使用xcode里项目配置的,xcode能打包这个命令行就能打包。如果想指定特定的证书,请自行百度 CODE_SIGN_IDENTITY。
上传脚本
保存下面的代码到项目目录下upload.sh,并修改里面的配置,apiKey获取方式参考这里,第一次执行需要在当前目录下的命令行下执行:chmod +x upload.sh,之后打包后要上传直接在命令行执行:sh /YOUR_PATH/upload.sh:
#!/bin/bash
# 没有权限执行就执行下面的命令
# chmod +x upload.sh
# 配置
TARGET_NAME=YOUR_PROJECT_NAME
OUTPUT_PATH=./build
API_KEY=xxxxxxxxxx
API_ISSUER=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# 切换到脚本的目录
cd $(dirname $0)
IPA_FILE=${OUTPUT_PATH}/${TARGET_NAME}.ipa
if [ -f "$IPA_FILE" ] ; then
echo '===============现在开始ipa检查============='
xcrun altool --validate-app -f $IPA_FILE -t ios --apiKey ${API_KEY} --apiIssuer ${API_ISSUER}
if [ $? -ne 0 ]; then
echo '===============ipa检查失败,请检查============='
else
echo '===============ipa检查成功,现在开始上传=============='
xcrun altool --upload-app -f $IPA_FILE -t ios --apiKey ${API_KEY} --apiIssuer ${API_ISSUER}
echo '===============上传ipa成功=============='
fi
else
echo '===============找不到ipa,请先编译! ============='
fi
打包并上传流程:
- xcode编写代码,并修改版本号;
- 编译并打包成ipa:
sh /YOUR_PATH/build.sh
- 上传ipa到AppStore:
sh /YOUR_PATH/upload.sh
- 在AppStore发布(AppStore可能有延迟,需要过几分钟才能显示)