愉快的进行一次xcode打包
1.进到开发者中心,选择中间的的证书配置设置
2.对应着不同环境下我们打包需要的文件,
其中identifier和devices需要我们在网站上注册好.
我们本地得到的cer(或者p12)是给电脑授权的,
另外一个对应identifier的provision文件是给设备授权的
3.现在以开发环境为例,如果前辈没有配置好p12文件就需要自己来啦
(p12是原证书导出的交换证书)
- 我们提供一个csr文件给苹果授权,
csr 文件在本地的钥匙串中选择从证书颁发机构请求即可
ps:信息随便填,选择保存到本地即可
- 将csr上传就可以得到电脑的调试证书,.cer文件
6.然后根据之前添加过的bundleId 和 设备,配置个自己设备使用的provision文件
可以看到之前配置的各种provision文件,
managed By Xcode 一般是在xcode端登录了账号fix issues 产生的配置文件,所以不推荐直接fix issue
7.有了电脑的develop证书和设备的provision文件.我们就可以进行调试和打包develop包了,
/usr/bin/security find-identity -v -p codesigning
查看本机的证书安装情况
8.选择真机,archive来打包ipa
9.一般选择直接export导出我们要的ipa文件,然后使用apploader上传,之前的upload to App store 是看不到进度条也看不到错误的,所以我很少使用
ps:如果碰到请求超时,反复不成功,千万不要焦急,因为,他就是这么慢
final: 如果不出什么错的情况下,一直next就可以得到我们要的ipa的包了.
😂 笑着活下去
所以,一般集成测试的时候需要频繁的打包,这个流程下来基本也干不了什么别的了.
-
apple其实提供了
xcodebulid
和xcrun
的终端工具来打包的,facebook也提供了xctool
来辅助我们进行打包,fastlane同样也封装了gym
来实现这个功能,在比较打包速度和易用性之下,最终还是选择了gym
来实现打包 安装打包工具
如果是EICaptain系统
gem install -n /usr/local/bin gym
(fastlane)
gem install -n /usr/local/bin fir-cli
(fir 上传工具)
如果不是,直接 gem install就好了
mac是自带ruby环境的,ruby -v
查看当前版本,之前安装过cocoapods
就没啥问题了
可以看到gym打包需要提供的参数
使用脚本打包咯😄
创建打包使用的sh文件
#!/bin/bash
#计时
SECONDS=0
project_path=$(pwd)
now=$(date +"%Y_%m_%d_%H_%M_%S")
current_user=$(logname)
scheme="ingage"
configuration="Release"
export_method='development'
workspace_path="$project_path/$scheme.xcodeproj"
output_path="/Users/$current_user/Desktop"
archive_path="$output_path/$scheme${now}.xcarchive"
ipa_path="$output_path/$scheme${now}.ipa"
ipa_name="$scheme${now}.ipa"
commit_msg="$1"
fir_token="69ef560a4d90bf1d5f9303f25e1bcd4f"
#输出设定的变量值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===export method: ${export_method}==="
echo "===commit msg: $1==="
#先清空前一次build
gym --project ${workspace_path} --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name}
#上传到fir
fir publish ${ipa_path} -T "${fir_token}" -c "${commit_msg}"
#输出总用时
echo "===Finished. Total time: ${SECONDS}s==="
然后放在相应的目录之下,在终端之下使用
./${name}.sh ${commit message}
自动化打包开始
打包加上传完成
本地得到的文件,dysm是分析crash的符号文件,fastlane贴心啊~
ps:如果没有执行.sh文件的权限,chmod + x ${filename}.sh