Apps Kit SDK logoApps Kit SDK
文档 · iOS 集成

2. Xcode 项目配置 — 将 xcframeworks 集成到项目中

这里不涉及清单合并或仓库 URL,你需要手动将两个二进制框架集成到 Xcode 项目中(如果团队有配置脚本,也可以通过脚本完成)。

2.1 框架的存放位置

将 AKSKit.xcframework 和 AppsKit.xcframework 直接放在 .xcodeproj 所在的文件夹中,也就是与 Podfile 和应用源码文件夹同级,不要放进源码文件夹或 Pods/ 中。这一点很重要,因为 Xcode 使用不带目录前缀的相对路径解析框架引用(无需自定义 FRAMEWORK_SEARCH_PATHS);如果移动框架,项目文件中的引用就会失效。

plaintext
YourApp/                          <- CocoaPods project root (Podfile lives here)
├── Podfile
├── AKSKit.xcframework/            <- sibling of the .xcodeproj
├── AppsKit.xcframework/           <- sibling of the .xcodeproj
├── YourApp.xcodeproj/
├── YourApp.xcworkspace/           <- open THIS, not the .xcodeproj, once Pods are installed
└── YourApp/                       <- your app target's source folder
    ├── AppDelegate.swift
    └── ...

2.2 将框架添加到 target

在 Xcode 中,选择应用的 target → General(通用) → Frameworks, Libraries, and Embedded Content(框架、库和嵌入内容) → 添加这两个 .xcframework 文件,并分别设置为 Embed & Sign(嵌入并签名)。具体来说,完成后应包含以下配置:

  • 每个框架都有一个 PBXFileReference,其中 sourceTree = "<group>",且 path 不带目录前缀
  • 两个框架都列在 Link Binary With Libraries(将二进制文件与库链接) 中(即 PBXFrameworksBuildPhase)
  • 两个框架都列在 Embed Frameworks(嵌入框架) 复制文件构建阶段中(PBXCopyFilesBuildPhase,dstSubfolderSpec = 10),并带有 CodeSignOnCopy 和 RemoveHeadersOnCopy 属性;这正是在 Xcode 界面中选择“Embed & Sign”后生成的配置

同时,确认 LD_RUNPATH_SEARCH_PATHS 包含 @executable_path/Frameworks(通过 Xcode 界面嵌入框架时会自动添加此项,使已嵌入并签名的框架能够在运行时加载)。

如果你通过脚本而非 Xcode 界面进行配置(例如在 CI 配置步骤中),需要向 project.pbxproj 添加的正是上述三部分:文件引用、链接阶段和嵌入阶段。

2.3 打开工作区,而不是项目文件

运行 pod install 后,请打开 YourApp.xcworkspace。工作区会将应用的 target 与 CocoaPods 生成的 Pods.xcodeproj 关联起来;如果直接打开 .xcodeproj,构建时将无法正确链接 Podfile 中的依赖。