-
终端判断是否安装了ruby(参考文章讲版本要大于2.0.0)
$ ruby -v
Snip20190702_1.png
-
检查ruby源
-
这里需要说明一下, 我的mac之前配置Cocoapods时,ruby源由默认的https://rubygems.org/换成了https://gems.ruby-china.org/ 刚开始简单的测试了下https://gems.ruby-china.org/找不到fastlane,因此这里需要将ruby源更换回来
-
查看ruby源
Snip20190702_2.pnggem sources
-
如果需要更换ruby源
-
先移除当前ruby源
gem sources --remove https://gems.ruby-china.org/
-
添加新的ruby源
gem sources -a https://rubygems.org/
-
再次查看ruby源 就更换为最新的了
Snip20190702_3.pnggem sources
-
-
如果ruby版本过低 可以升级
-
gem update --system
-
确认是否安装了Xcode命令行工具
xcode-select --install
-
如果出现以下情况 则代表已经安装
Snip20190702_4.png -
若出现以下情况 点击【安装】就可
Snip20190702_5.png
-
-
安装fastlane
gem install fastlane -NV
-
使用[gem install fastlane -NV]命令 若出现如下报错:
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
更换以下命令
sudo gem install fastlane -NV -n /usr/local/bin
-
根据网络状况,等待命令全部执行完毕后 看到如下提示安装成功
Snip20190702_6.png
-
-
配置fastlane
cd 项目目录 fastlane init
-
终端框中会出现4种选项 这里我选择的是4
-
参考说出现以下表明成功
屏幕快照 2019-07-02 21.01.50.png但是我等了好久 终端框没见动静 关闭了终端框 然后重新打开终端框后仍输入
fastlane init
终端框出现了如上所示图片中内容。
这时查看你的iOS工程可看到比原先多出了一些文件
-
-
打包上传到蒲公英
-
安装蒲公英插件
WechatIMG9.pngfastlane add_plugin pgyer
等待几分钟后 输入了两次开机密码后 提示成功
WechatIMG10.png-
修改Fastfile 内容
-
打开自动生成的Fastfile文件
-
vim ./fastlane/Fastfile
然后可以看到
WechatIMG6.png用文本编辑方式打开 并修改相应内容
-
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "上传蒲公英"
lane :TestPgyer do #TestPgyer 为lane 名称,只要和后面的lane保持一致即可,我们执行时就是执行这个方法
scheme_name = "xxx"
#导出路径 我们可以桌面创建IPA_Info(没有的话会自动创建,名字可自定义) 文件夹来集中管理生成的ipa等文件
output_directory = "/Users/luckycodercai/Desktop/IPA_Info"
# add actions here: https://docs.fastlane.tools/actions
#导出名称
output_name = "#{scheme_name}_#{Time.now.strftime('Pgyer%Y%m%d%H%M%S')}.ipa"
gym(
export_method: "development", #这里填写导出方式 ad-hoc、enterprise、app-store
#Xcode 9 默认不允许访问钥匙串的内容,必须要设置此项才可以
export_xcargs: "-allowProvisioningUpdates",
scheme: scheme_name,# target的名字
clean: true, # 在构建前先clean
output_directory: output_directory, #ipa输出目录
output_name: scheme_name #ipa名字
)
# 上传蒲公英,update_description为版本更新描述。
pgyer(api_key: "5d7f7f8f23cc9b636d19a2a7ab165xxx", user_key: "39b4763cb82f856c7d67af5b262e9xxx", update_description: "hello")
end
end
-
打包并自动上传 App 到蒲公英
//在项目目录下执行
fastlane TestPgyer #和前面lane后面的名称保持一致
WechatIMG17.png
-
执行结束后 桌面会生成output_directory定义的文件夹,里面包含一个压缩包和ipa包并且会自动上传到蒲公英
多target打包
target -> Edit Scheme -> 勾选Shared
可以点击Manage Schemes 然后列表中查看或勾选相应的scheme.
WechatIMG13.png WechatIMG15.png WechatIMG16.png比如两个target: 分别为xxx和xxxDev 则若要打包xxx,Fastfile中的scheme_name = "xxx"若要打包 xxxDev 则Fastfile中的scheme_name修改为scheme_name = "xxxDev"
-
蒲公英有提供多种自动化打包方式,其中使用 Fastlane 上传 App 到蒲公英是种超级简单的方式:
- 若工程中仅存在一个target,则生成的ipa包等直接存放于工程根目录下,ipa也会自动上传到你设置的蒲公英账号上。
- 若工程中存在多个target,需要按照上述对需要打包的target勾选Shared选项,打包时,终端会询问你想打包哪个target,生成的ipa包等直接存放于工程根目录下,ipa包会自动上传到设置的蒲公英账号上。
打包并上传到fir.im
与蒲公英操作基本一致:
-
安装fir插件
fastlane add_plugin firim
中间输入一次y和两次开机密码
提示Successfully installer plugins表示插件安装成功
WechatIMG29.png-
安装官方工具fir-cli
gem install fir-cli
如果报如下图权限错误,则更换命令:
sudo gem install -n /usr/local/bin fir-cli --no-ri --no-rdoc
WechatIMG30.png
提示如下图 Successfully install xxx gems installed时表明安装成功
WechatIMG31.png-
修改Fastfile内容
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "上传fir"
lane :TestFir do #TestFir 为lane 名称,只要和后面的lane保持一致即可,我们执行时就是执行这个方法
scheme_name = "xxxDev"
#导出路径 我们可以桌面创建xxxIPA(没有的话会自动创建) 文件夹来集中管理生成的ipa等文件
output_directory = "/Users/luckycodercai/Desktop/xxxIPA"
# add actions here: https://docs.fastlane.tools/actions
#导出名称
output_name = "#{scheme_name}_#{Time.now.strftime('fir_im%Y%m%d%H%M%S')}.ipa"
gym(
export_method: "development", #这里填写导出方式 ad-hoc、enterprise、app-store
#Xcode 9 默认不允许访问钥匙串的内容,必须要设置此项才可以
export_xcargs: "-allowProvisioningUpdates",
scheme: scheme_name,# target的名字
clean: true, # 在构建前先clean
output_directory: output_directory, #ipa输出目录
output_name: scheme_name #ipa名字
)
# 上传fir
firim(firim_api_token: "7844e5febf265cc35b5d47dfae43bxxx")
end
end
-
cd到工程目录
打开到工程目录
fastlane TestFir
WechatIMG32.png
WechatIMG33.png
WechatIMG34.png
- 执行fastlane TestFir
遇到报错:
Could not find action, lane or variable 'firim'. Check out the documentation for more details: https://docs.fastlane.tools/actions
使用命令:
sudo fastlane add_plugin firim
重新安装fir插件
WechatIMG35.png WechatIMG36.png
网友评论