nay*_*oti 4 xcode frameworks rpath swift uitest
我的项目使用 Xcode 11.3.1,结构如下:
MyProject
- MyProject.xcworkscapce
- MyFramework
- MyApp
-MyApp (main-target)
-MyAppUITests (uiTest-target)
Run Code Online (Sandbox Code Playgroud)
MyAppMyFramework可以导入并且可以很好地构建和运行。为此,我将MyFrameworkmain-target添加到 main-targets General/Frameworks 和 Libraries 中。
在我的 UITest 目标中,我需要从 访问一些类(Accessibility-Identifier-Definitions)MyFramework,所以我需要以某种方式导入这些类。
两个目标都在构建中,主要目标正常工作没有任何问题。我还可以在模拟器上运行 ui-tests。不幸的是,我被迫在真实设备上运行我的测试,在这里我得到了这个运行时错误:
The bundle “MyAppUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
(dlopen_preflight(/var/containers/Bundle/Application/E581B3BA-A9A2-4AA3-A1BA-91C57DCD3846/MyAppUITests-Runner.app/PlugIns/MyAppUITests.xctest/FHCommunityUITests): Library not loaded: @rpath/MyFramework.framework/MyFramework
Referenced from: /var/containers/Bundle/Application/E581B3BA-A9A2-4AA3-A1BA-91C57DCD3846/MyAppUITests-Runner.app/PlugIns/MyAppUITests.xctest/MyAppUITests
Reason: image not found)
Run Code Online (Sandbox Code Playgroud)
我对这个框架事物(以及 ui-tests)相当陌生,我现在处理这个问题已经两天了。大多数关于类似问题的帖子都与错误指定的 Podfile 相关,但在我设置为不破坏我的真实项目的准系统示例项目中,我没有使用任何 Pod。我可能尝试了所有建议的解决方案(以及几乎所有组合:(),但它们似乎都不起作用。
我花了一段时间才弄清楚,在我的 uiTest-target构建阶段中,我实际上可以添加一个新的运行脚本阶段,并且我假设我需要以某种方式将 MyFramework 链接到这里。这样对吗?有人可以帮我定义运行脚本吗?
是的,我试图清理我的应用程序(我还删除了派生数据)。
非常感谢帮助。谢谢!
好吧,我终于想通了。解决方案相当简单,我还没有看到有人提出这个建议。开始了:
要在您的应用程序目标中使用您的自定义框架,只需将其添加到Frameworks, Libraries, and Embedded Content:
现在您可以从主目标访问 MyFramework。我也可以从模拟器运行我的 ui-tests,但在我的真实设备上执行我的 ui-tests 时仍然出现上述错误。
为了摆脱-ErrorThe bundle “xxxUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.我不得不转到我的uiTest-target并在我的构建阶段链接框架。
作为Destination选择Frameworks并选择要在 uiTest-target 中使用的 Framework。
现在您应该能够从您的设备运行您的 ui-Test。
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |