Nessun modulo del genere ‘RestKit’ con cocoapods e swift

Sto avendo questo problema con un nuovo progetto. Questo problema si verifica sia con RestKit che con Facebook SDK. Stranamente SwiftyJSON funziona bene. Creo un nuovo progetto rapido e un Podfile con:

source 'https://github.com/CocoaPods/Specs.git' use_frameworks! target 'test-fb-swift4' do pod "FBSDKCoreKit" pod 'SwiftyJSON', '~> 2.1' pod 'RestKit', :inhibit_warnings => true end target 'test-fb-swift4Tests' do end 

Dopo aver creato il file, eseguo l’installazione pod e riapri xcode con il file test-fb-swift4.xcworkspace.

Ora all’interno del mio controller metto un RestKit di importazione e ottengo l’errore Nessun modulo di questo tipo ‘RestKit’. Ho provato molti modi diversi per formattare il Podfile anche in versioni molto semplici come:

 source 'https://github.com/CocoaPods/Specs.git' pod 'RestKit' 

Ho provato ad aggiungere e rimuovere use_frameworks, con e senza il target. Con e senza: inhibit_warnings.

Sto usando CocoaPods 0.36.4 e ho provato l’ultima versione di rc, lo stesso affare. La versione Objective-C di un altro progetto funziona correttamente. Questo è il mio primo progetto con Swift e sono bloccato su questo problema.

Ho avuto lo stesso problema. La mia soluzione era di aprire il progetto usando il .xcworkspace , non il .xcodeproj . .xcodeproj contiene solo il progetto principale; .xcworkspace include tutto incluso il Restkit.

Ho avuto un problema simile. Non con RestKit in particolare, ma inizialmente con HockeySDK. Ho provato di tutto, inclusa la rimozione e la reinstallazione dei pod, l’aggiornamento dei cocoapod e l’aggiornamento dei pod, l’eliminazione dei dati derivati, la pulizia del progetto, ecc.

Poi ho notato che ogni pod era un problema per me. Dopo aver continuato a cercare su argomenti correlati, ho finalmente scoperto che sotto:

• Destinazione> Fasi di creazione> Collega binario con le librerie

Ho avuto una struttura di Pods mal riposta (probabilmente da una precedente installazione di Pod o un tentativo di installazione).

Destinazione/> Fasi di creazione> Collega binario con le librerie”></p>
<p>  Dopo averlo rimosso, il problema è andato via.  Ho notato che le persone sembravano avere problemi simili sotto: </p>
<p>  • Progetto> Informazioni> Configurazioni </p>
<p>  pure, dove il framework dei pod veniva mappato in modo errato.  Quindi se il primo non funziona per te, potresti voler controllare anche il secondo. </p>
</div>
</li><!-- #comment-## -->
<div class=

La seconda opzione ha funzionato per me. Nel mio progetto> Info> Configurazioni, ho 2 obiettivi per il mio progetto: quello normale (Quizz) e quello di prova (QuizzTests): inserisci la descrizione dell'immagine qui

Per quello normale, la configurazione è stata impostata con “Pods.debug” o “Pods.release”, ma non ce n’era per QuizzTests. Non appena ho compilato la configurazione per QuizzTests, tutto ha funzionato per me.

Una cosa che potresti facilmente fare per correggere questo problema è assicurarsi che XCode sia completamente spento durante l’installazione dei pod. Ogni volta che ho questo problema, torno indietro e scopro che XCode era ancora aperto anche se ho chiuso il progetto. Spero possa aiutare!

Per me, il deintegrazione e la reinstallazione dei pod hanno risolto il problema.

Primo

 pod deintegrate 

e poi

 pod install 

Un’altra ansible soluzione che ho trovato è stata l’aggiunta di use_frameworks! al tuo Podfile se non lo hai già fatto e quindi esegui di nuovo l’ pod install . È stato un problema con Firebase quando ho aggiunto solo quel pod.

Un altro motivo di questo problema può essere rappresentato da valori errati nelle impostazioni di generazione del target: solo architettura triggers di build. Le impostazioni come nell’immagine funzionano per me. Impostazioni corrette

Per me, ‘Trova dipendenze implicite’ era deselezionato. ed era il problema. Ha funzionato bene una volta ho checked .

Il percorso: Edit Scheme > Build > Find implicit Dependencies

inserisci la descrizione dell'immagine qui

Nel mio caso dovevo solo controllare l’opzione successiva in Xcode Trova implicite Dependecies inserisci la descrizione dell'immagine qui

Non so esattamente perché, ma questo è stato abbastanza per me, spero anche per te :).

Ho avuto un problema simile quando ho aggiunto Fabric al mio progetto. Ho avuto più obiettivi (Release e Dev). Non getterebbe No Such Module per l’ import Fabric . Ciò che ha funzionato per me è stato andare su Project> Build Phases> Link Binary with Libraries e semplicemente contrassegnando lo stato di entrambi i framework del pod come Opzionale . inserisci la descrizione dell'immagine qui

Dopo ore di tentativi, ho scoperto la causa. Il mio objective principale dell’app aveva 4 configurazioni di build (debug, release, internal, external). Tuttavia i miei framework (progetti figlio) NON hanno interni, esterni in quanto sono personalizzati. Una volta ho aggiunto interno / esterno ai miei progetti di framework, tutti archiviati bene.

Nel mio caso, all’inizio avevo solo un objective in xcode. Ho eseguito l’ pod install . Alcuni mesi dopo, dovevo creare un altro objective, quindi avevo obiettivi multipli.

In questa situazione, se pod install e la build di xcode per pod install , viene visualizzato un errore “no such module”.

Così ho rimosso i file pod e quindi pod init .

Il formato Podfile è stato modificato per più destinazioni

Funziona!!

Controllalo!

Cose che ho provato:

  • Rimozione e riaggiunta del framework dei pod collegati
  • Pulizia
  • Eliminazione dei dati derivati
  • installazione pod di nuovo

L’unica soluzione che ho avuto a questo problema è stata quella di esporre l’objective Pods- (yourapp) nel selettore schema (accanto ai pulsanti run / stop) e creare manualmente quel target per i pod prima di build e eseguire nuovamente il target dell’app principale. Spero che questo possa salvare qualcuno 10 minuti!

Questo dovrebbe fare il trucco:

  1. pod deintegrate
  2. rm -rf yourproject.xcworkspace
  3. installazione pod

Quando ho modificato e rimosso una directory di cui non avevo bisogno in ProjectBuild Settings (accanto a Info ), stavo cancellando due delle voci nei Percorsi di ricerca di framework nella mia app target in Build Settings . Assicurati che tutte e quattro le righe siano popolate automaticamente dall’installazione Pod, come mostrato nell’immagine seguente: Percorsi di ricerca quadro in Impostazioni di costruzione per l'app di destinazione Per copiare le voci da Debug e Release nelle righe sottostanti, seleziona una riga alla volta e premi delete che dovrebbe copiare dalla riga in alto. Una volta che l’ho fatto, l’area di lavoro andrebbe bene.

Se utilizzi più target che accedono alla stessa class (ad esempio, Message Extension App) e se tale class viene aggiunta a entrambi i target, devi aggiungere il pod per entrambi i target nel PodFile.

La tua app crea utilizzando l’objective principale?

Se è così, sono stato in grado di farlo funzionare da:

  1. Aggiunta di una voce per ogni objective nel Podfile
  2. Esegui pod install

Ecco il mio Podfile finale.

 platform :ios, '11.3' target 'myapp' do use_frameworks! # Pods for myapp pod 'KeychainSwift' pod 'ReachabilitySwift' pod 'Firebase/Core' pod 'Fabric' pod 'Crashlytics' target 'myappTests' do inherit! :search_paths # Pods for testing end target 'myappUITests' do inherit! :search_paths # Pods for testing end target 'myapp-local' do inherit! :search_paths # Pods for testing end target 'myapp-master' do inherit! :search_paths # Pods for testing end end 

Il problema potrebbe essere che non esiste davvero un tale modulo. Soprattutto se il nome del pod contiene trattini e altri personaggi controversi.

Nel mio caso stavo cercando di usare la libreria Dip-UI . Il progetto di esempio utilizzava Carthage che volevo sostituire con CocoaPods. Il nome del modulo con Carthage era DipUI , mentre con CocoaPods era Dip_UI , il che significava che Dip_UI “Nessun modulo” fino a quando non ho cambiato il nome.

Il tuo xcode non è aggiornato alla versione prevista dalla libreria / framework