vaina semillas comprar cacao ios swift cocoapods

ios - semillas - Swift framework dependiendo de la vaina de cacao



semillas de cacao (3)

Usando la versión más reciente de vainas de cacao (0.36), puedo incrustar vainas de cacao escritas en swift (por ejemplo, Alamofire) en mi proyecto de swift. Ahora introduje un marco personalizado propio en el proyecto, que también quiere depender de Alamofire.

Lo que hice para lograrlo es seleccionar agregar el marco de pods a mi marco como dependencia:

Seleccione el Objetivo para mi propio Swift Framework (Módulo Swift) incorporado y en la pestaña "General" en "Marcos y bibliotecas vinculadas", agregué "Pods.framework" como "Requerido".

Sin embargo, eso no es suficiente para compilar, ya que las clases en mi propio framework swift no pueden "importar Alamofire" ya que no se reconoce como "framework disponible".

Agregar el archivo Pods.debug.xcconfig y el archivo Pods.release.xcconfig al Configuraciones para el objetivo de mi propio marco de trabajo rápido, en otras palabras, cambiar la configuración de compilación para hacer todos los cambios que las vainas de cacao hacen con la configuración de compilación de mi Aplicación iOS objetivo, resuelve el problema.

Ahora se construye sin ningún problema. También se ejecuta sin problemas en el simulador y mi propio marco Swift incorporado utiliza con éxito los marcos agregados por las vainas de cacao.

SIN EMBARGO, si ejecuto lo mismo en un dispositivo, se compila e instala sin problemas, pero luego se bloquea con un error fatal en el inicio:

dyld: Library not loaded: @rpath/Pods.framework/Pods Referenced from: /private/var/mobile/Containers/Bundle/Application/32D2F1F8-679F-4A5F-8159-28F1C800D0C6/TestingFrameworks.app/Frameworks/mySwiftFramework.framework/mySwiftFramework Reason: image not found

Aparentemente, no todas las configuraciones del archivo xcconfig de las vainas de cacao son adecuadas para ser agregadas a las configuraciones de compilación de mi marco swift personalizado.

Pero entonces, ¿por qué funciona en el simulador? Y más importante, ¿cuál es la configuración de compilación, que debo corregir?

A mi me parece que necesito cambiar esta configuración de compilación:

PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods

a otra cosa ...


Identifiqué el problema. Simplemente no había pods.framework en la carpeta Frameworks del framework incrustado.

Esto se debe al hecho de que Pods-frameworks.sh no copia realmente las cosas en el directorio correcto.

Me las arreglé para solucionar este problema por:

  1. Eliminar los inútiles Frameworks de Incrustar Pods de las fases de compilación
  2. Adición de una copia de archivos con destino establecido en Frameworks

¡Eso es!


Muchas gracias por compartir @Pasta y @Matt Quiros y resolvió mi problema. Bien, solo quiero compartir un poco más sobre mi caso y espero que eso sea útil.

Entorno de desarrollo

Versión Xcode 9.1 (9B55)

Implementar la versión de iOS: 10.0

Problema:

Así que estoy trabajando en un proyecto llamado ''MyProject'' donde importé la biblioteca ''Gráficos'' usando CocoaPod. Al mismo tiempo, también hay un marco privado ''MyFramework'' importado en ''MyProject''. Aquí el problema es que quiero usar "Gráficos" en "Mi marco" y Xcode me sigue diciendo que la biblioteca de "Gráficos" no está identificada.

Solución:

Cerré ''MyProject'' y abrí ''MyFrameWork'' y ''File'' -> ''New'' -> ''File ...''. Cree dos archivos de configuración y colóquelos en el mismo nivel de carpeta del archivo ''* .xcodeproj''. Un archivo de configuración se llama ''Pods-MyFramework.debug.xcconfig'' y el otro se llama ''Pods-MyFramework.release.xcconfig''. (El nombre del archivo puede ser cualquier cosa, pero no estoy seguro de si la ubicación de los archivos es importante). La siguiente es la estructura de archivos en el disco y en mi Xcode.

Ahora, cierre el proyecto ''MyFramework'' y abra el proyecto ''MyProject'', en mi Xcode la estructura del archivo se muestra a continuación. Expanda la carpeta ''Pods'' bajo el nivel ''MyProject''. Verá algunos archivos de configuración, copie su contenido a los archivos de configuración que acaba de crear en el proyecto ''MyFramework'', debug.config -> debug.config, release.config -> release.config.

Luego, en un ''MyViewController'' en ''MyFramewwork'', agregué ''Importar gráficos'' y solo quería probarlo en el simulador y ... pasó. ¡¡Sí!! Luego agregué algo de código en el mismo VC para crear un gráfico de barras y lo ejecuté con éxito en un dispositivo real y el gráfico de barras que se muestra en la pantalla. Luego intenté el último paso que @Pasta mencionó que agregar la opción ''Copiar archivos'' a ''Crear fases'' de ''MyProject'', también se ejecutó con éxito en un dispositivo real. Lo quité de nuevo y todavía funciona.


Para cualquier novato como yo, esta parte de la pregunta podría confundirlo:

Agregar el archivo Pods.debug.xcconfig y el archivo Pods.release.xcconfig al Configuraciones para el objetivo de mi propio marco de trabajo de Swift, en otras palabras, cambiar la configuración de compilación para hacer todos los cambios que las vainas de cacao hacen con la configuración de compilación de mi Aplicación iOS objetivo, resuelve el problema.

Para hacer esto:

  1. En el proyecto Xcode de su marco integrado personalizado, haga clic en File > New > File... > iOS > Other > Configuration Settings File .

  2. Haga lo anterior dos veces. Puede nombrar los archivos Pods.release.xcconfig y Pods.debug.xcconfig , respectivamente.

  3. En su navegador de proyectos, expanda el proyecto Pods Xcode> Target Support Files > Pods . Verás que hay archivos .xcconfig nombres .xcconfig allí. Simplemente copie su contenido en el archivo del mismo nombre dentro de su marco Swift incorporado personalizado.

  4. Haga clic en el archivo de proyecto Xcode de Swift Framework, seleccione el objetivo del proyecto (el azul, no el amarillo de la caja de herramientas)> Info > Configurations .

  5. Expanda las configuraciones de Debug y Release . Es probable que vea dos objetivos en su proyecto Xcode: el objetivo principal del marco y el objetivo de prueba. En la columna "Basado en el archivo de configuración", configure los archivos de configuración en el destino principal para que sean los Pods.debug y Pods.release que creó anteriormente.

Y luego hacer la answer @Pasta .

ACTUALIZAR

Si está utilizando su marco Swift incorporado personalizado con otros proyectos, esta configuración se interrumpirá simplemente porque otros proyectos tienen diferentes configuraciones .xcconfig (el .framework los Pods también puede tener un nombre diferente).

Recurrí a solo agregar Alamofire como un submódulo de git dentro de mi marco. NOTA: Para ir a la manera de git submodule , es necesario que agregue su marco personalizado a los marcos Embedded Frameworks del proyecto principal, así como al Alamofire.framework desde su marco personalizado.