0

从 Xcode 9 开始,有一个新的启动参数-StartFromCleanState,我假设在全新安装后启动应用程序。但是它似乎不起作用,并且谷歌搜索-StartFromCleanState不会产生任何结果,因此没有文档可以关闭。

资源

我的目标是使用深度链接启动我的应用程序。我的测试流程是这样的:

  1. UITest 从启动应用程序开始
  2. UITest 打开 safari
  3. UITest进入有deeplink链接的网页
  4. UITest 点击链接,App 打开

Step for 通过将应用程序从后台状态切换到前台状态来打开应用程序。这意味着 application:didFinishLaunchingWithOptions: 在第 1 步只被调用一次。

func test_deeplink() {
    programmaticallyTapDeepLink()
    XCUIApplication().launchArguments = ["-StartFromCleanState", "YES"]
}

理想情况下,我想在应用全新/干净安装时测试深层链接。

我曾尝试在以编程方式点击深度链接之前/之后设置启动参数,但它似乎没有按照我想要的方式工作。

有没有可用的解决方案?

4

1 回答 1

1

在您指定为源的文档中,作者提供了示例代码:

XCTContext.runActivity(named: "Given I have launched app in clean state") { _ in {
    XCUIApplication().launch()
    XCUIApplication().launchArguments = ["-StartFromCleanState", "YES"]
}}

-StartFromCleanState不是“新的发射论点”。它是提供给 XCUIApplication().launchArguments 方法的键和值,由被测应用程序 (XCUIApplication) 的开发人员来处理传递的启动参数 ( ["-StartFromCleanState", "YES"])。

这个堆栈溢出答案有一些例子:

您可能还想考虑阅读 userDefaults;您可能希望根据以下两种生命周期方法之一中传递的 launchArguments 触发对它们的重置:

发射时间:

application(_:willFinishLaunchingWithOptions:)
application(_:didFinishLaunchingWithOptions:)

有关应用程序生命周期状态和每个状态期间可用的委托方法的更多信息,请参阅此苹果文档:

于 2017-11-02T18:01:32.747 回答