脚本上传

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

打包并上传流程:

  1. xcode编写代码,并修改版本号;
  2. 编译并打包成ipa:sh /YOUR_PATH/build.sh
  3. 上传ipa到AppStore:sh /YOUR_PATH/upload.sh
  4. 在AppStore发布(AppStore可能有延迟,需要过几分钟才能显示)
上一篇下一篇

猜你喜欢

热点阅读