Ho un progetto con diversi obiettivi. C'è un file xcconfig associato al progetto e diversi file xcconfig associati alle destinazioni.Il pods.xcconfig di CocoaPods è in conflitto con quelli esistenti
Ora voglio incorporare una libreria di terze parti tramite CocoaPods. Dopo $ pod install
CocoaPods ha avvitato il progetto originale poiché associa il proprio file xcconfig Pds.xcconfig
alla destinazione del progetto originale. Questo ignora completamente e sovrascrive le impostazioni definite nel xcconfig originale associato al progetto e ha disattivato il file xcconfig originale associato al/i bersaglio/i. Quindi, il progetto è finito svitato.
Ad esempio, Cocoapods definisce quanto segue nella sua Pods.xcconfig
che è associato a ciascuna porta:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
Ho configurazioni diverse per ogni configurazione, ad esempio per debug il file di configurazione osx.debug.xcconfig
definisce
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
Qual è un approccio ragionevole e praticabile per risolvere tali conflitti?
Edit:
Ho cercato attraverso la lista problemi CocoaPods su GitHub. Sembra esserci un gran numero di problemi relativi ai file xcconfig, alcuni dei quali hanno più di 2 anni. Sono discussi e poi chiusi, ma - come mi è venuto in mente - il problema non è ancora stato risolto.
IMHO, questo è un problema fondamentale e di base: esiste un progetto che utilizza i file xcconfig. Quindi, si desidera includere una libreria di terze parti tramite CocoaPods. Dopo aver eseguito pod install
, il progetto è rovinato.
Quindi, che succede?
Sfortunatamente, le impostazioni di build che non possono essere estese o modificate sono essenziali: GCC_PREPROCESSOR_DEFINITIONS, HEADER_SEARCH_PATHS, OTHER_CFLAGS e OTHER_LDFLAGS. Il colpevole potrebbe essere anche Xcode poiché il file xcconfig non può gestire tali dichiarazioni: 'HEADER_SEARCH_PATHS = $ (HEADER _SEARCH_PATHS) MyOtherIncludes'. Per fare in modo che quel lavoro interrompa il comportamento corrente, le impostazioni del file xcconfig di Xcode modificano le impostazioni di costruzione sottostanti. – CouchDeveloper