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 会自动添加此项;它能确保已嵌入并签名的框架在运行时正常加载)。

如果你使用脚本而不是 Xcode 界面来完成配置(例如用于 CI 配置步骤),需要向 project.pbxproj 添加的正是上述三部分:文件引用、链接构建阶段和嵌入构建阶段。

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

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