Пакет Xcode iOS содержит запрещенный файл Frameworks

Я пытаюсь опубликовать приложение iOS Swift. Я использую Xcode 9.4.1. Приложение содержит расширение общего ресурса, которое выполняет загрузку файлов по протоколу HTTP. Расширение общего доступа использует SwiftHTTP. Проверка приложения завершается ошибкой из-за следующих ошибок:

Invalid Bundle. The bundle at 'FooBar.app/PlugIns/FileUploadextension.appex' contains disallowed nested bundles.
An unknown error occurred.

Invalid Bundle. The bundle at 'FooBar.app/PlugIns/FileUploadextension.appex' contains disallowed file 'Frameworks'.
An unknown error occurred.

Я проверил другие ответы на StackOverfllow о сообщениях об ошибках.

Я отключил встраивание быстрых библиотек для расширения:

Пакет Xcode iOS содержит запрещенный файл Frameworks

Встраивание включено для основного приложения:

Пакет Xcode iOS содержит запрещенный файл Frameworks

Для расширения существует этап копирования фреймворка:

Пакет Xcode iOS содержит запрещенный файл Frameworks

Я попытался добавить этот сценарий в фазу сборки расширения:

cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi

С этим скриптом приложение проходит проверку, но расширение не работает. Это не работает с:

Hub connection error Error Domain=NSCocoaErrorDomain
Code=4097 "connection to service named
xxx.FooBar.FileUploadextension"
UserInfo = {NSDebugDescription=connection to service named

Когда я открываю свой FileUploadextension.appex в Finder, у меня есть каталог Frameworks с SwiftHTTP.framework. Как я могу решить проблему, чтобы пройти проверку и чтобы расширение работало?

Вы решили это? У меня аналогичная проблема, но с другими фреймворками.

Martin Perry 17.10.2018 20:35

Я следовал этому руководству двадцать раз и, в конце концов, преуспел, щелкнув всеми волшебными переключателями, пока он не заработает: - | developer.apple.com/library/archive/technotes/tn2435/…

filo 17.10.2018 21:46

У меня такая же проблема с расширением общего доступа iOS с использованием платформы MBProgress. Получилось ли у вас работать?

Darren 19.04.2019 11:34

Мне удалось заставить его работать. Мой ответ ниже.

Darren 19.04.2019 11:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
4
1 295
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, моя проблема заключалась в том, что расширение приложения (расширение Share) нуждалось в библиотеке. В ваше расширение не может быть встроена библиотека, поэтому вам нужно встроить библиотеку в основное приложение, а затем связать ее с расширением.

Если вы используете Carthage, то я предполагаю, что у вас есть сценарий копирования Carthage, добавленный как сценарий запуска.

Вы должны иметь это только для основного приложения, а НЕ для расширения. Любые библиотеки, которые использует расширение, должны быть перечислены во входных файлах.

Затем в своем расширении просто добавьте фреймворк как связанный двоичный файл.

Удалите также шаг Copy Frameworks из вашего расширения.

Другие вопросы по теме