将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_devbundle exec fastlane ios build_app_testing通过不同的环境设置来构建应用程序。

此方法更为严格,仅创建另一个通道并在其他通道中指定值。 如果使用此方法,则有几个缺点。

  1. 降低Fastfile可读性,您很难阅读lane确切功能和流程
  2. 容易出错,因为您需要更新lane内的所有parametersaction
  3. 越来越长的代码…。

Fastlane确实理解了这个问题,它引入了.env文件来处理该问题。

创建您的项目环境文件

  1. 转到//fastlane
  2. 创建通用的env文件,名为.env
  3. 创建环境指定的文件,名为.env__ ,例如。 env.dev_adhocenv.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_adhocbundle exec fastlane ios build_app --env dev_testing通过不同的环境设置来构建应用程序。

下一步是什么?

在下一课中,我们将介绍Fastlane match ,无需手动处理即可管理iOS证书和配置文件。