配置证书到完成自动化打包(也算改进吧)

愉快的进行一次xcode打包

配置证书到完成自动化打包(也算改进吧)_第1张图片

1.进到开发者中心,选择中间的的证书配置设置

配置证书到完成自动化打包(也算改进吧)_第2张图片

2.对应着不同环境下我们打包需要的文件,

其中identifier和devices需要我们在网站上注册好.

我们本地得到的cer(或者p12)是给电脑授权的,

另外一个对应identifier的provision文件是给设备授权的

配置证书到完成自动化打包(也算改进吧)_第3张图片

3.现在以开发环境为例,如果前辈没有配置好p12文件就需要自己来啦

(p12是原证书导出的交换证书)

配置证书到完成自动化打包(也算改进吧)_第4张图片
  1. 我们提供一个csr文件给苹果授权,

csr 文件在本地的钥匙串中选择从证书颁发机构请求即可

配置证书到完成自动化打包(也算改进吧)_第5张图片
配置证书到完成自动化打包(也算改进吧)_第6张图片

ps:信息随便填,选择保存到本地即可

配置证书到完成自动化打包(也算改进吧)_第7张图片
  1. 将csr上传就可以得到电脑的调试证书,.cer文件

6.然后根据之前添加过的bundleId 和 设备,配置个自己设备使用的provision文件

配置证书到完成自动化打包(也算改进吧)_第8张图片

可以看到之前配置的各种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张图片

9.一般选择直接export导出我们要的ipa文件,然后使用apploader上传,之前的upload to App store 是看不到进度条也看不到错误的,所以我很少使用

配置证书到完成自动化打包(也算改进吧)_第10张图片
配置证书到完成自动化打包(也算改进吧)_第11张图片

ps:如果碰到请求超时,反复不成功,千万不要焦急,因为,他就是这么慢

配置证书到完成自动化打包(也算改进吧)_第12张图片
配置证书到完成自动化打包(也算改进吧)_第13张图片
配置证书到完成自动化打包(也算改进吧)_第14张图片
配置证书到完成自动化打包(也算改进吧)_第15张图片

final: 如果不出什么错的情况下,一直next就可以得到我们要的ipa的包了.

  笑着活下去 

所以,一般集成测试的时候需要频繁的打包,这个流程下来基本也干不了什么别的了.

  1. apple其实提供了xcodebulidxcrun 的终端工具来打包的,facebook也提供了xctool 来辅助我们进行打包,fastlane同样也封装了gym来实现这个功能,在比较打包速度和易用性之下,最终还是选择了gym来实现打包

    对 xcodebulid 有兴趣?!

  2. 安装打包工具

如果是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打包需要提供的参数

配置证书到完成自动化打包(也算改进吧)_第16张图片

使用脚本打包咯

  1. 创建打包使用的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}

自动化打包开始

配置证书到完成自动化打包(也算改进吧)_第17张图片

打包加上传完成

配置证书到完成自动化打包(也算改进吧)_第18张图片

本地得到的文件,dysm是分析crash的符号文件,fastlane贴心啊~

配置证书到完成自动化打包(也算改进吧)_第19张图片

ps:如果没有执行.sh文件的权限,chmod + x ${filename}.sh

你可能感兴趣的:(配置证书到完成自动化打包(也算改进吧))