Ich habe ein benutzerdefiniertes Framework, das nach dem Ratgeber in Apples Framework Programming Guide >>Installing your framework in/Library/Frameworks installiert wird. Ich tue dies, indem ein Skript ausführen Hinzufügen bauen Phase mit dem folgenden Skript:Die beste Möglichkeit, ein benutzerdefiniertes Kakaorahmenwerk zu installieren
cp -R build/Debug/MyFramework.framework /Library/Frameworks
In meinen Projekten habe ich dann verknüpfen gegen/Library/Frameworks/MyFramework und importieren Sie es in meinen Klassen wie folgt:
#import <MyFramework/MyFramework.h>
das funktioniert sehr gut, außer dass ich die folgende Meldung in meinem Debugger Konsole immer sehen:
Laden Programm in Debugger ... sharedlibrary gelten lasteten alle Regeln Warnung: Symbole für "/Users/elisevanlooij/Library/Frameworks/MyFramework.framework/Versions/A/MyFramework" (Datei nicht gefunden) konnten nicht gelesen werden. Warnung: Kann Symbole aus "MyFramework" nicht lesen (noch nicht im Speicher zugeordnet). Programm geladen.
Offenbar der Compiler sucht zuerst in/Users/elisevanlooij/Library/Frameworks können MyFramework nicht finden, sieht dann in/Library/Frameworks, MyFramework findet und weiter auf fröhliche Art und Weise. Bisher war dies eher ein Ärgernis als ein echtes Problem, aber wenn man Komponententests durchführt, stoppt gdb bei der (Datei nicht gefunden) und weigert sich weiterzumachen. Ich habe das Problem durch Hinzufügen einer zusätzlichen Zeile in den Run-Script Phase
cp -R build/Debug/MyFramework.framework ~/Library/Frameworks
gelöst, aber es fühlt sich an wie sello-Taping etwas, das nicht in erster Linie gebrochen werden sollte. Wie kann ich das beheben?
Sie sollten alle Antworten von cdespinosa in Bezug auf das Xcode Build System als autorisierend betrachten. – NSResponder
Nun, ich habe seine Antwort gewählt, also hoffe ich, dass meine Kniescheiben sicher sind. Aber ich betrachte die Lösung, die ich gefunden habe, eleganter, da es weniger Änderungen an den Xcode-Standardeinstellungen erfordert und die Befehlszeile überflüssig macht. –