tutorial for español developer apple ios xcode swift

ios - for - xcode tutorial español



Soporte Swift inválido-Los archivos no coinciden (9)

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

Luché con el error "Invalid Swift Support" por un tiempo ( que tiene otras preguntas relacionadas ) ... pero ahora ha cambiado a algo un poco diferente.

El error de Apple ahora dice:

Soporte rápido inválido

Los archivos 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/Appworks. dylib

Asegúrese de que los archivos sean 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/Appworks. dylib

No he podido encontrar errores similares buscando "No aplicar postprocesamiento", "Asegúrese de que los archivos sean correctos, reconstruya su aplicación y vuelva a enviarla", etc.

¿Alguien sabe cómo puedo "Asegurarme de que los archivos sean correctos" o tengo alguna otra recomendación? Gracias.


  1. Actualice sus cocoapods a la última versión, escriba sudo gem install cocoapods en la terminal.
  2. Ejecute la pod update en el directorio de su proyecto.
  3. Recuerde configurar la opción Habilitar código de bits en NO para la 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


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


El mismo problema aqui. Creo que es muy probable que sea un error de las Herramientas para desarrolladores, relacionado con el Código de bits.

Acabo de encontrar la solución para esto.

  1. Archive su aplicación con el nuevo número de compilación :(
  2. Busque el archivo (archivo .xcarchive) en Finder desde el Organizador "Mostrar en Finder"
  3. Abra el paquete y busque directorios como Products/Applications/YourApp.ipa/Frameworks/ y SwiftSupport/iphoneos/
  4. Copie todos los archivos libswiftXxx.dylib de SwiftSupport/iphoneos/ en Products/Applications/YourApp.ipa/Frameworks/ y sobrescriba
  5. Ahora, suba a la tienda de aplicaciones desde el organizador

Con este proceso, logro subir mi compilación. Ahora estoy esperando una revisión.

NOTA:

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


Estaba usando fastlane gym 1.9.0 para compilar mi aplicación y Apple me rechazaba porque los archivos no coincidían, mientras que si subía a través de XCode 8 se aceptaba. Revisé las bibliotecas rápidas en la carpeta de soporte rápido de la ipa y en la carpeta Frameworks, encontré que las bibliotecas en la carpeta de soporte swift eran para swift 2.3 mientras que en la carpeta Frameworks era swift 3. Así que en mi archivo 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 cuenta que tuve que cambiar use_legacy_build_api a falso para usar la opción toolchain

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


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

Eché un vistazo en Pods-frameworks.sh y encontré una sección comentada como:

Incrustar bibliotecas de tiempo de ejecución Swift vinculadas
Al comentar el bloque de código que copia estas bibliotecas (y el código las firma) parece haber solucionado mis problemas de envío. Todavía no me he sumergido más profundamente para ver si es solo la copia de ellos lo que causa los problemas o si es la firma de código. Me estoy saliendo un poco de mi profundidad allí.


He visto este error al integrar bibliotecas que no admiten código de bits (como la versión estable actual de New Relic). La solución es eliminar las bibliotecas, deshabilitar el código de bits (y posiblemente no poder enviarlo a la tienda) o esperar a que se actualicen los archivos binarios que admiten el código de bits del vendedor de su biblioteca.



Mi solución para esto:

Estoy usando Reveal a través de Cocoapods y Reveal necesita deshabilitar Bitcode. Así que incluí Reveal (debería funcionar para cualquier otro Framwork) solo para Debug:

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

Como mi Reveal ahora solo está configurado para depuración, deshabilité Bitcode solo para depuración.

Con esta configuración todo funciona bien, sin ningún truco ...


Editar: se ha lanzado CocoaPods 0.39.0 que soluciona este problema.

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

En el directorio de su proyecto Xcode, abra Pods/Target Support Files/Pods/Pods-frameworks.sh

Comente 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

¡Guarde Pods-frameworks.sh y debería estar Pods-frameworks.sh para Pods-frameworks.sh !