【发布时间】:2021-06-10 00:10:27
【问题描述】:
我第一次将 SwiftUI 整合到我的项目中!
很遗憾,我无法预览我添加到项目中的第一个 SwiftUI 文件。构建仅在预览时失败。失败就在我的测试中。
构建错误的步骤:
- 单击预览区域中的“恢复”按钮以获取新创建的 SwiftUI 视图。
- 构建失败...我单击“诊断”按钮:
诊断屏幕输出:
缺少必需的模块“JGProgressHUD”
SchemeBuildError:无法构建方案“MyApp”
缺少必需的模块“JGProgressHUD”
编译 AppTests.swift (x86_64): /Users/myname/Projects/MyApp/MyAppTests/Entities/AppTests.swift:11:8: 错误:缺少必需的模块“JGProgressHUD”导入 MyApp ^
是的,我有通过 SPM 导入的 JGProgressHUD 库。
这就是我的测试类的样子 - 它在导入“MyApp”时失败,但仅用于 SwiftUI 的预览...没有构建失败的应用程序或其他测试...
import Foundation
import XCTest
import MyApp
// import app here because of: https://stackoverflow.com/questions/27172481/swift-singleton-init-called-twice-in-xctest
class AppTests: XCTestCase {
// .. tests are here
}
“导入 MyApp”行失败。
这是我尝试过的:
- 在网上到处搜索
- 搞乱构建方案
- 使用 JGProgressHUD 和测试做了一个示例项目,预览没有问题
- 已验证我的 swift 文件均未添加到测试目标中 - 均未添加,只有 xib 文件。
- 在测试文件中添加了“import JGProgressHUD”,然后在 JGProgressHUD 的此导入行上预览构建失败。
我迫不及待地想使用 SwiftUI,但到目前为止,添加到一个新项目中似乎很善变,而且我不知道还能去哪里找。对于我正在尝试做的事情来说,这是一个随机的问题,我完全不知道在哪里寻找。
关于检查或寻找什么的任何想法?
感谢 XCode 贤者的任何帮助!
【问题讨论】:
-
试试
@testable import MyApp -
感谢您的建议,但仍然有错误--“错误:缺少必需的模块'JGProgressHUD'@testable import MyApp ^”
-
您还需要将该模块添加到您的测试目标中
-
它是一个 swift 包 (SPM),我假设它适用于所有目标,因为当您的测试目标将主机应用程序设置为主应用程序时,它们对于工作区来说似乎是全局的。是否可以排除/包含 swift 包这种类型的测试目标?在 MyAppTests Target -> General 下,它显示“Host Application: MyApp”并选中“Allow testing host application APIs”。测试目标的“常规”下没有其他选项。
-
我的反馈 ID 是 FB9096575。
标签: ios xcode swiftui xcode12 swiftui-environment