"Apple Mach-O linker command failed with exit code 1"
Ich versuche zu implementieren, die SVProgressHUD Aktivitätsanzeige. Kopiert habe ich die Klassen für mein Projekt und Hinzugefügt, den folgenden code zu meiner appDelegate aber kann nicht herausfinden, warum es abstürzt.
Bekomme ich Sie folgenden Fehler und bin mir nicht sicher, wo Sie zu suchen um es zu beheben:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SVProgressHUD", referenced from:
objc-class-ref in QuotesAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Hier ist der code:
#import "SVProgressHUD.h"
@implementation QuotesAppDelegate
- (void)startLoading
{
//call this in your app delegate instead of setting window.rootViewController to your main view controller
//you can show a UIActivityIndiocatorView here or something if you like
[SVProgressHUD show];
[self performSelectorInBackground:@selector(loadInBackground) withObject:nil];
}
- (void)loadInBackground
{
//do your loading here
//this is in the background, so don't try to access any UI elements
[self populateFromDatabase];
[SVProgressHUD dismiss];
[self performSelectorOnMainThread:@selector(finishedLoading) withObject:nil waitUntilDone:NO];
}
- (void)finishedLoading
{
//back on the main thread now, it's safe to show your view controller
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
}
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[self copyDatabaseIfNeeded];
[self startLoading];
}
- Haben Sie daran gedacht, fügen Sie das QuartzCore-framework zu Ihrem Projekt?
- Ja das QuartzCore-framework Hinzugefügt wurde, sowie die CoreGraphics.Rahmen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bearbeiten
Die Antwort, die ich zur Verfügung gestellt (siehe Meine ursprüngliche Antwort) nur das problem behebt, aber es ist nicht die richtige Lösung. Für die richtigen Lösungen finden Sie unter Jim Antwort
oder Parth Bhatt link.
Der Vollständigkeit halber
Experimentieren Sie ein wenig, fand ich, dass, wenn Sie drag-and-drop die Datei oder das Verzeichnis in Ihrem Projekt, Xcode (4.3.1) fordert Sie auf, wählen Sie die richtige option, um die Dateien oder dir zu deinem Projekt. Stellen Sie sicher, dass das "Add to targets" - option aktiviert ist.
Wenn Sie verpasst haben zu überprüfen, dass die option, Sie müssen die folgenden Schritte:
Meine ursprüngliche Antwort
Wenn Sie gezogen haben, Sie diese Klassen in Ihr Projekt, könnte es das problem sein.
Zu vermeiden, dass das kompilieren Fehler, verwenden Sie "Hinzufügen von Dateien zu YourProjectName" statt.
Angenommen, Sie haben ein Verzeichnis, das enthält .h und .m-files genannt "SVProgressHUD" in Ihrem desktop.
Nun müssen Sie:
Hoffe, es hilft.
Es klingt wie
SVProgressHUD.m
ist nicht aktiviert für Ihr Ziel. Klicken Sie im Projekt-navigator im linken Bereich, dann schauen Sie in die Datei-Inspektor in den rechten Bereich, um sicherzustellen, es ist ein Häkchen neben dem target, das Sie bauen.Kasse diesem link. Finden Sie akzeptierten Antworten in diesem link:
Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", auf die dort verwiesen wird: Fehler
Wenn es immer noch nicht helfen, dann finden Sie zu Allen Pike ' s Antwort in dem oben genannten link. versuchen Sie es entfernen und hinzufügen zurück
QuartzCore
Rahmen in Ihrem app.Hoffe, dies hilft Ihnen.
Ich diese Aufgabe gelöst durch eine Veränderung der Player-Einstellungen im Unity-Editor.
Menü Pfad:
PlayerSettings > OtherSettings > Scripting-Backend ändern zu IL2CPP von Mono2x.
Zweite änderung war die Umstellung der Architektur auf universal.