0

プロパティが iOS SDK 6.0 でプライベートになるため、Apple は [UIDevice uniqueIdentifier] を使用するアプリ ストアにアプリケーションを追加することを許可しません。

代替案は何ですか?

4

2 に答える 2

0
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

- (NSString*)deviceId {
    NSString *udidString;

    if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        udidString = [defaults objectForKey:@"udidKey"];
        if (!udidString) {
            CFUUIDRef identifierObject = CFUUIDCreate(kCFAllocatorDefault);
            // Convert the CFUUID to a string
            udidString = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, identifierObject);
            [defaults setObject:udidString forKey:@"udidKey"];
            [defaults synchronize];
            CFRelease((CFTypeRef) identifierObject);
        }

    } else {
        udidString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    }
    return udidString;
}

行に警告が表示される場合: udidString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];Xcode SDK が6.0 未満であることを意味します

( Xcode 4.3には iOS SDK 5.1 が含まれ、Xcode 4.5には iOS SDK 6.0 が含まれます)

Xcode iOS SDK を更新するには:

  1. App Store で入手可能な最新の Xcode をダウンロードするだけです (Apple は SDK のみをダウンロードするオプションを提供していません)。
  2. 現在の Xcode バージョンを維持したい場合:

    • 最新の Xcode バージョンをダウンロードします。
    • から iOS SDK ライブラリをコピーします。

newestXcode.app /Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

oldXcode.app /Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

古い Xcode を再度開くと、それだけです。

于 2013-05-13T07:50:26.700 に答える