yes pwa name icon home content capable apps apple app ios xcode app-store

ios - pwa - web app ipad



Compruebe y elimine la arquitectura no compatible[x86_64, i386] en IPA/Archive (2)

Apple ha comenzado a quejarse si la aplicación contiene arquitecturas de simulador durante la distribución.

¿Cómo se puede resolver el error anterior?

Solución:

Agregue el siguiente código en el script de ejecución del objetivo del proyecto, esto elimina la arquitectura del simulador (x86_64 y i386) de su aplicación en el proceso de construcción:

Cáscara :

/bin/sh

Código:

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and # removes unused architectures. find "$APP_PATH" -name ''*.framework'' -type d | while read -r FRAMEWORK do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHS do echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") done echo "Merging extracted architectures: ${ARCHS}" lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done

Solución:

Hay una solución más , si deseas hacerlo solo una vez. Pero tenga cuidado, ya que después de seguir los siguientes pasos, no podrá ejecutar la aplicación en el simulador. Hágalo justo antes de implementar la aplicación en Testflight / App-store.

Vaya dentro de su carpeta ProjectFramework.framework de su proyecto desde la terminal. Ejecutar los siguientes comandos:

lipo -remove i386 ProjectFramework_SDK -o ProjectFramework_SDK lipo -remove x86_64 ProjectFramework_SDK -o ProjectFramework_SDK

Compruebe las arquitecturas desde el marco?

$ lipo -info PathToProject/ProjectName.framework/ProjectName

La salida será: → Las arquitecturas en el archivo grueso: ProjectName son: i386 x86_64 armv7 arm64

Árbitro. doc: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/

Problema:

Al enviar la aplicación a la App Store, se informa del siguiente error:

Unsupported Architecture. Your executable contains unsupported architecture ''[x86_64, i386]

Preguntas:

  1. ¿Cómo se puede resolver el error anterior?

  2. ¿Cómo puedo verificar las arquitecturas utilizadas por el archivo o IPA?

  3. ¿Cómo puedo asegurarme de que el archivo de la Release no incluya x86_64 y i386 (arquitecturas de simulador)?

    • ¿Es solo posible a través de un script o hay una configuración en la configuración de Build Settings o en otra parte?

Para un marco dinámico creado a medida

  1. Terminal abierta

  2. Abra la ruta de arrastre del proyecto del marco respectivo a Terminal

    Por ejemplo, cd /Users/mahipal/Desktop/masterTest/Alamofire.framework

  3. Establezca su nombre de Framework en el siguiente comando y ejecute

    lipo -remove i386 Alamofire -o Alamofire && lipo -remove x86_64 Alamofire -o Alamofire