xcode - manually - pod init
El objetivo... anula la configuración de compilación `OTHER_LDFLAGS` definida en` Pods/Pods.xcconfig (9)
He incorporado SpatialIite
en un proyecto de Xcode que usa un archivo de encabezado de Proj.4
, solo un encabezado. Ambos son proyectos de Xcode y tienen objetivos estáticos.
Estoy tratando de migrar de Git submodule a Cocoapods. Dado que los objetivos estáticos parecen ser difíciles de usar con Cocoapods, solo quiero que el proyecto se construya de la manera habitual. Hice podspec para Proj.4
. Después de escribir podfile para SpatialLite
obtuve las advertencias:
[!] The target `SpatialiteIOS [Debug]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig''.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig''.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig''.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig''.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Leí este problema pero no tengo ni idea de lo que significan las advertencias y qué puedo hacer para solucionarlo.
Además, cuando abro el espacio de trabajo y abro solo el proyecto SpatiaLite, ambos están dirigidos a Mac OSX 64, cuando se supone que es un proyecto iOS. Mi podfile dice "plataforma: ios".
Agregué $ (heredado) pero mi proyecto aún no estaba compilando. Para mí, el problema era el indicador "Crear solo para arquitectura activa", tuve que configurarlo en SÍ.
En su proyecto, busque Target -> Build Settings -> Other Linker Flags
, seleccione Other Linker Flags
, presione delete
(Teclado de Mac) / Backspace
(Teclado normal) para recuperar la configuración. Esto funciona para mi.
Ejemplo:
antes de
Después
Esto definitivamente funciona la mayor parte del tiempo:
Vaya a su Configuración de compilación de destino -> Otras banderas del enlazador -> haga doble clic. Agrega $(inherited)
a una nueva línea.
Si tiene un problema con "... target reemplaza la configuración de compilación GCC_PREPROCESSOR_DEFINITIONS definida en ...", entonces debe agregar $ (heredado) a su configuración de compilación de destino -> Macros de preprocesador
Existe un conflicto entre la configuración de compilación y la configuración de compilación predeterminada que desea Cocoapods. Para ver la configuración de compilación de Cocoapods, vea el archivo en Pods / Pods.xcconfig en su proyecto. Para mi este archivo contiene:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Commando"
OTHER_LDFLAGS = -ObjC -framework Foundation -framework QuartzCore -framework UIKit
PODS_ROOT = ${SRCROOT}/Pods
Si está satisfecho con la configuración de Cocoapods, vaya a Crear configuración para su proyecto, encuentre la configuración adecuada y presione la tecla Eliminar. Esto utilizará la configuración de Cocoapods.
Por otro lado, si tiene una configuración personalizada que necesita usar, agregue $ (heredado) a esa configuración.
He visto estos 3 errores para el comando pod en la terminal
pod install
[!] El objetivo MY_APP [Debug / Release] anula el HEADER_SEARCH_PATHS ...
[!] El objetivo MY_APP [Debug / Release] reemplaza a OTHER_LDFLAGS ...
[!] El objetivo MY_APP [Debug / Release] reemplaza a GCC_PREPROCESSOR_DEFINITIONS ...
Todos estos 3 errores desaparecerían agregando $ (heredado) a
- Rutas de búsqueda de encabezado
- Otras banderas de vinculador
- Macros de preprocesador
en Proyecto -> Destino -> Configuraciones de compilación
Y ahora el comando se ejecutaría sin dar ningún error.
pod install
La primera línea de enlace a continuación salvó mi día:
Para agregar valores a las opciones de la configuración de compilación de su proyecto, anteponga la lista de valores con $ (heredado).
https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods#faq
Además, no olvide insertar esta línea al comienzo de su archivo pod:
platform :iOS, ''5.0''
Si Xcode se queja al vincular, por ejemplo, la biblioteca no se encuentra para -lPods, no detecta las dependencias implícitas:
Vaya a Producto> Editar esquema Haga clic en Crear Agregar a la biblioteca estática Pods Limpiar y compilar nuevamente
Solo tuve un problema similar cuando ejecuté la pod install
, vi las siguientes advertencias / errores (relacionados con CLANG_CXX_LIBRARY
):
El error / advertencia de Cocoapods
[!] The `Project [Debug]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig''. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `Project [Release]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig''. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
La solución
- Seleccione su
Project
para que pueda ver laBuild Settings
. - Seleccione su
Target
(nombre de aplicación bajoTargets
) - Buscar la
C++ Standard Library
(probablemente estará en NEGRA - Esto significa que está anulada). - Seleccione la línea (Se resaltará en azul) y presione ⌘ + BORRAR (Comando + Retroceso)
La línea ya no debe estar en negrita y, si ejecuta el pod install
las advertencias / errores que deberían haber desaparecido.