Apps Kit SDK logoApps Kit SDK
Docs · iOS Integration

2. Xcode project setup — vendoring the xcframeworks

There's no manifest merge or repository URL here — you're wiring two binary frameworks into the Xcode project by hand (or via a setup script, if your team has one).

2.1 Where the frameworks live

Place AKSKit.xcframework and AppsKit.xcframework directly inside the same folder as your .xcodeproj — i.e. as siblings of Podfile and your app's source folder, not nested inside it and not inside Pods/. This matters because Xcode resolves the framework reference using a bare relative path (no custom FRAMEWORK_SEARCH_PATHS needed) — if you move them, the project file's reference breaks.

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 Add them to the target

In Xcode, select your app target → General → Frameworks, Libraries, and Embedded Content → add both .xcframework files, and set Embed & Sign for each. Concretely, this needs to produce:

  • a PBXFileReference for each framework with sourceTree = "<group>" and a bare path (no folder prefix)
  • both listed under Link Binary With Libraries (the PBXFrameworksBuildPhase)
  • both listed under an Embed Frameworks copy-files build phase (PBXCopyFilesBuildPhase, dstSubfolderSpec = 10) with the CodeSignOnCopy + RemoveHeadersOnCopy attributes — this is exactly what checking "Embed & Sign" in Xcode's UI produces

Also confirm LD_RUNPATH_SEARCH_PATHS includes @executable_path/Frameworks (Xcode adds this automatically when you embed a framework via the UI; it's what lets the embedded, signed frameworks load at runtime).

If you're scripting this instead of using the Xcode UI (e.g. for a CI setup step), the three pieces above — file reference, link phase, embed phase — are exactly what you need to add to project.pbxproj.

2.3 Open the workspace, not the project

Once pod install has run, open YourApp.xcworkspace. It's what wires your app target together with the CocoaPods-generated Pods.xcodeproj; opening the bare .xcodeproj directly will build without your Podfile dependencies linked correctly.