先确定好xcode能打出ipa包。确认所有配置文件齐全。在去配置自动打包脚本。
打包需要的脚本有两个文件:shell.sh(脚本)和shell_dev_config.plist配置文件
流程:编译项目 -> 获得.xcarchive文件 -> 使用.xcarchive打包生成ipa -> ipa发到fir
先安装fir 插件。
$ gem install fir-cli
#shell.sh 放在工程根目录
#shell_dev_config 填写配置
# teamID - 苹果账号团队ID
# method - 打包模式
# provisioningProfiles -
# key:存放bundle identifier valua:provisiong profile名字
# 使用方法 : 把两个文件放在项目根目录,cd到根目录 执行./shell.sh (注意项目选择arm64打包)执行完成后会在桌面创建automatic_ipa文件 存放ipa包
target_name="xxx.xcworkspace" #项目名字 ****.xcodeproj / ****.xcworkspace (cocoapods项目)
project_name="xxxx" # 工程名
work_type="workspace" # 有效值 project / workspace (cocoapods项目)
api_token="xxxx" # fir token
plist_name=shell_dev_config.plist #plist名
now=$(date +%Y-%m-%d-%H:%M)
build_path=~/Desktop/automatic_ipa/$now #存放ipa包文件名
echo '开始编译'
xcodebuild archive \
-$work_type ./$target_name \
-scheme $project_name \
-configuration Debug \
-archivePath $build_path/$project_name.xcarchive -quiet || exit
#
echo '编译完成 开始打包'
xcodebuild -exportArchive \
-archivePath $build_path/$project_name.xcarchive \
-exportPath $build_path \
-exportOptionsPlist ./$plist_name \
-allowProvisioningUpdates -quiet || exit
echo '打包完成 开始上传ipa包。ipa包路径为:' $build_path/*.ipa
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
source ~/.rvm/scripts/rvm
rvm use default
fi
fir p $build_path/*.ipa -T $api_token -c 自动打包
shell_dev_config.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>teamID</key>
<string>xxxx</string>
<key>method</key>
<string>ad-hoc</string>
<key>provisioningProfiles</key>
<dict>
<key>Bundle Identifier 名</key>
<string>xxx(.mobileprovision 文件名)</string>
</dict>
</dict>
</plist>