序言
fastlane是一款自动打包工具,他有一些核心的工具,比如说打包用的build_app(别名:gym),上传App Store用的deliver等等。
关于工具的使用和里面有的配置项,我们可以通过官网的文档,里面有针对各种工具配置项的介绍,也可以通过mac上的终端输入命令:
//XXX是工具名
fastlane action XXX
终端将会展示XXX工具的所有配置项
好了,那我们这边主要先介绍两个工具,也是在自动打包发布中最主要的两个工具gym和deliver
gym(别名:build_app或者build_ios_app)
Key | Description | Default |
---|---|---|
workspace | workspace文件路径 | |
project | project文件路径 | |
scheme | 指定工程的scheme,确认这个scheme是勾选了shared的 | |
clean | 在构建前是否要clean | false |
output_directory | ipa文件应该存储在其中的目录 | . |
output_name | 生成ipa文件的名字 | |
configuration | 构建app时使用的配置。默认为“发布” | * |
silent | 在构建时隐藏终端不必要输出的信息 | false |
codesigning_identity | 代码签名用的名字,它应该与名称完全匹配,例如'iPhone Distribution: SunApps GmbH' | |
skip_package_ipa | 是否应该跳过打包ipa | false |
include_symbols | 生成的ipa文件是否包含symbols,这个文件是内存标记文件,用来定位错误信息的,有了这个安装包大小会变大 | |
include_bitcode | 生成的ipa文件是否包含bitcode,在本身项目中也可以配置,我的项目设置为NO | |
export_method | 用于导出archive的方法。有效值是:appstore, ad-hoc, package, enterprise, development, developer-id | |
export_options | 指定导出选项plist的路径。使用“xcodebuild -help”来打印完整的可用选项集(应该是用来配置“xcodebuild -help”能打印出来的命令,具体怎么做和作用不明) | |
export_xcargs | 将额外的参数传递给打包阶段的xcodebuild。一定要引用设置名称和值,例如OTHER_LDFLAGS="-ObjC -lstdc++" (我用到了export_xcargs: "-allowProvisioningUpdates"来解决一个EXPORT FAILED问题) | |
skip_build_archive | 从构建好的archive导出ipa。使用archive_path作为源 | |
skip_archive | 构建后,不要archive | |
build_path | archive应该存储的目录。 | |
archive_path | 创建archive的路径。 | |
derived_data_path | 构建产品和一些元数据的目录将会消失(我在想是不是指定目录后当项目构建完自动清除这个目录中的元数据) | |
result_bundle | Xcode结果包的位置(不知道干什么用的) | |
buildlog_path | 存储构建日志的目录 | * |
sdk | 应该用于构建应用程序的SDK | |
toolchain | 应该用于构建应用程序的工具链(例如com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) | |
destination | 使用自定义的目的地来构建这个应用程序 | |
export_team_id | 有时您需要在导出ipa文件时指定一个团队id(Optional) | |
xcargs | 将额外的参数传递给构建阶段的xcodebuild。一定要引用设置名称和值,例如OTHER_LDFLAGS="-ObjC -lstdc++" | |
xcconfig | 使用一个额外的XCCONFIG文件来构建你的应用程序(不懂) | |
suppress_xcode_output | 抑制xcodebuild输出到stdout。输出信息在buildlog_path中仍然保存 | |
disable_xcpretty | 禁用生成输出的xcpretty格式 | |
xcpretty_test_format | 使用测试(RSpec样式)格式来构建输出 | |
xcpretty_formatter | 使用的自定义xcpretty格式化程序 | |
xcpretty_report_junit | 是否在这个提供的路径上有xcpretty创建一个junit样式的XML报告 | |
xcpretty_report_html | 是否在这个提供的路径上创建了一个简单的HTML报告 | |
xcpretty_report_json | 是否在这个提供的路径上有xcpretty创建一个JSON编译数据库 | |
analyze_build_time | 静态分析项目构建时间并将输出存储在'culprits.txt' 中 | |
xcpretty_utf | 在报告构建时,xcpretty是否使用unicode编码 | |
skip_profile_detection | 不要试图从xcodeproj构建配置文件映射。应该使用匹配或手动提供的映射(不懂,看上去不是很重要) | false |
* = 默认值依赖于用户的系统
deliver(别名:appstore或者upload_to_app_store)
Key | Description | Default |
---|---|---|
username | Apple ID的用户名 | * |
app_identifier | 应用程序的包标识符 | * |
app | 你想要使用/修改的应用程序的ID | |
edit_live | 修改实时元数据,此选项禁用ipa上传和截图上传 | false |
ipa | ipa文件路径 | * |
pkg | pkg文件路径 | * |
platform | 使用的平台(optional) | ios |
metadata_path | 包含metadata文件夹的路径,metadata中保存的appstore中你应用的具体内容介绍(如标题、描述) | |
screenshots_path | 包含屏幕快照文件夹的路径 | |
skip_binary_upload | 跳过上传ipa或pkg到iTunes Connect | false |
use_live_version | 使用实时版本而不是编辑版本 | false |
skip_screenshots | 不上传屏幕快照 | false |
app_version | 应该编辑或创建的版本 | |
skip_metadata | 不要上传元数据(如标题、描述)。这仍然会上传屏幕快照 | false |
skip_app_version_update | 不要更新app提交的版本 | false |
force | 跳过HTML报告文件验证。 | false |
submit_for_review | 在上传所有内容后提交新版本进行审核 | false |
reject_if_possible | 拒绝先前提交的处于所有可能的状态构建 | false |
automatic_release | 一旦应用程序审核通过,该应用会自动发布App Store | false |
auto_release_date | 审核通过后自动发布App Store的以毫秒为单位的日期 | |
phased_release | 启用iTC的分阶段发布功能(不懂) | false |
price_tier | 应用程序的价格层级别 | |
build_number | 如果设置给定的构建号(已经上传到iTC)将被使用代替当前构建号 | |
app_rating_config_path | 应用程序配置的路径 | |
submission_information | 提交的额外资料(例如:第三方内容) | |
team_id | 如果你在多个团队,你的iTunes Connect团队的ID | * |
team_name | 如果你在多个团队中,你的iTunes Connect团队的名字 | * |
dev_portal_team_id | 如果您在多个团队中,您的开发人员门户团队的短ID。不同于您的iTC团队ID! | * |
dev_portal_team_name | 如果您在多个团队中,您的开发人员门户团队的名称 | * |
itc_provider | 提供者的短名称,用iTMSTransporter标识您的团队。来获得提供者的短名称,去运行Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v。供应商的短名称应该列在第二列 | |
overwrite_screenshots | 在上传新截图之前,先清除所有之前上传的截图 | false |
run_precheck_before_submit | 在提交应用程序审核之前运行precheck | true |
precheck_default_rule_level | 默认的规则级别,除非有其他配置 | :warn |
app_icon | Metadata(元数据):应用程序图标的路径。 | |
apple_watch_app_icon | Metadata(元数据):苹果手表应用程序图标的路径。 | |
copyright | Metadata(元数据):版权公告 | |
primary_category | Metadata(元数据):主要类别的英文名称(如商业、书籍) | |
secondary_category | Metadata(元数据):次级类别的英文名称(如商业、书籍) | |
primary_first_sub_category | Metadata(元数据):主要的第一个子类别的英文名(如教育、字谜) | |
primary_second_sub_category | Metadata(元数据):主要的二级类别的英文名(如教育、字谜) | |
secondary_first_sub_category | Metadata(元数据): 次级类别第一个子类别的英文名称(如教育、字谜) | |
secondary_second_sub_category | Metadata(元数据):次级的第二子类别的英文名称(如教育、字谜) | |
trade_representative_contact_information | Metadata(元数据):包含商务代表的联系信息的hash(不懂) | |
app_review_information | Metadata(元数据):包含审核信息的hash | |
description | Metadata(元数据):应用程序描述 | |
name | Metadata(元数据): 应用程序名字 | |
subtitle | Metadata(元数据): 应用程序副标题 | |
keywords | Metadata(元数据):一组关键字 | |
promotional_text | Metadata(元数据): 一段促销文字 | |
release_notes | Metadata(元数据): 本版本的版本说明 | |
privacy_url | Metadata(元数据):隐私的url | |
support_url | Metadata(元数据): 支持的url | |
marketing_url | Metadata(元数据): 营销url | |
languages | Metadata(元数据):应用中使用的语言种类 | |
ignore_language_directory_validation | Metadata(元数据): 应用程序名字 | false |
subtitle | Metadata(元数据): 应用程序副标题 | true |
* = 默认值依赖于用户的系统
有很多不懂的地方,毕竟我没有都用过,要是知道的朋友可以在底下告知下,谢谢各位朋友了