2012-05-16 4 views
6

Ich habe gerade versuchte den KeychainItemWrapper von Apple zu nutzen, aber ich bin ein Verknüpfungsfehler jedes Mal bekommen:KeychainItemWrapper Verknüpfung Fehler

Undefined symbols for architecture i386: "_OBJC_CLASS_$_KeychainItemWrapper", referenced from: objc-class-ref in DataModel.o

ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ich habe den Sicherheitsrahmen einbezogen und geprüft, warum Apple in der Xcode enthielt Projekt, aber ich kann nicht finden, was sonst noch falsch läuft.

_keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"com.website.project" accessGroup:nil]; 
[_keychain setObject:_username forKey:(id)kSecAttrAccount]; 
[_keychain setObject:_password forKey:(id)kSecValueData]; 

Ich habe auch "com.website.project" zu meinen Keychain Access Groups hinzugefügt.

+2

+1 Sie haben mir klar gemacht, dass ich Sicherheitsrahmen vergessen habe ;-) –

Antwort

11

Stellen Sie sicher, dass sich der KeychainItemWrapper in der Liste "Compile Sources" befindet.

+0

Aha, das funktioniert, danke, sollte es nicht automatisch hinzugefügt werden, wenn ich es in irgendeiner Klasse importiere? –

+1

Sie müssen das Häkchen neben dem Namen Ihres Ziels ankreuzen, wenn Sie Dateien importieren (ich weiß, nervig). – CodaFi

+2

Fügen Sie auf iOS 7 stattdessen das Security.framework hinzu. – SwiftArchitect