使用Fastlane进行带身份验证的应用截图

83次阅读
没有评论

问题描述

正在使用Fastlane来捕获他的应用程序的截图,以在iOS和Android应用商店中使用。但是他遇到了一个问题,Fastlane只能捕获加载屏幕和用户名/密码身份验证屏幕的截图。他想知道是否有办法将凭证(可能是带有有限访问权限的测试凭证)传递给Fastlane,以便它能够捕获应用程序的其他截图。如果不行,他还想了解其他可用的方法。

解决方案

请注意以下操作可能会因版本差异而有所不同,最好在操作前备份。
Fastlane是一个用于自动化移动应用部署的工具,其中的snapshot功能可以用来生成应用的截图。在这里,我们将探讨如何在Fastlane中使用“Launch Arguments”来模拟身份验证和不同情景,并捕获应用程序的各种截图。

使用Launch Arguments进行模拟

  1. 首先,确保你已经安装并设置好Fastlane,你可以参考Fastlane的文档进行安装和配置。

  2. 在Fastlane的Snapfile中,你可以使用launch_arguments关键字来指定启动应用时的参数,这些参数将会传递给你的应用程序。例如,你可以使用以下代码来模拟用户名和密码的身份验证:
    ruby
    launch_arguments([
    "-username testUser",
    "-password testPassword"
    ])

  3. 在你的应用程序代码中,你可以通过读取NSProcessInfo.processInfo().arguments来获取传递的参数。以下是一个示例代码片段:
    swift
    if let arguments = ProcessInfo.processInfo.arguments as? [String] {
    // 在 arguments 中找到你传递的参数并处理
    }

  4. 当你运行Fastlane的snapshot时,它会使用不同的参数值来启动应用程序,并自动捕获截图。

  5. 如果你需要在特定情景下模拟不同的参数组合,例如启用不同的功能标志、动态文本大小或不同的数据集,你可以这样做:
    ruby
    launch_arguments([
    "-featureFlag featureA",
    "-dynamicTextSize small",
    "-dataset dataSet1"
    ])
    launch_arguments([
    "-featureFlag featureB",
    "-dynamicTextSize large",
    "-dataset dataSet2"
    ])

利用FASTLANE_SNAPSHOT标志

Fastlane的snapshot工具会在运行时设置一个临时的用户默认值,即FASTLANE_SNAPSHOT。你可以在你的应用程序代码中使用这个标志来检测是否由Fastlane的snapshot工具运行。

if UserDefaults.standard.bool(forKey: "FASTLANE_SNAPSHOT") {
    // 在快照模式下执行的操作
}

使用这个标志可以让你根据不同的运行环境来执行不同的代码逻辑,以满足Fastlane截图的需求。

总结

使用Fastlane的launch_argumentsFASTLANE_SNAPSHOT标志,你可以轻松地模拟不同的身份验证情景和应用程序参数,从而生成各种截图。这将帮助你更好地展示你的应用在不同条件下的外观和功能。

请注意,Fastlane的功能和接口可能会随着版本更新而变化,建议在操作前查阅Fastlane的最新文档以获取最准确的信息和指导。

如有其他问题或需要进一步帮助,请随时提问。

正文完