#ios #xcode #cocoapods #xcframework
#iOS #xcode #cocoapods #xcframework
Вопрос:
Контекст
Я разработал фреймворк, содержащий следующие модули: CryptoSwift, SwiftyRSA и PromiseKit. Я распространяю его как xcframework в cocoapods. Вот как я сгенерировал xcframework:
xcodebuild archive -workspace MySDK.xcworkspace -scheme MySDK -destination="iOS" -archivePath ./ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
xcodebuild archive -workspace MySDK.xcworkspace -scheme MySDK -destination="iOS Simulator" -archivePath ./iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
xcodebuild -create-xcframework -framework ./ios.xcarchive/Products/Library/Frameworks/MySDK.framework -framework ./iossimulator.xcarchive/Products/Library/Frameworks/MySDK.framework -output ./MySDK.xcframework
Проблема
Когда я проверяю приложение перед распространением в App Store Connect, оно завершается с ошибкой, показывая следующие сообщения об ошибках:
Ошибка операции подключения к App Store Недопустимая структура пакета — двоичный файл ‘MySDKTest.app/Frameworks/MySDK.framework /Frameworks/Pods_MySDK.framework /Pods_MySDK’ не разрешен. Ваше приложение не может содержать автономные исполняемые файлы или библиотеки, кроме допустимого CFBundleExecutable из поддерживаемых пакетов. Обратитесь к руководству по программированию пакета по адресу https://developer.apple.com/go/?id=bundle-structure для получения информации о структуре пакета приложений iOS.
Ошибка при подключении к App Store Недопустимый пакет. Пакет в ‘MySDKTest.app / Frameworks/ MySDK.framework’ содержит запрещенные вложенные пакеты.
Ошибка при подключении к App Store Недопустимый пакет. Пакет в ‘MySDKTest.app / Frameworks/MySDK.framework’ содержит запрещенный файл ‘Frameworks’.
Комментарии:
1. Здравствуйте, я разработал библиотеку, похожую на эту. Но когда я пытаюсь протестировать приложение, используя библиотеку на устройстве, я получаю следующую ошибку. Как вы решили эту проблему? dyld: библиотека не загружена: ссылка на @rpath/CryptoSwift.framework/CryptoSwift from:….5D748-586C-43AC-99C8-4CE86DD1D34F/Trackly.app/Frameworks/InstalibSDKFramework.framework/Frameworks/CryptoSwift.framework/CryptoSwift ) недопустимо для использования в процессе с использованием проверки библиотеки: сопоставленофайл не имеет cdhash, полностью неподписан? Код должен быть подписан как минимум ad-hoc.
2. В итоге я удалил модули из проекта и добавил исходный код вручную.
3. : D, также я добавил источник вручную, я не могу найти решение.
Ответ №1:
В настройках сборки вашего изменения фреймворка всегда вставляйте стандартные библиотеки Swift -> Нет