Github地址:https://github.com/AAWayne/YWAutoPackage

平时自用的iOS项目自动打包脚本,支持自动上传蒲公英、App Store等应用分发平台

前言

先说说 Xcode 打包的烦恼吧,从 Archive 打包 再到 签名 导出 IPA 包 或者直接上传,

项目大点的在这期间会浪费很多等待的时间,比如 Archive 后忘了去签名,签名后又忘了去导出等等。

本脚本就是为了解决这一系列的烦恼而生的,优点:

1、shell 脚本在 Mac 上无需环境依赖,可直接运行,并统计各个阶段的操作时间
2、自动 Archive、签名、导出IPA包、删除 Archive 包
3、自动上传预设的分发平台

正文

⚠️注意:

项目第一次必须手动打包并导出IPA成功后才能正常使用该脚本,因为 Xcode 手动打包导出后才会把打包所需证书、描述文件等备齐

使用方法:点击下载脚本相关文件

1、将YWAutoPackage文件夹直接拖到桌面

2、配置打开编辑YWAutoPackage.sh中的配置相关参数

3、再将YWAutoPackage.sh脚本文件拖入终端回车即可执行自动打包脚本

4、执行脚本后按需求输入选择打包版本

Dev 开发版、Hoc 测试版、App Store 生产版、Enterprise 企业版

5、如果执行脚本时出现如下错误是因为文件权限不足,只需对其授权777即可

-bash: /Users/candy/Desktop/YWAutoPackage/YWAutoPackage.sh: Permission denied

执行如下授权命令即可(这里的参考了上面的路径地址)

chmod -R 777 /Users/candy/Desktop/YWAutoPackage/YWAutoPackage.sh

6、如果需要上传 App Store,则安装 Transporter 上传工具,并且配置开发者账号和专用密码

打包脚本配置项

# ⚠️默认 Release 版,也可配置为 Debug
pro_environ=Release
# 项目路径,文件绝对路径,如下:
pro_path="/Users/xxx/BaseProject/BaseProject.xcworkspace"

# ⚠️自动上传蒲公英(uKey、_api_key)获取地址https://www.pgyer.com/doc/api#uploadApp
api_key="" # 不上传则不填
ukey=""  # 不上传则不填

## ⚠️自动上传苹果商店 - 苹果开发者账号 与 专用密码(需要提前设置 https://appleid.apple.com)
apple_id="" # 不上传则不填
apple_pwd="" # 不上传则不填

打包脚本核心内容展示

# 先组装路径 archive_path、ipa_path ,用于导出 ipa 和 上传
archive_path="${temp_path}/${ipa_dir}/${pro_name}.xcarchive"
ipa_path="${temp_path}/${ipa_dir}/${pro_name}.ipa"

# Clean操作
xcodebuild clean -${pro_clean} ${pro_full_name} -scheme ${pro_name} -configuration ${pro_environ}
judgementLastIsSuccsess $? "Clean"

# Archive操作
xcodebuild archive -${pro_clean} ${pro_full_name} -scheme ${pro_name} -archivePath ${archive_path}
judgementLastIsSuccsess $? "Archive"

# 导出IPA文件操作
xcodebuild -exportArchive -archivePath ${archive_path} -exportOptionsPlist ${plist_path} -exportPath ${temp_path}/${ipa_dir}
judgementLastIsSuccsess $? "导出IPA文件"

# 删除 xcarchive 包
rm -r ${archive_path}


# ============ 上传到App Store ============  
# 获取 Transporter 上传工具【推荐】
toolPath="/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter"
${toolPath} -m upload -assetFile ${ipa_path} -u ${apple_id} -p ${apple_pwd} -v informational
# ============ 上传到App Store ============

如果不上传蒲公英或不上传App Store的话 注释下面两句话即可(如果没填写相关账号则不会执行上传操作)

# 上传蒲公英分发平台
uploadPGY

# 上传 App Store
uploadAppStore