Xcode 方案中的启动参数

Posted

技术标签:

【中文标题】Xcode 方案中的启动参数【英文标题】:Launch Arguments in Xcode schemes 【发布时间】:2019-07-13 07:10:39 【问题描述】:

我在看 SwiftMonkey。链接是: https://github.com/zalando/SwiftMonkey

他们说要使用命令行标志,如下所示:

   if CommandLine.arguments.contains("--MonkeyPaws") 
        paws = MonkeyPaws(view: window!)
    

并说使用命令行标志:

let application = XCUIApplication()

application.launchArguments = ["--MonkeyPaws"]

我尝试在 Xcode 中通过为 UITesting 创建一个新方案然后在启动时添加参数来做到这一点:

这适用于主方案,但不适用于 UITests(当我将参数放在方案的运行或测试部​​分时,参数不存在)。

我可以从模拟器启动测试:

xcodebuild -workspace SwiftMonkeyTutorial.xcworkspace -scheme "SwiftMonkeyTutorialUITests" -sdk iphonesimulator -destination 'platform=ios Simulator,name=iPhone 8,OS=12.2' test

但添加如下参数会产生“invalid option '-- MonkeyPaws'”的错误

xcodebuild -workspace SwiftMonkeyTutorial.xcworkspace -scheme "SwiftMonkeyTutorialUITests" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8,OS=12.2' test --MonkeyPaws

如何将参数传递给我的方案?

【问题讨论】:

您是否在最后一个代码块中将MoneyPaws 错误输入为MonkeyPass 嗯,是的,但这无关紧要,因为仍然不是一个公认的论点 你想通过这个最终实现什么?即为什么不能在 XCUIApplication 上使用 launchArguments var? @Oletha 这就是答案(我不知道启动参数)。如果您想获得荣誉,请写下答案) 【参考方案1】:

您可以使用XCUIApplication 上的launchArguments 属性将来自UI 测试的启动参数发送到被测应用程序:

let app = XCUIApplication()
app.launchArguments = ["--MonkeyPaws"]
app.launch()

【讨论】:

以上是关于Xcode 方案中的启动参数的主要内容,如果未能解决你的问题,请参考以下文章

XCode启动参数和环境变量

XCode启动参数和环境变量

安装后使用初始“​​应用程序启动”URL 中的附加参数启动移动应用程序

eclipserunconfiguration配置启动参数

常见数据库优化方案

oracle初始参数设置错误导致数据库无法启动报ORA-00821的解决方案