webentwicklung-frage-antwort-db.com.de

Cocoapods use_frameworks! Importausgabe

Ich möchte einige Swift-Pods in meiner Objective-C-App verwenden. Daher muss ich Frameworks anstelle von statischen Bibliotheken verwenden. Das Aktivieren von use_frameworks! in meiner Pod-Datei verursacht jedoch Töne von #import-Fehlern.

Meine Poddatei:

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

Im Code füge ich SSKeychain ein, das "Anführungszeichen" #import "SSKeychain/SSKeychain.h" verwendet, aber wenn ich das richtig verstehe, muss ich <angle> von jetzt an #import <SSKeychain/SSKeychain.h> verwenden. In diesem Fall erhalte ich jedoch dieselbe Fehlermeldung, jedoch in meinem Code.

Meine Bauphasen:

 Build Phases

Jedenfalls habe ich Gabel von SSKeychain mit "Quotes" importiert ( https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749 ) und auf diese Version umgestellt. 

Aber jetzt habe ich dasselbe Problem mit vielen anderen Hülsen (fast bei allen):

 FBSDKCoreKit error

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

Muss ich wirklich jedes Repo verzweigen und Import-Anweisungen ändern? Oder füge ich Pods falsch hinzu?

PS: Ich bereinige abgeleitete Daten und Projekte vor jedem Build-Versuch.

Kokosapod-Version: 0.39.0

19
Ponf

Wenn Sie Modules in Ihrer Poddatei verwendet haben, können Sie nicht einfach Folgendes tun:

@import SSKeychain;

anstatt:

#import <SSKeychain/SSKeychain.h>

Um das zu testen:

  • erstellen Sie ein einfaches iOS-Projekt mit nur einem ViewController
  • erstellen Sie eine Poddatei mit Ihrem Code oben
  • pod-Installation ausführen
  • Öffnen Sie den Arbeitsbereich
  • build & Run: es wird OK kompiliert
12
Diego Freniche

Ich habe es endlich herausgefunden! Das Problem wurde behoben, indem Pods.framework aus Link Binary With Libraries entfernt wurde und manuell erneut hinzugefügt wurde. 

Danke für die Hilfe!

7
Ponf

In meinem Fall habe ich bereits ein paar ObjC-Pods für mein Objective-C-Projekt heruntergeladen. Dann benötige ich einen Swift-Pod, damit ich use_framwork in meiner Pod-Datei aktiviere und den Swift-Pod installiere in vielen Klassen, So

Was habe ich getan, um dieses Problem zu beheben?

  1. Schneiden Sie alle Objective C-Pods aus der Pod-Datei 
  2. Terminal öffnen und Befehl ausführen: cd path/myProject
  3. Terminal-Ausführungsbefehl: pod install
  4. Führen Sie sie (alle Objective C-Pods) erneut in der Pod-Datei durch und speichern Sie sie 
  5. Terminal-Ausführungsbefehl: pod install
0
jayesh lathiya

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

In meinem Fall habe ich einen benutzerdefinierten Import in FRAMEWORK_SEARCH_PATHS verwendet, und nur weil ich das getan habe, wurden die zusätzlichen Suchpfade, die CocoaPods hinzufügt, nicht hinzugefügt, wenn ich pod install tat. Also musste ich meinen benutzerdefinierten Pfad entfernen und dann tauchten sie auf. Dann habe ich meinen benutzerdefinierten Pfad hinzugefügt.

Vielleicht eine gute Idee, pod deintegrate zu tun, die xcworkspace-Datei zu löschen und pod install noch einmal zu tun. Fügen Sie dann Ihre benutzerdefinierten Einstellungen hinzu.

Dies ist der Fehler, den ich bekam:

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