我的应用程序有一个小组件扩展,在扩展中定义了结构
MyStruct
,目标成员资格为 MyAppWidgetExtension
。我还有一个 UnitTesting 目标,我想在其中为我的主应用程序以及 WidgetExtension 进行 UnitTests。
一旦我将文件添加到 UnitTesting 目标,该目标具有
var
/let
类型,例如MyStruct
(编译器在此文件中通过 var foo: MyStruct?
识别),执行 UnitTest 会产生编译器错误:“未定义符号:MyAppWidgetExtension.MyStruct 的标称类型描述符”。知道这里出了什么问题吗?
在具有目标成员身份的主应用程序目标中定义
@testable import MyAppWidgetExtension
MyStruct
在单元测试中使用 MyApp
@testable import MyApp
所以请确保:
您尝试使用的包是
MyStruct
import
public
)
@testable
Xcode 项目演示
最缺少的步骤是第一步,您忘记将导入的框架从
let package = Package(
name: "MyTarget",
products: [
.library(name: "MyTarget", targets: ["MyTarget"]),
],
dependencies: [
.package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.27.0"), // 👈 0. Make sure it is added as a dependency of the PACKAGE
],
targets: [
.target(
name: "MyTarget",
dependencies: [
.product(name: "FirebaseAnalytics", package: "firebase-ios-sdk"), // 👈 1. Make sure it is LINKED as a dependency of the TARGET
]
),
]
)
选项卡 ->
General
部分链接到活动框架。