将Fastlane集成到iOS项目:第5课
上一课,我们演示了如何构建应用程序并将ipa,dSYM上载到Crashlytics和Hockey App。 这次,我们将使用.env
文件处理多个环境。
基本上,有两种方法可以配置环境值。
通过使用其他通道交付应用
车道:build_app_dev做
get_certificates(
// ...
)
get_provisioning_profile(
// ...
)build_app(
// ...
)crashlytics(
// ...
)
upload_symbols_to_crashlytics(
// ...
曲棍球
// ...
)
endlane:build_app_testing做
//复制build_app_dev内部的动作并更新值
结束
之后,您可以运行bundle exec fastlane ios build_app_dev
和bundle exec fastlane ios build_app_testing
通过不同的环境设置来构建应用程序。
此方法更为严格,仅创建另一个通道并在其他通道中指定值。 如果使用此方法,则有几个缺点。
- 降低
Fastfile
可读性,您很难阅读lane
确切功能和流程 - 容易出错,因为您需要更新
lane
内的所有parameters
或action
- 越来越长的代码…。
Fastlane
确实理解了这个问题,它引入了.env
文件来处理该问题。
创建您的项目环境文件
- 转到
//fastlane
- 创建通用的env文件,名为
.env
- 创建环境指定的文件,名为
.env__
,例如。env.dev_adhoc
和env.testing_adhoc
.env
–用于放置共享环境文件
.env.dev_adhoc
–用于将开发环境值与Xcode adhoc配置一起放置
.env.testing_adhoc
–用于将测试环境值与Xcode addhoc配置一起放置
在将值从fastfile
移到我们的环境之前,我们需要知道环境如何匹配我们的fastfile
fastaction action get_certificates
如果操作支持环境变量,则在您输入fastlane action
时将显示该变量。 您可以通过键入此命令来检查其他操作。
如下更新文件。
快速文件
车道:build_app做
//创建构建
get_certificates()
get_provisioning_profile()
build_app()//上传到Crashlytics
crashlytics()
upload_symbols_to_crashlytics()//上传到曲棍球应用
曲棍球()
结束
.env
//为空,所有变量都在其他环境文件中设置
.env.dev_adhoc
CERT_DEVELOPMENT =否
CERT_FORCE =假
CERT_USERNAME =
CERT_TEAM_NAME = <您的团队名称
CERT_FILE_NAME =
CERT_OUTPUT_PATH = fastlane_delivery / dev / adhoc / SIGH_AD_HOC = true,
SIGH_APP_IDENTIFIER = ,
SIGH_USERNAME = ,
SIGH_OUTPUT_PATH = fastlane_delivery / dev / adhoc
SIGH_PROVISIONING_PROFILE_NAME = GYM_SCHEME = Bookshop_dev_adhoc
GYM_WORKSPACE = Bookshop.xcworkspace
GYM_CLEAN = true
GYM_CONFIGURATION = AdHoc
GYM_BUILD_PATH = fastlane_delivery / dev / adhoc /
GYM_ARCHIVE_PATH = fastlane_delivery / dev / adhoc / bookshop_dev_adhoc
GYM_DERIVED_DATA_PATH = fastlane_delivery / dev / adhoc /
GYM_OUTPUT_DIRECTORY = fastlane_delivery / dev / adhoc / CRASHLYTICS_API_TOKEN =
CRASHLYTICS_BUILD_SECRET =
CRASHLYTICS_IPA_PATH =快速通道交付/dev/adhoc/Bookshop_dev_adhoc.ipa
CRASHLYTICS_NOTES =
CRASHLYTICS_NOTES_PATH =
CRASHLYTICS_EMAILS =
CRASHLYTICS_GROUPS =
CRASHLYTICS_NOTIFICATIONS = FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_DSYM_PATH = ./fastlane_delivery/dev/adhoc/Bookshop_dev_adhoc.app.dSYM.zip
CRASHLYTICS_API_TOKEN =
FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_PLATFORM = iosFL_HOCKEY_API_TOKEN =
FL_HOCKEY_IPA = fastlane_delivery / dev / adhoc / Bookshop_dev_adhoc.ipa
FL_HOCKEY_DSYM = ./fastlane_delivery/dev/adhoc/Bookshop_dev_adhoc.app.dSYM.zip
.env.testing_adhoc
CERT_DEVELOPMENT =否
CERT_FORCE =假
CERT_USERNAME =
CERT_TEAM_NAME = <您的团队名称
CERT_FILE_NAME =
CERT_OUTPUT_PATH = fastlane_delivery / testing / adhoc / SIGH_AD_HOC = true,
SIGH_APP_IDENTIFIER = ,
SIGH_USERNAME = ,
SIGH_OUTPUT_PATH = fastlane_delivery / testing / adhoc
SIGH_PROVISIONING_PROFILE_NAME = GYM_SCHEME = Bookshop_testing_adhoc
GYM_WORKSPACE = Bookshop.xcworkspace
GYM_CLEAN = true
GYM_CONFIGURATION = AdHoc
GYM_BUILD_PATH = fastlane_delivery / testing / adhoc /
GYM_ARCHIVE_PATH = fastlane_delivery / testing / adhoc / bookshop_testing_adhoc
GYM_DERIVED_DATA_PATH = fastlane_delivery / testing / adhoc /
GYM_OUTPUT_DIRECTORY = fastlane_delivery / testing / adhoc / CRASHLYTICS_API_TOKEN =
CRASHLYTICS_BUILD_SECRET =
CRASHLYTICS_IPA_PATH =快速通道交付/测试/自组织/Bookshop_testing_adhoc.ipa
CRASHLYTICS_NOTES =
CRASHLYTICS_NOTES_PATH =
CRASHLYTICS_EMAILS =
CRASHLYTICS_GROUPS =
CRASHLYTICS_NOTIFICATIONS = FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_DSYM_PATH = ./fastlane_delivery/testing/adhoc/Bookshop_testing_adhoc.app.dSYM.zip
CRASHLYTICS_API_TOKEN =
FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_PLATFORM = iosFL_HOCKEY_API_TOKEN =
FL_HOCKEY_IPA = fastlane_delivery / testing / adhoc / Bookshop_testing_adhoc.ipa
FL_HOCKEY_DSYM = ./fastlane_delivery/testing/adhoc/Bookshop_testing_adhoc.app.dSYM.zip
通过使用环境文件,很容易理解lane
如何执行哪些操作。 设置新环境后,只需创建一个新环境文件,而无需更新fastfile
。
现在,运行bundle exec fastlane ios build_app --env dev_adhoc
或bundle exec fastlane ios build_app --env dev_testing
通过不同的环境设置来构建应用程序。
下一步是什么?
在下一课中,我们将介绍Fastlane match
,无需手动处理即可管理iOS证书和配置文件。