Я пытаюсь опубликовать приложение 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 о сообщениях об ошибках.
Я попытался добавить этот сценарий в фазу сборки расширения:
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. Как я могу решить проблему, чтобы пройти проверку и чтобы расширение работало?
Я следовал этому руководству двадцать раз и, в конце концов, преуспел, щелкнув всеми волшебными переключателями, пока он не заработает: - | developer.apple.com/library/archive/technotes/tn2435/…
У меня такая же проблема с расширением общего доступа iOS с использованием платформы MBProgress. Получилось ли у вас работать?
Мне удалось заставить его работать. Мой ответ ниже.





Итак, моя проблема заключалась в том, что расширение приложения (расширение Share) нуждалось в библиотеке. В ваше расширение не может быть встроена библиотека, поэтому вам нужно встроить библиотеку в основное приложение, а затем связать ее с расширением.
Если вы используете Carthage, то я предполагаю, что у вас есть сценарий копирования Carthage, добавленный как сценарий запуска.
Вы должны иметь это только для основного приложения, а НЕ для расширения. Любые библиотеки, которые использует расширение, должны быть перечислены во входных файлах.
Затем в своем расширении просто добавьте фреймворк как связанный двоичный файл.
Удалите также шаг Copy Frameworks из вашего расширения.
Вы решили это? У меня аналогичная проблема, но с другими фреймворками.