fastlane自动化打包和发布
2017-06-28 本文已影响98人
浮云我想听你说
一、安装Fastlane
1、所需要求:
1.OS X 10.9 (Mavericks) 以上
2.Ruby 2.0 以上
3.Xcode 7.3.1
4.拥有一个付费的苹果开发者账号
2、配置环境
1.如果你没有Xcode,请先安装一个Xcode吧,O(∩_∩)O~
2.更新ruby版本,安装rvm
curl -L get.rvm.io | bash -s stable # 安装
rvm -v # 测试是否安装正常
rvm list known # 列出已知ruby版本
rvm install ruby-xxxxx # 安装一个最新ruby版本 注:此处xxxxx为list中的最新版本号
如果报错的话
brew install openssl
reinstall|install ruby-xxxxx # 注意修改xxxxxx
以上所需的ruby环境基本配置好了
2.打开终端,选择ruby 源
(rubygems、taobao这两个源不知道哪个能成功,所以都分别切换试一下,后文会提到)
#查看gem源
gem sources
# 删除默认的gem源
gem sources --remove https://rubygems.org/
# 增加taobao作为gem源
gem sources -a https://ruby.taobao.org/
# 查看当前的gem源
gem sources
*** CURRENT SOURCES ***
http://ruby.taobao.org
# 清空源缓存
gem sources -c
# 更新源缓存
gem sources -u
3、安装Fastlane
1.安装xcode-select
xcode-select --install
# 如果 Xcode CLT 已经安装,则会报如下错误
# command line tools are already installed, use "Software Update" to install updates.
# 如果未安装,终端会开始安装 CLT
2.安装fastlane
sudo gem install fastlane --verbose
# 如果报错:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander
sudo gem install -n /usr/local/bin fastlane
# 等待着安装完毕....coffee or tea
# 安装结束后,查看版本(2016.9.26我的版本是1.104.0)
fastlane --version
# 实际上目前安装的fastlane并不是最新版本,还需要更新,怎么更新呢,看下面
# cd到项目文件夹
cd xxxxx
fastlane init
# 需要按照提示输入 AppID以及密码, 这个是你项目的开发者帐号,下边要输入项目的bundleIdentifier,然后出现了提示
########################################################################
# fastlane 1.104.0 is available. You are on 1.103.0.
# It is recommended to use the latest version.
# Update using 'sudo gem update fastlane'.
#######################################################################
# 更新最新版本
sudo gem install -n /usr/local/bin/ fastlane --version1.104.0
# 如果报错 Could not find a valid gem 'fastlane' (= 1.66.0) in any repository , 那么更换一个ruby源,详见步骤2
# 继续更新最新版本
sudo gem install -n /usr/local/bin/ fastlane --version1.104.0
# 1.104.0成功安装!
二、初始化Fastlane
cd 到要管理的项目的目录,输入以下命令
fastlane init
注意:如果你看到一个 “permission denied” 错误,你可能要在命令前加上 sudo。
几分钟之后,fastlane 会通过询问下列问题,引导你完成设置过程:
1.是否开始?这会移动你的 Deliverfile 和 Snapfile(如果存在)(y/n)
请输入 y
2.是否所有提交都接受版本管理?如果否,请先启用版本管理!
请输入 y
3.App Identifier (com.krausefx.app):
请输入一个唯一的 app ID。请记住这个 ID,因为后面你还会用到它!
4.你的 Apple ID (fastlane@krausefx.com):
请输入你的 Apple ID
5.是否创建 deliver 命令,即上传 app 屏幕截图、app 元数据和 app 更新到 App 商店或者苹果的 TestFlight?(y/n)
输入 n
6.是否创建 snapshot 命令,它会自动获取 app 在所有语言和设备类型上的屏幕截图?(y/n)
输入 y
7.是否使用 sigh 命令,它会维护和下载 app 的 provisioning profile?(y/n)
输入 y
8.可选项:app 的 scheme 名称:(如果不需要,直接回车)
回车
三、生成证书和Provisioning Profile
在任意文本编辑器中打开 Fastlane 文件,添加一条lane(#1-5):
# Minimum version of fastlane
fastlane_version "1.32.1"
default_platform :ios
platform :ios do
# 1
desc "Creating a code signing certificate and provisioning profile"
# 2
lane :provision do
# 3
produce(
app_name: 'ENTER_A_UNIQUE_APP_NAME_HERE',
language: 'English',
app_version: '1.0',
sku: '123abc'
)
# 4
cert
# 5
sigh(force: true)
end
error do |lane, exception|
# This block is called, if there was an error running a specific lane.
end
end
将 ENTER_A_UNIQUE_APP_NAME_HERE 替换成一个唯一的 App 名字
注意:sigh 默认创建的是 App Store 的发布 profile。如果你想创建 ad hoc profile,你需要使用 sigh(adhoc:true)。如果是开发 profile 则使用 sigh(development:true)。为简单起见,在本文中你只需要创建 distribution profile。
你创建了第一个 lane。保存文件,打开终端进入到项目文件夹,输入命令:
fastlane provision```
在进行下一步之前,你还需要在 Xcode 中进行某些修改。打开 mZone Poker.xcodeproj,选择 mZone Poker Target,切换到 General 页。将 bundle identifier 修改为初始化 fastlane 时输入的 App ID。
在 Build Settings > Code Signing > Provisioning Profile 设为 “ <新的 app ID> AppStore”。然后在 Code Signing Identity 选择和这个 provisioning profile 相对应的 ID:
注意,code signing identity 应该和 provisioning profile 中的 identities 相匹配。这样,当 gym 编译 IPA 文件时会使用新创建的 provisioning profile。
登录进 iTunes Connect,你的 app 已经创建好了。
然后开始自动化构建版本
fastlane release
[参考简书](http://www.jianshu.com/p/228354881eab)
[官方文档](https://docs.fastlane.tools/)