2015-12-23 1 views
15

Ich möchte einige Swift-Pods in meiner Objective-C-App verwenden, daher muss ich Frameworks anstelle von statischen Bibliotheken verwenden. Aber die Aktivierung von use_frameworks! in meinem Podfile verursacht Töne von #import Fehler.Cocoapods use_frameworks! Import Problem

Mein 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' 

Das erste Problem war mit SSKeychain pod:

SSKeychain Error

In Code, den ich mit SSKeychain mit "Anführungszeichen" #import "SSKeychain/SSKeychain.h", aber wenn ich richtig verstehe, Ich muss jetzt <angle> von verwenden? Aber in diesem Fall erhalte ich denselben Fehler, aber in meinem Code.

Mein Körperbau Phasen:

Build Phases

Auf jeden Fall habe ich Gabel von SSKeychain mit "Anführungszeichen" Import (https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749) und wechselte zu jener Version gefunden.

Aber jetzt habe ich gleiches Problem mit vielen anderen Schoten (fast alle):

FBSDKCoreKit error

Import in App: #import "FBSDKCoreKit/FBSDKCoreKit.h"

Muß ich berappen müssen, um jedes Repo und Veränderung wirklich Anweisungen importieren? Oder ich nehme Pods falsch auf?

PS: Ich bereite abgeleitete Daten und Projekt vor jedem Build-Versuch.

Cocoapods Version: 0.39.0

+0

Welche Version von CocoaPods verwenden Sie? Letzter? 0.39.0? –

+0

Exit-Projekt, gehen Sie aus und führen Sie "Pod-Installation" – Khuong

+0

@DiegoFreniche Ich habe sowohl 0.39.0 und Version aus dem letzten Master-Zweig gebaut versucht. – Ponf

Antwort

9

Wie Sie Modules in Ihrem Podfile verwendet haben, warum gehst du nicht einfach:

@import SSKeychain; 

statt:

#import <SSKeychain/SSKeychain.h> 

Um zu testen, das:

  • erstellen Sie ein si mple iOS-Projekt nur mit einem Viewcontroller
  • eine Podfile erstellen mit Ihrem Code über
  • run pod installieren
  • öffnen Sie den Arbeitsbereich
  • build & Lauf: es kompiliert OK
+0

Wenn ich versuche, '@ import' anstelle von' # import' zu verwenden, erhalte ich den Fehler, dass das Framework nicht gefunden wurde: https://s.mail.ru/GNxY2NAxse12/img-2015-12-23-12-42-25 .png. Ich denke, das ist ein Hauptproblem – Ponf

+0

Ich habe in einem leeren Projekt getestet und es funktioniert, bitte erstellen Sie ein Testprojekt um sicherzustellen, dass dies funktioniert, dann vergleichen Sie Ihr Ziel mit dem Ziel des neuen Projekts –

+0

Ich habe es endlich herausgefunden! Das Problem wurde behoben, indem "Pods.framework" von "Link Binary with Libraries **" entfernt und manuell neu hinzugefügt wurde. Danke für Ihre Hilfe! Sie können Ihre Antwort bearbeiten und ich werde es akzeptieren :) – Ponf

6

ich endlich herausgefunden haben raus! Das Problem wurde behoben, indem Pods.framework von Link Binary mit Bibliotheken entfernt und manuell neu hinzugefügt wurde.

Vielen Dank für Ihre Hilfe!

+0

Das ist komisch, haben Sie tatsächlich den Arbeitsbereich geöffnet anstatt das Projekt? – AncAinu

+1

@AncAinu Ja, auch ich habe 2 Ziele in Projekt und Frameworks wurden nur gegen eine von ihnen verknüpft, also musste ich ** Embed Pods Frameworks ** bauen Schritt manuell hinzufügen :( – Ponf

+2

Das nächste Mal wäre es sinnvoll, dies auszuführen (https://github.com/CocoaPods/cocoapods-de-integrate) um alle Spuren von CocoaPods zu entfernen, dann 'pod install' wieder –

0

Überprüfen Sie auch die Fehlermeldungen unter pod install.

In meinem Fall verwendete ich einen benutzerdefinierten Import in FRAMEWORK_SEARCH_PATHS, und nur weil ich das tat, wann immer ich pod install die zusätzlichen Suchpfade, die CocoaPods hinzugefügt wurden, wurden nicht hinzugefügt. Also musste ich meinen benutzerdefinierten Pfad entfernen und dann erschienen sie. Dann habe ich meinen benutzerdefinierten Pfad hinzugefügt.

Es könnte eine gute Idee sein, pod deintegrate zu tun, de XCworkspace-Datei zu löschen und pod install noch einmal zu tun. Fügen Sie dann Ihre benutzerdefinierten Buildeinstellungen hinzu.

Dies ist der Fehler war ich immer:

[!] 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

In meinem Fall, was ein Problem war ich schon einige ObjC Pods für meine Objective C-Projekt dann braucht man ich in schnellen pod so schalte ich use_framwork heruntergeladen meine Pod-Datei und installieren Sie diesen schnellen Pod, nach der Installation, dass Swift-Pod-Import-Problem für ObjeC-Bibliotheken in vielen Klassen ankommt, also

Was habe ich getan, um dieses Problem zu beheben?

  1. Cut alle Objective C Schoten aus pod Datei
  2. Öffnen Sie das Terminal und Startbefehl: cd path/myProject
  3. Terminal-Startbefehl: pod install
  4. Vorbei (alle Objective C Hülsen) wieder in pod-Datei und speichern es
  5. Terminal-Startbefehl: pod install