Почему фреймворки iOS, на которые я ссылаюсь как опциональные, обрабатываются как требующиеся, когда моя фреймворк импортируется в другое место? - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь добавить функцию в существующую платформу iOS, опубликованную моей компанией.Новая функция требует, чтобы мы использовали ряд других сторонних платформ.Мы хотим убедиться, что наши клиенты не обязаны развертывать эти платформы, если они не хотят активировать новую функцию.

Я настроил каждую из этих платформ как опциональную, когда я ссылаюсь на них в разделе «Целевые / общие / связанные фреймворки и библиотеки» моей собственной фреймворк.Я также помечаю их как Необязательные в разделе «Целевой объект / Фазы сборки / Связать двоичные файлы с библиотеками» моей платформы.Я ожидаю, что это будет означать, что мой фреймворк может быть импортирован в xcodebuild, когда этих фреймворков нет.

Это работает на компьютере, на котором я собираю свою платформу, но как только кто-то пытается импортировать мою новую платформу, его объекты XCode в оператор импорта выдают сообщение «Отсутствует необходимый модуль« x »» (где xэто сторонний фреймворк верхнего уровня, который импортирует мой фреймворк).

Я попытался удалить их и добавить в компоновку директивы компоновщика вида "-weak_framework {name}", но по журналу xcodebuild видно, чтоОпциональные настройки просто генерируют их в любом случае, и это более удобно.

Мой фреймворк использует Swift 5, если это уместно.

Чего мне не хватает?

Большое спасибо за любые подсказки.

...