2014-11-19 4 views
0

Я потерял 2 часа в поисках документов разработчика, google и stackoverflow. Где я могу найти app_id моего проекта в Xcode 6?Где значение app_id хранится в xcode 6?

Я пытаюсь адаптировать яблоко Keychain образца кода https://developer.apple.com/library/ios/samplecode/GenericKeychain/Listings/ReadMe_txt.html#//apple_ref/doc/uid/DTS40007797-ReadMe_txt-DontLinkElementID_11

, но я никогда не был прежде, чем использовать мой APP_ID. Спасибо за любые предложения.

+0

APP ID, вы можете найти в iTunes Connect! – JNYJ

+0

@JNYJ Я смотрю здесь https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html, но это не говорит мне, как получить доступ к значению идентификатора приложения в мой проект xcode. Все, что он говорит, это Apple ID: «Уникальный номер, который Apple присваивает приложению». Где я могу присвоить это значение моему проекту (проект не опубликован в магазине приложений)? –

+0

Когда приложение создано в iTunes Connect, Apple назначает app_id вашему APP, тогда вы можете проверить его в «More-> Об этом приложении». но я не знаю этого app_id, что вы можете получить в XCODE !, у меня нет идеи! – JNYJ

ответ

0

Примечания: Когда вы приложение создано в ITunes Connect, яблоко Назначает APP_ID к вашему приложению, то вы можете проверить его в "More-> Об этом App"

Метод: getSecureValueForKey

Метод: storeSecureValue

#import "JNYJKeyChain.h" 

@implementation JNYJKeyChain 


+ (NSString *)getSecureValueForKey:(NSString *)key 
{ 
/* 
    Return a value from the keychain 
*/ 

// Retrieve a value from the keychain 
NSDictionary *result = nil; 
NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, kSecAttrAccount, kSecReturnAttributes, nil] autorelease]; 
NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, key, kCFBooleanTrue, nil] autorelease]; 
NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; 

// Check if the value was found 
OSStatus status = SecItemCopyMatching((CFDictionaryRef) query, (CFTypeRef *) &result); 
[query release]; 
if (status != noErr) { 
    // Value not found 
    return nil; 
} else { 
    // Value was found so return it 
    NSString *value = [NSString stringWithString:(NSString *) [result objectForKey: (NSString *) kSecAttrGeneric]]; 
    [result release]; 
    return value; 
} 
} 

+ (BOOL)storeSecureValue:(NSString *)value forKey:(NSString *)key 
{ 
    /* 
Store a value in the keychain 
*/ 

// Get the existing value for the key 
NSString *existingValue = [self getSecureValueForKey:key]; 

// Check if a value already exists for this key 
OSStatus status; 
if (existingValue) { 
    // Value already exists, so update it 
    NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, kSecAttrAccount, nil] autorelease]; 
    NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, key, nil] autorelease]; 
    NSDictionary *query = [[[NSDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; 
    status = SecItemUpdate((CFDictionaryRef) query, (CFDictionaryRef) [NSDictionary dictionaryWithObject:value forKey: (NSString *) kSecAttrGeneric]); 
} else { 
    // Value does not exist, so add it 
    NSArray *keys = [[[NSArray alloc] initWithObjects: (NSString *) kSecClass, kSecAttrAccount, kSecAttrGeneric, nil] autorelease]; 
    NSArray *objects = [[[NSArray alloc] initWithObjects: (NSString *) kSecClassGenericPassword, key, value, nil] autorelease]; 
    NSDictionary *query = [[[NSDictionary alloc] initWithObjects: objects forKeys: keys] autorelease]; 
    status = SecItemAdd((CFDictionaryRef) query, NULL); 
} 

// Check if the value was stored 
if (status != noErr) { 
    // Value was not stored 
    return false; 
} else { 
    // Value was stored 
    return true; 
} 
} 

@end 
+0

Благодарим вас за подробное объяснение! –

Смежные вопросы