ios: 使用xcrun altool上傳IPA包

Apple

Xcode11后Application Loader正式從Xcode的工具欄中消失

  • 如果想在xcode11之后還使用Application Loader
    可以在 Applications(應(yīng)用程序,你的不一定在這里,其實就是xcode的安裝位置)/Xcode.app/Contents/Applications/ 找到Application Loader,把它放在xcode11同樣的路徑,重啟xcode就可以看到它.

怎么通過xcrun altool上傳IPA包

  • 你需要準備apiKey & apiIssuer
  • 登陸itunes connection,
  • 點擊用戶和訪問 > 密鑰 > 生成密鑰 (帳戶的擁有人,才有權(quán)限生成)
  • 生成后可以找到 密鑰ID(apiKey) & IssuerId (apiIssuer)
  • 也把密鑰下載下來, 在mac上: 你的用戶目錄新建一個private_keys文件夾把秘鑰放進去,否則會報錯。
驗證: 
xcrun altool --validate-app -f <包的路徑.ipa> -t iOS --apiKey <密鑰ID> --apiIssuer <issuer ID> --verbose
示例:
xcrun altool --validate-app -f ./app.ipa -t iOS --apiKey $apiKey --apiIssuer $apiIssuer --verbose

上傳:
xcrun altool --upload-app -f <包的路徑.ipa> -t iOS --apiKey <密鑰ID> --apiIssuer <issuer ID> --verbose
示例:
xcrun altool --upload-app -f ./app.ipa -t iOS --apiKey $apiKey --apiIssuer $apiIssuer --verbose

我寫的一個shell , 命名為: appstore.sh <隨意>

apiKey=""
if [ -z "$1" ]; then
    echo -e "\033[31m Please enter apiKey \033[0m"
    read key
    while ([ -z "$key" ]); do
        echo -e "\033[31m Please enter apiKey \033[0m"
        read key
    done
    apiKey=$key
else
    apiKey=$1
fi

apiIssuer=""
if [ -z "$2" ]; then
    echo -e "\033[31m Please enter apiIssuer \033[0m"
    read issuer
    while ([ -z "$issuer" ]); do
        echo -e "\033[31m Please enter apiIssuer \033[0m"
        read issuer
    done
    apiIssuer=$issuer
else
apiIssuer=$2
fi

echo -e "\033[46;30m apiKey is: $apiKey -- apiIssuer is: $apiIssuer \033[0m"

#上傳
function uploadFunc() {
    upload="xcrun altool --upload-app -f ./app.ipa -t iOS --apiKey $apiKey --apiIssuer $apiIssuer --verbose"
    echo "running upload cmd" $upload
    uploadApp="$($upload)"
    echo uploadApp
    if [ -z "$uploadApp" ]; then
        echo -e "\033[31m upload failed \033[0m"
    else
        echo -e "\033[46;30m upload success \033[0m"
    fi
}

# 驗證
validate="xcrun altool --validate-app -f ./app.ipa -t iOS --apiKey $apiKey --apiIssuer $apiIssuer --verbose"
echo "running validate cmd" $validate

runValidate="$($validate)"
echo $runValidate

if [ -z "$runValidate" ]; then
    echo -e "033[31m validate failed \033[0m"
else
    uploadFunc
fi

使用

  • 把你的ipa 命名為: app.ipa
  • appstore.sh丟到與你的ipa 同一目錄
  • run:
bash appstore.sh xx xxxxxx
  • 第一個xx 是apiKey
  • xxxxxx 是apiIssuer
  • 它會檢測你有沒輸入, 會一直提醒到你輸入為止

蘋果也出了一個工具: Transporter 方便快捷

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容