Soporte Swift no válido: los files no coinciden

Acabo de volver a escribir una aplicación en Swift 2. Estoy intentando upload la aplicación a iTunesConnect (a través de Xcode 7 GM) para realizar testings internas.

Luché con un error de "Soporte Swift Invalido" por un time ( que tiene otras preguntas relacionadas ) … pero ahora cambia a algo un poco diferente.

El error de Apple ahora dice:

Soporte Swift no válido

Los files libswiftCoreLocation.dylib, libswiftCoreMedia.dylib, libswiftCoreData.dylib, libswiftAVFoundation.dylib no coinciden

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Payload/App.app/Frameworks/libswiftCoreData.dylib, /Payload/App.app/Frameworks/libswiftAVFoundation. dylib

Asegúrese de que los files son correctos (?), Reconstruya su aplicación y vuelva a enviarla.

No aplique el procesamiento posterior a

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Payload/App.app/Frameworks/libswiftCoreData.dylib, /Payload/App.app/Frameworks/libswiftAVFoundation. dylib

No he podido encontrar errores similares al search "No aplique el procesamiento posterior", "Asegúrese de que los files son correctos, reconstruya su aplicación y vuelva a enviarla", etc.

¿Alguien sabe cómo puedo "Asegurarme de que los files son correctos" –o– tengo otras recomendaciones? Gracias.

El mismo problema aqui. Creo que esto es muy probablemente un error de las herramientas de desarrollo, relacionadas con el código de bits.

Acabo de encontrar la solución para esto.

  1. Archiva tu aplicación con un nuevo número de compilation 🙁
  2. Busque el file (file .xcarchive) en el Finder desde el organizador "Mostrar en el Finder"
  3. Abra el package y busque directorys como Products/Applications/YourApp.ipa/Frameworks/ y SwiftSupport/iphoneos/
  4. Copie todos los files libswiftXxx.dylib de SwiftSupport/iphoneos/ en Products/Applications/YourApp.ipa/Frameworks/ y sobrescriba
  5. Ahora, suba a App Store desde el organizador

Con este process, consigo upload mi compilation. Ahora estoy esperando la revisión.

NOTA:

Estoy usando CocoaPods, y la opción ENABLE_BITCODE fue NO.

Edit: CocoaPods 0.39.0 ha sido lanzado que soluciona este problema.

Como mencionó @orkenstein , hay una solución más simple al comentar un código en Pod-frameworks.sh . Estoy incluyendo un poco más de detalles aquí.

En el directory de proyectos de Xcode, abra Pods/Target Support Files/Pods/Pods-frameworks.sh

Comenta las siguientes líneas:

 # Embed linked Swift runtime libraries local basename basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" local swift_runtime_libs swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" code_sign_if_enabled "${destination}/${lib}" done 

=>

 # Embed linked Swift runtime libraries # local basename # basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" # local swift_runtime_libs # swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) # for lib in $swift_runtime_libs; do # echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" # rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" # code_sign_if_enabled "${destination}/${lib}" # done 

¡Salva Pods-frameworks.sh y deberías estar listo!

La solución para este problema se ha fusionado y está disponible en la última versión de 0.39.0.beta.5

https://github.com/CocoaPods/CocoaPods/pull/4268

Para get la última versión de CocoaPods, ejecute gem install cocoapods --pre

Alternativamente, siga las instrucciones para ejecutar las características inéditas: http://guides.cocoapods.org/using/unreleased-features

Una vez que tengas la última versión de CocoaPods, vuelve a ejecutar la pod install .

Estuve usando fastlane gym 1.9.0 para build mi aplicación y siguió siendo rechazada por Apple porque los files no coincidían, mientras que si cargué a través de XCode 8 fue aceptado. Revisé las libs rápidas en la carpeta de soporte rápido de ipa y en la carpeta Frameworks encontré que las libs en la carpeta de soporte rápido eran para swift 2.3 mientras que en la carpeta Framework era swift 3. Entonces, en mi file de gimnasio agregué la cadena de herramientas opción:

 gym( scheme: "CoCadre", configuration: "Production Release", clean: true, use_legacy_build_api: false, toolchain: "com.apple.dt.toolchain.Swift_2_3" ) 

* Tenga en count que tuve que cambiar use_legacy_build_api a false para usar la opción toolchain

Para usar la opción de cadena de herramientas, debe establecer use_legacy_build_api: false https://github.com/fastlane/fastlane/issues/6003#issuecomment-244792185

Hay una solución un poco less compleja, que se encuentra en GitHub :

Miré alnetworkingedor en Pods-frameworks.sh y encontré una sección comentada como:

Incrustar bibliotecas de time de ejecución Swift vinculadas
Comentar el bloque de código que copy estas bibliotecas (y el código las firma) parece haber solucionado mis problemas de presentación. No me he sumergido aún más para ver si es solo la copy de ellos lo que causa los problemas o si es la firma de código. Estoy un poco fuera de mi profundidad allí.

  1. Actualiza tus cocoapods a la última versión, escribe sudo gem install cocoapods en el terminal.
  2. Ejecute la pod update en el directory de su proyecto.
  3. Recuerde establecer Habilitar Bitcode en NO para la opción Debug para todos sus pods.
  4. Fijo

El problema se soluciona porque el siguiente código en Pods-frameworks.sh :

 # Embed linked Swift runtime libraries local basename basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" local swift_runtime_libs swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" code_sign_if_enabled "${destination}/${lib}" done 

fue cambiado a:

 # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" code_sign_if_enabled "${destination}/${lib}" done fi 

Mi solución para esto:

Estoy usando Reveal through Cocoapods y Reveal necesita desactivar Bitcode. Entonces incluyé Reveal (debería funcionar para cualquier otro Framwork) solo para Debug:

 pod 'Reveal-iOS-SDK', :configurations => ['Debug'] 

Como mi revelación ahora solo está configurada para debugging, deshabilité Bitcode solo para debugging.

introduzca la descripción de la imagen aquí

Con esta configuration todo funciona bien, sin ningún tipo de hacks …

He visto este error producirse al integrar bibliotecas que no son compatibles con bitcode (como la versión estable actual de New Relic). La solución es eliminar las bibliotecas, desactivar el código de bits (y posiblemente no poder enviarlas a la tienda), o esperar files binarys actualizados compatibles con el código de bits de su biblioteca.

El error para mí fue que construí con el perfil de Adhoc en lugar del perfil de la tienda de aplicaciones para cargar el spa en la tienda de aplicaciones.