ios 之 自动打包 脚本 【bash 版本】

配置打包信息

# 工程名称
kProjectName="ipa.xcodeproj"

# workspace 名称 如果使用了cocopods等可能需要用工作空间方式打包
# workspaceName=“ipa.workspace”

# scheme名称
kSchemeName="ipa"

# target 这里scheme只对应了一个target运行;如果有多个target需要指定target
kTargetName="ipa"

# APP环境配置 Configuration
kConfiguration="Release"

# archive导出路径
kArchivePath="./ipaOutput/${kSchemeName}.xcarchive"

# ipa导出路径
kExport_ipa_Path="./ipaOutput/${kSchemeName}"

# 不同的打包方式这个导出文件不同 [这个文件很重要,他决定了你的包是否能够正常导出] 
# 用Xcode自带的archive方式导出ipa的时候,这个文件会随之导出
kExportOptionsPlist="./ipaOutput/ExportOptions.plist"

kAppChangelog="Tips:我是版本更新信息"

打包 && 导出

# clean
xcodebuild  clean -configuration "$configuration" -alltargets

# archive project
xcodebuild archive -project "$kProjectName" -scheme "$kSchemeName" -configuration "$kConfiguration" -archivePath "$kArchivePath"

# archive workspace
# #xcodebuild  archive  -workspace "$workspaceName" -scheme "$scheme" -configuration  "$kConfiguration"  -archivePath "$kArchivePath"  

# 导出ipa
xcodebuild -exportArchive -archivePath "$kArchivePath" -exportOptionsPlist "$kExportOptionsPlist" -exportPath "$kExport_ipa_Path"

上传ipa到分发平台

# --------------> 检测IPA存在否
ipa_path="${kExport_ipa_Path}/${kSchemeName}.ipa"

if [ -f "$ipa_path" ]
    then
        echo "------------ipa存在......"
    else
        echo "------------ipa不存在......"
        exit 1
fi

上传到fir

# --------- firm 上传配置

echo "请选择登录账户名:\n 1)kael 自己的fir账户(默认) \n 2)公司的fir账户"

read fir_token

if [[ $fir_token == 2 ]]; then
  #公司账号
  fir_token="*********"
else
  # 自己的账号
  fir_token="*********"
fi

fir publish ${ipa_path} -T $fir_token -c $kAppChangelog

上传到pgy

# -------- pgy 上传

echo "------------准备发布蒲公英------------"
#>>>>>>>>>>>蒲公英账号信息配置
#蒲公英账号
pgy_API_Key="*********"
pgy_User_Key="*********"


# ------> 蒲公英发布
curl -F "file=@$ipa_path" \
-F "uKey=$pgy_User_Key" \
-F "_api_key=$pgy_API_Key" \
-F "updateDescription=$kAppChangelog" \
https://www.pgyer.com/apiv1/app/upload

脚本

#!/bin/sh

# 工程名称
kProjectName="ipa.xcodeproj"

# workspace 名称 如果使用了cocopods等可能需要用工作空间方式打包
# workspaceName=“ipa.workspace”

# scheme名称
kSchemeName="ipa"

# target 这里scheme只对应了一个target运行;如果有多个target需要指定target
kTargetName="ipa"

# APP环境配置
kConfiguration="Release"

# archive导出路径
kArchivePath="./ipaOutput/${kSchemeName}.xcarchive"

# ipa导出路径
kExport_ipa_Path="./ipaOutput/${kSchemeName}"

# 不同的打包方式这个导出文件不同
kExportOptionsPlist="./ipaOutput/ExportOptions.plist"

kAppChangelog="Tips:我是版本更新信息"


# ------------------> 打包区
# clean
xcodebuild  clean -configuration "$configuration" -alltargets

# archive project
xcodebuild archive -project "$kProjectName" -scheme "$kSchemeName" -configuration "$kConfiguration" -archivePath "$kArchivePath"

# archive workspace
# #xcodebuild  archive  -workspace "$workspaceName" -scheme "$scheme" -configuration  "$kConfiguration"  -archivePath "$kArchivePath"  

# 导出ipa
xcodebuild -exportArchive -archivePath "$kArchivePath" -exportOptionsPlist "$kExportOptionsPlist" -exportPath "$kExport_ipa_Path"


# --------------> 检测IPA存在否
ipa_path="${kExport_ipa_Path}/${kSchemeName}.ipa"

if [ -f "$ipa_path" ]
    then
        echo "------------ipa存在......"
    else
        echo "------------ipa不存在......"
        exit 1
fi

# --------- firm 上传配置

echo "请选择登录账户名:\n 1)kael 自己的fir账户(默认) \n 2)公司的fir账户"

read fir_token

if [[ $fir_token == 2 ]]; then
  #公司账号
  fir_token="*********"
else
  # 自己的账号
  fir_token="*********"
fi

fir publish ${ipa_path} -T $fir_token -c $kAppChangelog

# -------- pgy 上传

echo "------------准备发布蒲公英------------"
#>>>>>>>>>>>蒲公英账号信息配置
#蒲公英账号
pgy_API_Key="*********"
pgy_User_Key="*********"


# ------> 蒲公英发布
curl -F "file=@$ipa_path" \
-F "uKey=$pgy_User_Key" \
-F "_api_key=$pgy_API_Key" \
-F "updateDescription=$kAppChangelog" \
https://www.pgyer.com/apiv1/app/upload

你可能感兴趣的:(ios 之 自动打包 脚本 【bash 版本】)