Estoy tratando de enviar una aplicación con el Xcode6 GM, y aparece este error en la validación. La aplicación tiene una extensión de acción y un marco dinámico que se comparte entre la extensión y la aplicación misma.
No tengo un archivo llamado 'Frameworks' en ninguna parte del proyecto, por lo que realmente no estoy seguro de lo que se supone que significa. ¿Alguien ha tenido este problema o tiene alguna idea?
ios
xcode
app-store-connect
Miguel
fuente
fuente
Respuestas:
Resulta que el error está relacionado con el uso de Swift (tanto la aplicación como la extensión hacen uso de Swift).
Para la aplicación, tuve que configurar:
y para la extensión:
Xcode 8 y 9
Parece que esto ha cambiado de nombre
Always Embed Swift Standard Libraries
en Xcode 8 y 9. Entonces, para la aplicación:y para la extensión:
fuente
@executable_path/../../Frameworks
La única solución que me funcionó fue agregar este script de ejecución al objetivo de la extensión de la aplicación:
Fuente: https://github.com/CocoaPods/CocoaPods/issues/4203
fuente
dyld: Library not loaded: ... Image not found
Alguien puede ayudarme?Entonces, 3 pasos para arreglar esto desde la configuración de compilación
Embedded Content Contains Swift Code: YES
Embedded Content Contains Swift Code: NO
@executable_path/../../Frameworks
fuente
En mi caso, acabo de actualizar a CocoaPods 1.0.1 y esto parece ser un nuevo error.
La actualización de Pod agrega un script de ejecución al objetivo de mi Extensión que crea la carpeta Frameworks. Lo encontré cuando estaba a punto de agregar el script de ejecución de @ Roman para eliminarlo.
La solución fue eliminar este script de la fase de compilación de mi extensión. Aquí está el que tenía que ir ...
fuente
1.1.0.rc.2
resolver el problema para mí.Elimine cada fase de construcción de su extensión que tenga una
embed
palabra en su título.Adicionalmente:
Yes
para el objetivo de extensión.fuente
Ninguna de las respuestas anteriores funcionó para mí. Esto se debió a que el error no fue causado por la aplicación principal o su extensión. Más bien una de las bibliotecas vinculadas tenía la culpa.
Para confirmar, primero archiva con Xcode y luego con Organizer, selecciona la entrada y localiza usando Show in Finder. Esto mostrará el
.xcarchive
archivo.Seleccione ese archivo y elija "Mostrar contenido del paquete".
Seleccione el archivo .app en la carpeta Productos / Aplicaciones y vuelva a elegir "Mostrar contenido del paquete".
Localice el módulo infractor en la carpeta Frameworks. Por ejemplo si el error es:
Luego, en lo
Frameworks/MyLib.framework
siguiente, probablemente será visible:Estos están presentes porque la biblioteca vinculada - o módulo - que incluye la aplicación principal tiene el
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Localice el módulo dependiente en Xcode y actualice la bandera:
Tenga en cuenta que una vez superado este problema, la aplicación aún puede ser rechazada con un correo electrónico explicativo de la tienda iTunes Store:
De nuevo, esto vuelve a la
EMBEDDED_CONTENT_CONTAINS_SWIFT
bandera. Asegúrese de que solo la aplicación principal tenga esto configurado enYES
. Tanto la aplicación como la extensión WatchKit deben tener este indicador configurado enNO
. Esto es como se detalla en la respuesta de @ Mike arriba.fuente
En mi caso, había una biblioteca CocoaPod "Blockly" que especificaba Sí para "Bibliotecas estándar Swift siempre integradas". Después de hacer NO para la opción, funcionó.
fuente
En mi caso, la solución fue eliminar mi marco de trabajo de los binarios integrados de mi extensión y agregarlo a las bibliotecas y los marcos vinculados de mi extensión. (Ambos se pueden encontrar en la pestaña General de la extensión).
fuente
Si el script Embed Pods Frameworks y el script de Roman existen en el mismo objetivo
Compruebe si el marco de incrustación de pods se ubica antes que el otro. Si no, simplemente mueve el guión de Roman al último.
fuente
No pude encontrar ninguna configuración para
Embedded Content Contains Swift Code
pero pude encontrar una configuraciónAlways Embed Swift Standard Libraries
y establecer esto en NO para mi marco solucionó este problema.fuente
cd "$ {CONFIGURATION_BUILD_DIR} / $ {UNLOCALIZED_RESOURCES_FOLDER_PATH} /" if [[-d "Frameworks"]]; entonces rm -fr Frameworks fi
fuente
Si está utilizando CocoaPods, consideraría eliminar la fase de compilación de marcos de incrustación en el objetivo problemático (la extensión), esto solucionó el problema para mí.
fuente
Recibía el mismo error, y es porque estaba copiando el marco en el paquete de extensión. Como resultado, los marcos que utiliza la extensión deben copiarse en el paquete de la aplicación principal y solo vincularse en la configuración de compilación de la extensión (no copiada). Asegúrese de tener la ruta de búsqueda '@executable_path /../../ Frameworks' en la compilación de la extensión. Creo que esa ruta fue agregada automáticamente por XCode 10.
fuente
Encontré muchas preguntas como esta y ninguna me ayudó a solucionar mi problema, así que espero que esto pueda ayudar a alguien.
Estoy creando una aplicación que tiene una extensión Intent (para los accesos directos de Siri) y estoy usando un marco para el código compartido entre la extensión y mi aplicación, según lo recomendado por Apple.
Había agregado mi marco a mi extensión en la sección "Marcos y bibliotecas" de la configuración "General" para el objetivo. Cuando agrega un marco aquí, hay dos columnas. Uno dice el nombre del marco y el otro se titula "Incrustar". No aparecía nada en la columna "Insertar", así que pensé que estaba bien, pero tuve que elegir explícitamente una opción "No insertar" para esa columna para mi marco. Cuando hice eso y archivé en Xcode, pude ver durante la validación que el marco ya no figuraba en mi contenido de ipa debajo de cada objetivo, sino solo una vez, y la validación tuvo éxito finalmente.
fuente
Tuve este problema la primera vez con XCode 7.1.1 para mi aplicación que tiene una extensión Today (no hay Swift en mi proyecto). El script ( https://github.com/CocoaPods/CocoaPods/issues/4203 ) no funcionó para mí.
La degradación de cocoapods a la versión 0.39.0.beta.3, la ejecución
pod install
y el re-archivo resolvieron el problema.fuente
Estaba recibiendo este mismo error, junto con un
Mi problema fue
SquareReaderSDK.framework
específicamente, pero tuve que agregar un nuevo script de ejecución según sus instrucciones:fuente
Ninguna de las configuraciones de compilación enumeradas aquí resolvió este problema por mí. Sin embargo, conseguí que esto funcionara después de mover algunos marcos de "Binarios incrustados" a "Marcos y bibliotecas vinculadas".
Parece que mi aplicación principal y uno de mis marcos personalizados tenían la misma dependencia de marco en ambos y eso parece ser un No No, pero moverlo en mi aplicación principal desde el área Incrustada al área Vinculada me permitió cargar la aplicación con éxito con sin errores.
fuente