2015-12-23 21 views
15

Voglio usare alcuni pod Swift nella mia app Objective-C, quindi ho bisogno di usare framework invece di librerie statiche. Ma abilitare use_frameworks! nel mio Podfile provoca i toni degli errori #import.Cocoapods use_frameworks! problema di importazione

mio Podfile:

platform :ios, '8.0' 
use_frameworks! 

pod 'AFNetworking', '2.6.0' 
pod 'Typhoon' 
pod 'SSKeychain' 
pod 'JBWebViewController' 
pod 'TTTAttributedLabel' 
pod 'HockeySDK' 
pod 'GoogleAnalytics' 
pod 'Intercom' 
pod 'FBSDKCoreKit' 
pod 'FBSDKLoginKit' 
pod 'UIButton+Activity' 
pod 'HexColors' 
pod 'AFNetworkActivityLogger' 
pod 'HCSStarRatingView', :git => 'https://github.com/hsousa/HCSStarRatingView.git' 
pod 'LGSideMenuController' 
pod 'DateTools' 
pod 'SDWebImage' 
pod 'SSCWhatsAppActivity' 
pod 'UIViewController+BlockSegue' 

Il primo problema è stato con SSKeychain pod:

SSKeychain Error

Nel codice che sto usando compresi SSKeychain "virgolette" #import "SSKeychain/SSKeychain.h", ma se ho capito bene, Devo usare <angle> da ora #import <SSKeychain/SSKeychain.h>? Ma in questo caso ricevo lo stesso errore, ma nel mio codice.

mie fasi di creazione:

Build Phases

Comunque ho trovato fork di SSKeychain con "virgolette" di importazione (https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749) e passato a quelli di versione.

ma ora ho stesso problema con molti altri baccelli (quasi con tutti loro):

FBSDKCoreKit error

Importa in app: #import "FBSDKCoreKit/FBSDKCoreKit.h"

Ho davvero bisogno di sborsare ogni pronti contro termine e cambiamento dichiarazioni di importazione ?? O sto includendo i pod in modo sbagliato?

PS: sto pulendo i dati derivati ​​e progetto prima di ogni tentativo di costruzione.

Cocoapods Versione: 0.39.0

+0

Quale versione di CocoaPods stai usando? L'ultimo? 0.39.0? –

+0

uscita progetto, uscire ed eseguire "pod install" – Khuong

+0

@DiegoFreniche Ho provato sia la versione 0.39.0 sia la versione creata dall'ultimo ramo master. – Ponf

risposta

9

Come hai utilizzato Modules nel vostro Podfile, perché non basta:

@import SSKeychain; 

invece di:

#import <SSKeychain/SSKeychain.h> 

Per testare che:

  • creare un si progetto mple iOS, con un solo ViewController
  • creare un Podfile utilizzando il codice di cui sopra
  • corsa pod installare
  • aprire l'area di lavoro
  • accumulo & run: si compila OK
+0

Quando sto cercando di usare '@ import' invece di' # import' ricevo l'errore che non è stato trovato nel framework: https://s.mail.ru/GNxY2NAxse12/img-2015-12-23-12-42-25 .png. Penso che questo sia un problema principale – Ponf

+0

Ho testato un progetto vuoto e funziona, crea un progetto di test per assicurarti che funzioni, quindi confronta il tuo target con il nuovo target del progetto –

+0

L'ho finalmente capito! Il problema è stato risolto rimuovendo 'Pods.framework' da ** Link Binary With Libraries ** e aggiungendoli di nuovo manualmente. Grazie per l'aiuto! Puoi modificare la tua risposta e io la accetterò :) – Ponf

6

ho finalmente capito fuori! Il problema è stato risolto rimuovendo Pods.framework da Link Binary With Libraries e aggiungendoli di nuovo manualmente.

Grazie per l'aiuto!

+0

È strano, hai effettivamente aperto lo spazio di lavoro piuttosto che il progetto? – AncAinu

+1

@AncAinu sì, anche io ho 2 obiettivi nel progetto e i framework sono stati collegati solo contro uno di essi, quindi ho dovuto aggiungere ** Embed Pods Frameworks ** build step manualmente :( – Ponf

+2

La prossima volta, sarebbe utile per eseguire questo (https://github.com/CocoaPods/cocoapods-deintegrate) per rimuovere tutte le tracce di CocoaPods, quindi 'pod install' di nuovo –

0

Controllare anche i messaggi di errore su pod install.

Nel mio caso stavo usando un'importazione personalizzata in FRAMEWORK_SEARCH_PATHS, e solo perché lo stavo facendo, ogni volta che ho fatto pod install i percorsi di ricerca extra che aggiunge CocoaPods non venivano aggiunti. Quindi ho dovuto rimuovere il mio percorso personalizzato e poi si sono presentati. Quindi ho aggiunto il mio percorso personalizzato.

potrebbe essere una buona idea per fare pod deintegrate, cancellare il file de xcworkspace e fare pod install una volta di più. Quindi aggiungi le impostazioni di compilazione personalizzate.

Questo è l'errore che è stato sempre:

[!] The App [Debug] target overrides the FRAMEWORK_SEARCH_PATHS 
build setting defined in Pods/Target Support Files/Pods-AppLib/Pods-AppLib.debug.xcconfig. 
This can lead to problems with the CocoaPods installation 
0

Nel mio caso, quello che era un problema che ho già scaricato alcuni objC Pods per il mio Objective C Progetto poi ho bisogno di uno veloce pod così permetto use_framwork nel mio file pod e installare quel pod swift, Dopo aver installato il problema di importazione del pod rapido arriva per le librerie ObjeC in molte classi, Quindi

Cosa ho fatto per risolvere questo problema?

  1. Cut tutti baccelli Obiettivo C da file pod
  2. Aprire terminale ed eseguire il comando: cd path/myProject
  3. Terminal comando di marcia: pod install
  4. Passato (tutti i baccelli Obiettivo C) di nuovo nel file di pod e risparmiare si
  5. Terminal comando di marcia: pod install
Problemi correlati