Приложение
My iOS следует шаблону «Расширение фотографий»: - Автономное приложение «контейнер» - Расширение редактирования фотографий, которое развертывается путем встраивания его в указанное выше приложение.
В соответствии с предложением Apple, код, который является общим как приложением, так и расширением, собран в «базовую» инфраструктуру какао , которая встроена в приложение и в которую входят и приложение, и расширение связаны.
Итак, мой проект Xcode содержит три цели :
- Цель Framework , цель
- 1018 * Расширение редактирования фотографий * цель 1019 *, которая связывается с платформой, но не встраивает ее, и
- цель App , которая встраивает двоичный файл расширения и двоичный файл платформы, а также ссылки к обоим.
Пока все хорошо.
Кроме того, фреймворк, приложение и расширение зависят от двух библиотек MyLibraryA и MyLibraryB У меня есть на Github (и, в свою очередь, MyLibraryA зависит от MyLibraryB ).
Первоначально я установил зависимость на MyLibraryA и MyLibraryB с использованием Carthage, и все работало нормально .
Затем , я решил перенести мои библиотеки A и B. в Swift Packages.
Я удалил все связанные с Carthage настройки в проекте и целях, путях поиска фреймворка и т. Д. c. чтобы убедиться, что ссылки на версии моих библиотек Swift Package указаны, а не на кэшированные сборки Carthage. Я также удалил каталоги Carthage (checkouts и build).
Проблема
Когда я создаю общую / внедренную Framework цель, есть никаких проблем.
Но когда я пытаюсь создать цели App или Extension Application , я получаю сообщение об ошибке, указывающее на общий каркас Swift header (MyFramewor-Swift) .h):
// ...
@import CoreGraphics;
@import CoreImage;
@import Foundation;
@import PhotosUI;
@import UIKit;
@import MyLibraryA; <-- Module 'MyLibraryA' Not Found
// ...
И полученный:
Не удалось построить Objective- C модуль 'MyFramework'
Я знаю фреймворки , распространяемые как двоичные файлы не могут зависеть от пакетов Swift, но эта встроенная среда локально скомпилирована из исходного кода и затем встроена .
Возможно, есть какие-то изменения, которые я могу внести в мои настройки на XCode, чтобы заставить его работать?
Я попытался изменить Enable Modules (C and Objective-C)
на No
в Настройки сборки для цели Framework, безрезультатно.