作者:mobiledu2502877091 | 来源:互联网 | 2023-09-16 14:40
Fastlane-应用上传方式1.苹果方法直接通过Xcode上传ipa通过Xcode自带开发工具ApplicationLoader(最新版本Xcode已经不支持该方式)通
应用上传方式
1. 苹果方法
- 直接通过 Xcode 上传 ipa
- 通过Xcode 自带开发工具 Application Loader (最新版本Xcode 已经不支持该方式)
- 通过altool上传ipa。
- 通过Transporter应用上传ipa。苹果新推出的应用
2. 其它方法
- Shell 脚本打包
- fastlane 快速打包
- Jenkins 可视化打包
Fastlane 打包
安装
cocoapods和fastlane一样,也是基于Ruby的开发脚本集合,所以看着很相似
- 首先安装正确的 Ruby 版本,在终端用命令行做确认
ruby -v
- 检查Xcode 命令行工具是否安装
xcode-select --install
- 以上依赖配置完成后就可以通过rubygem 进行安装
sudo gem install fastlane
- 安装成功后,cd 到你的工程目录,执行
fastlane init
基本文件介绍
初始化后./fastlane 文件 中有两个重要文件
1. Appfile
存放着 AppleID 或者 BundleID 等一些fastlane需要用到的信息。
基本上我们不需要改动这个文件的内容。
默认生成文件内容 :
app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
apple_id("[[APPLE_ID]]") # Your Apple email address
2. 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
#
# 如果希望fastlane 自动更新取消下面一行注释
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
#1.用于执行任务之前的操作
before_all do
end
#2.定义用户的主要任务流程,比如打包ipa,执行测试等
desc "Runs all the tests"
lane :test do
scan
end
#3.用于执行任务之后的操作
after_all do |lane|
end
#4.用于发生错误的操作
error do |lane, exception|
# slack( # message: "Error message" # )
end
end
关于务lane
desc "Push a new beta build to TestFlight" //该任务的描述
lane :beta do //定义名字为 beta 的任务
//构建App
build_app(
workspace: "expample.xcworkspace",
scheme: "example")
//上传到testfilght
upload_to_testflight
end
其中两个 Action
- build_app 生成 ipa 文件
- upload_to_testflight 把 ipa 文件上传到 TestFilght
在控制台执行
fastlane beta
即可执行任务,按照上面的任务,会生成 ipa并上传到 TestFilght.
实践
编写自己的lane
desc "发布到Fir"
lane :pulish_to_fir do
# 运行 pod install
cocoapods
# 构建和打包ipa
gym(
clean : true,
output_directory : './firim',
scheme : 'xxxx',
configuration : 'Test',
export_options : { //导出选项列表或带有导出选项的散列路径
method : 'development',
provisioningProfiles :
{
"xxx.xxx.xxx" : "match Development xxx.xxx.xxx" },
} )
#上传ipa到fir.im服务器,在fir.im获取firim_api_token
firim(firim_api_token: "fir_token") end
desc "生产环境包"
lane :pro do
//时间函数
currentTime = Time.new.strftime("%Y-%m-%d-%H-%")
build_app(
export_method : "ad-hoc", //用于导出归档的方法
workspace : "EWDemo.xcworkspace", //工作区文件的路径
scheme : "EWDemo", //该项目的计划,确保它被标记为Shared
include_symbols : false, //ipa文件应该包含符号
output_directory : "./fastlane") //ipa文件应该存储在的目录
output_name: "#{currentTime}#{'EWDemo.ipa'}",
end
详解
cocoapods : Runs pod install
for the project
gym : Alias for the build_app
action 别名
build_app : Easily build and sign your app 方便地生成和签名ipa
build_ios_app : Alias for the build_app action but only for iOS
注意
app-store, #AppStore正式生产环境包
ad-hoc, #生产测试包
enterprise, #企业包(299美刀账号)
development #开发测试包
Fastlane 打包上蒲公英
- 安装蒲公英的Fastlane 插件
fastlane add_plugin pgyer
- 进入项目目录 ,初始化Fastlane
fastlane init
- 修改fastfile 文件
lane :beta do
build_app(export_method: "ad-hoc")
pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e")
end
Xcode 8.3 和 Xcode 8.3 以后的版本中, export_method 的值,需要根据开发者的打包类型进行设置,可选的值有app-store、ad-hoc、development、enterprise
。
- 执行fastlane 命令
fastlane beta