gpt4 book ai didi

ios - 动态改变单元测试的Bundle Loader

转载 作者:行者123 更新时间:2023-11-29 03:10:20 31 4
gpt4 key购买 nike

我有一个包含多个目标的 Xcode 项目,但我希望在所有目标上运行相同的单元测试。

我已经创建了单元测试并将其附加到我项目中的每个目标(使用“编辑方案”>“测试”菜单)。 Xcode 仍然使用“Bundle Loader”项目设置来确定在执行测试时运行哪个应用程序。

所以我创建了单元测试使用的 .xcconfig 文件。这是它的样子:

SO_BUILDING_PRODUCT_NAME = None
BUNDLE_LOADER = $BUILT_PRODUCTS_DIR/$(SO_BUILDING_PRODUCT_NAME).app/$SO_BUILDING_PRODUCT_NAME

如您所见,它非常简单。然后我写了一个 bash 脚本,它将“无”更改为正在构建的 Xcode 目标的实际名称。然后,我将此脚本添加到每个目标的 Pre-Actions Build 阶段。

我可以看到,只要我告诉 Xcode 进行测试,.xcconfig 文件就会立即更新,我什至可以看到 Xcode 的单元测试 UI 自动更新。不幸的是,每次我更改目标时,我都必须构建两次才能使更改生效。似乎我做出的更改太晚了,Xcode 无法注意到或关心。

关于如何强制 Xcode 注意到我在构建过程开始时所做的更改,有没有人有一些建议?

最佳答案

据我所知(尽管自 Xcode 5 发布以来我还没有探索过这一点),一旦你点击“构建”,就不可能通过 .xcconfig 文件更改任何build设置,Xcode 似乎会在之前拍摄快照您有机会运行任何脚本或类似的东西。

除非动态 .xcconfig 配置的这些限制发生了变化,否则您将需要尝试不同的方法。我不熟悉 BUNDLE_LOADER,但如果您可以通过脚本更改该变量,而不是更改 .xcconfig 文件本身,那么您可能会更幸运。

关于ios - 动态改变单元测试的Bundle Loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316603/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com