ITMS-90432: "Недопустимая поддержка Swift" не имеет правильный тип файла для этого расположения
Мне было трудно публиковать мое приложение в AppStore. Я использую загрузчик приложений, и я продолжаю получать следующую ошибку.
ОШИБКА ITMS-90432: "Недопустимая поддержка Swift. Файл HelloWorld.app/Frameworks/Fabric.framework не имеет правильный тип файла для этого местоположения. Убедитесь, что вы используете правильный файл, перестройте приложение, используя текущую общедоступную версию (GM) версия Xcode, и повторно представим ее."
Теперь ipa упаковывается вручную из приложения, созданного из XCode (созданного с помощью CMake). Это структура ipa.
HelloWorld/Payload/HelloWorld.app/
├── AppIcon29x29@2x.png
├── AppIcon29x29@2x~ipad.png
├── AppIcon29x29~ipad.png
├── AppIcon40x40@2x.png
├── AppIcon40x40@2x~ipad.png
├── AppIcon40x40~ipad.png
├── AppIcon60x60@2x.png
├── AppIcon76x76@2x~ipad.png
├── AppIcon76x76~ipad.png
├── Frameworks
│ └── Fabric.framework
├── HelloWorld
├── Info.plist
├── LaunchImage-700-568h@2x.png
├── LaunchImage-700-Landscape@2x~ipad.png
├── LaunchImage-700-Landscape~ipad.png
├── LaunchImage-700-Portrait@2x~ipad.png
├── LaunchImage-700-Portrait~ipad.png
├── PkgInfo
├── Settings.bundle
│ ├── Root.plist
│ └── en.lproj
│ └── Root.strings
├── _CodeSignature
│ └── CodeResources
├── assets
│ ├── drawable
│ │ └── default
│ │ └── logo.png
│ ├── layout
│ │ └── default
│ │ ├── HelloWorld_MainComp.layout
│ │ └── HelloWorld_MainComp.timeline
│ └── text
└── embedded.mobileprovision
Я даже пытался работать с разными фреймворками (Facebook iOS SDK), получая одинаковый результат. Я попытался добавить папку Symbols и SwiftSupport (при этом также копируя рамки из каталога Framework в комплекте приложений) в корень ipa, включая каталог Payload, вот так.
├── Payload
│ └── HelloWorld.app
│ ├── ...
│ └── Frameworks
│ └── Fabric.framework
├── SwiftSupport
│ └── Fabric.framework
└── Symbols
Перед созданием пакета приложения (приложение не ipa) я удаляю ненужные архитектуры из фреймворка (i386, x86_64) с помощью инструмента Apple lipo и подписываю фреймворк, используя мой сертификат распространения. Также следует отметить, что фреймворк, который я использую (Fabric), не содержит поддержки Swift, как это видно из otool от Apple (нет libswift.dylib * в выводе otool)
otool -L Fabric.framework
Archive : Fabric.framework (architecture armv7)
Fabric.framework(FABApplication.o) (architecture armv7):
Fabric.framework(FABSettingsOnboardingManager.o) (architecture armv7):
Fabric.framework(FABByteUtility.o) (architecture armv7):
Fabric.framework(FABUUID.o) (architecture armv7):
Fabric.framework(FABIcon.o) (architecture armv7):
Fabric.framework(Fabric.o) (architecture armv7):
Fabric.framework(FABNetworkOperation.o) (architecture armv7):
Fabric.framework(FABHost.o) (architecture armv7):
Fabric.framework(FABURLBuilder.o) (architecture armv7):
Fabric.framework(FABCertificatePinner.o) (architecture armv7):
Fabric.framework(FABAppIconUtility.o) (architecture armv7):
Fabric.framework(FABMultipartMimeStreamEncoder.o) (architecture armv7):
Fabric.framework(FABSettings.o) (architecture armv7):
Fabric.framework(FABApplicationIdentiferModel.o) (architecture armv7):
Fabric.framework(FABDownloadAndSaveSettingsOperation.o) (architecture armv7):
Fabric.framework(FABCerts.o) (architecture armv7):
Fabric.framework(FABNetworkResponseHandler.o) (architecture armv7):
Fabric.framework(FABOnboardingOperation.o) (architecture armv7):
Fabric.framework(FABNetworkClient.o) (architecture armv7):
Fabric.framework(FABConstants.o) (architecture armv7):
Fabric.framework(CLSdSYM.o) (architecture armv7):
Fabric.framework(CLSCodeMapping.o) (architecture armv7):
Fabric.framework(CLSMachOBinary.o) (architecture armv7):
Fabric.framework(CLSMachOSlice.o) (architecture armv7):
Fabric.framework(CLSMachO.o) (architecture armv7):
Fabric.framework(CLSURLSessionDownloadTask.o) (architecture armv7):
Fabric.framework(CLSURLSessionTask.o) (architecture armv7):
Fabric.framework(CLSURLSessionDataTask.o) (architecture armv7):
Fabric.framework(CLSURLSession.o) (architecture armv7):
Fabric.framework(CLSURLSessionConfiguration.o) (architecture armv7):
Fabric.framework(CLSURLSessionUploadTask.o) (architecture armv7):
Fabric.framework(CLSUserDefaults.o) (architecture armv7):
Fabric.framework(FABAsyncOperation.o) (architecture armv7):
Fabric.framework(FABCompoundOperation.o) (architecture armv7):
Archive : Fabric.framework (architecture armv7s)
Fabric.framework(FABApplication.o) (architecture armv7s):
Fabric.framework(FABSettingsOnboardingManager.o) (architecture armv7s):
Fabric.framework(FABByteUtility.o) (architecture armv7s):
Fabric.framework(FABUUID.o) (architecture armv7s):
Fabric.framework(FABIcon.o) (architecture armv7s):
Fabric.framework(Fabric.o) (architecture armv7s):
Fabric.framework(FABNetworkOperation.o) (architecture armv7s):
Fabric.framework(FABHost.o) (architecture armv7s):
Fabric.framework(FABURLBuilder.o) (architecture armv7s):
Fabric.framework(FABCertificatePinner.o) (architecture armv7s):
Fabric.framework(FABAppIconUtility.o) (architecture armv7s):
Fabric.framework(FABMultipartMimeStreamEncoder.o) (architecture armv7s):
Fabric.framework(FABSettings.o) (architecture armv7s):
Fabric.framework(FABApplicationIdentiferModel.o) (architecture armv7s):
Fabric.framework(FABDownloadAndSaveSettingsOperation.o) (architecture armv7s):
Fabric.framework(FABCerts.o) (architecture armv7s):
Fabric.framework(FABNetworkResponseHandler.o) (architecture armv7s):
Fabric.framework(FABOnboardingOperation.o) (architecture armv7s):
Fabric.framework(FABNetworkClient.o) (architecture armv7s):
Fabric.framework(FABConstants.o) (architecture armv7s):
Fabric.framework(CLSdSYM.o) (architecture armv7s):
Fabric.framework(CLSCodeMapping.o) (architecture armv7s):
Fabric.framework(CLSMachOBinary.o) (architecture armv7s):
Fabric.framework(CLSMachOSlice.o) (architecture armv7s):
Fabric.framework(CLSMachO.o) (architecture armv7s):
Fabric.framework(CLSURLSessionDownloadTask.o) (architecture armv7s):
Fabric.framework(CLSURLSessionTask.o) (architecture armv7s):
Fabric.framework(CLSURLSessionDataTask.o) (architecture armv7s):
Fabric.framework(CLSURLSession.o) (architecture armv7s):
Fabric.framework(CLSURLSessionConfiguration.o) (architecture armv7s):
Fabric.framework(CLSURLSessionUploadTask.o) (architecture armv7s):
Fabric.framework(CLSUserDefaults.o) (architecture armv7s):
Fabric.framework(FABAsyncOperation.o) (architecture armv7s):
Fabric.framework(FABCompoundOperation.o) (architecture armv7s):
Archive : Fabric.framework (architecture arm64)
Fabric.framework(FABApplication.o) (architecture arm64):
Fabric.framework(FABSettingsOnboardingManager.o) (architecture arm64):
Fabric.framework(FABByteUtility.o) (architecture arm64):
Fabric.framework(FABUUID.o) (architecture arm64):
Fabric.framework(FABIcon.o) (architecture arm64):
Fabric.framework(Fabric.o) (architecture arm64):
Fabric.framework(FABNetworkOperation.o) (architecture arm64):
Fabric.framework(FABHost.o) (architecture arm64):
Fabric.framework(FABURLBuilder.o) (architecture arm64):
Fabric.framework(FABCertificatePinner.o) (architecture arm64):
Fabric.framework(FABAppIconUtility.o) (architecture arm64):
Fabric.framework(FABMultipartMimeStreamEncoder.o) (architecture arm64):
Fabric.framework(FABSettings.o) (architecture arm64):
Fabric.framework(FABApplicationIdentiferModel.o) (architecture arm64):
Fabric.framework(FABDownloadAndSaveSettingsOperation.o) (architecture arm64):
Fabric.framework(FABCerts.o) (architecture arm64):
Fabric.framework(FABNetworkResponseHandler.o) (architecture arm64):
Fabric.framework(FABOnboardingOperation.o) (architecture arm64):
Fabric.framework(FABNetworkClient.o) (architecture arm64):
Fabric.framework(FABConstants.o) (architecture arm64):
Fabric.framework(CLSdSYM.o) (architecture arm64):
Fabric.framework(CLSCodeMapping.o) (architecture arm64):
Fabric.framework(CLSMachOBinary.o) (architecture arm64):
Fabric.framework(CLSMachOSlice.o) (architecture arm64):
Fabric.framework(CLSMachO.o) (architecture arm64):
Fabric.framework(CLSURLSessionDownloadTask.o) (architecture arm64):
Fabric.framework(CLSURLSessionTask.o) (architecture arm64):
Fabric.framework(CLSURLSessionDataTask.o) (architecture arm64):
Fabric.framework(CLSURLSession.o) (architecture arm64):
Fabric.framework(CLSURLSessionConfiguration.o) (architecture arm64):
Fabric.framework(CLSURLSessionUploadTask.o) (architecture arm64):
Fabric.framework(CLSUserDefaults.o) (architecture arm64):
Fabric.framework(FABAsyncOperation.o) (architecture arm64):
Fabric.framework(FABCompoundOperation.o) (architecture arm64):
У кого-нибудь есть идеи по решению этой проблемы?