2. Настройка проекта Xcode — локальное подключение xcframework
Здесь нет ни слияния манифестов, ни URL репозитория — вы вручную подключаете два бинарных фреймворка к проекту Xcode (или используете скрипт настройки, если он есть у вашей команды).
2.1 Где разместить фреймворки
Разместите AKSKit.xcframework и AppsKit.xcframework непосредственно в той же папке, что и ваш .xcodeproj — то есть на одном уровне с Podfile и папкой исходного кода приложения, а не внутри неё и не в Pods/. Это важно, потому что Xcode находит фреймворк по простому относительному пути (дополнительная настройка FRAMEWORK_SEARCH_PATHS не требуется). Если переместить фреймворки, ссылки на них в файле проекта перестанут работать.
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 Добавьте фреймворки в таргет
В Xcode выберите таргет приложения → 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— именно такую конфигурацию создаёт выбор «Embed & Sign» в интерфейсе Xcode
Также убедитесь, что LD_RUNPATH_SEARCH_PATHS содержит @executable_path/Frameworks (Xcode добавляет этот путь автоматически при встраивании фреймворка через интерфейс; он позволяет загружать встроенные и подписанные фреймворки во время выполнения).
Если вы используете скрипт вместо интерфейса Xcode (например, на этапе настройки CI), в
project.pbxprojнужно добавить именно эти три компонента: ссылку на файл, этап линковки и этап встраивания.
2.3 Откройте рабочее пространство, а не проект
После выполнения pod install откройте YourApp.xcworkspace. Рабочее пространство связывает таргет приложения с Pods.xcodeproj, сгенерированным CocoaPods. Если открыть напрямую только .xcodeproj, сборка будет выполняться без корректного подключения зависимостей из Podfile.