2013-08の書きかけの記事の再編集投稿です。
Xcode 4.6.3, iOS 6 当時の情報になります。
App ID(Application identifier)
Cocoa Core Competencies: App ID
A1B2C3D4E5.com.example.applicationname
Team ID: A1B2C3D4E5
Bundle ID: com.example.applicationname
Application identifier prefix
Team ID(A1B2C3D4E5)の部分をコードで取得したい。
stackoverflow: Finding iPhone Application Identifier Prefix programmatically
いつも助かるstackoverflow、感謝。
+(NSString *)applicationIdentifierPrefix { NSDictionary *query =[NSDictionary dictionaryWithObjectsAndKeys:(__bridge id)(kSecClassGenericPassword), kSecClass,@"bundleSeedID", kSecAttrAccount,@"", kSecAttrService,(id)kCFBooleanTrue, kSecReturnAttributes,nil]; CFDictionaryRef result = nil; OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); if(status == errSecItemNotFound) { status = SecItemAdd((__bridge CFDictionaryRef)query,(CFTypeRef*)&result); } if(status != errSecSuccess) { return nil; } NSString *accessGroup =[(__bridge NSDictionary*)result objectForKey:(__bridge id)(kSecAttrAccessGroup)]; NSArray *components =[accessGroup componentsSeparatedByString:@"."]; NSString *bundleSeedID =[[components objectEnumerator] nextObject]; CFRelease(result); return bundleSeedID; } |
Simulatorでは戻り値は常に”test”になります。
実機テストでTeam IDが取得できます。