问题
I receive the following error when I try and validate my binary file for submission to the App Store:
"Non-public API usage:
Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6."
I've determined that the culprit lies in a 3rd party library I am using called, "libScannerKit.a". I am looking into whether the library has since been updated, but is there any way I can update the file myself, or decompile the code and update so that I comply with iTunesConnect rules for iOS binary files? Below is an example of one spot "uniqueIdentifier" is called out in libScannerKit.a (opened in a text editor).
Any help would be appreciated!
��˘��-[SKDeviceManager canReachInternetUsingWiFi]�ˇ��-[SKDeviceManager init]�ô��-[SKDeviceManager dealloc]���-[SKDeviceManager isGreaterThanVersion41]�â��-[SKDeviceManager deviceId]�É��-[SKDeviceManager canReachInternet]�Ã��-[SKDeviceManager hasAutofocusCameraCapability]�]��-[SKDeviceManager canReachInternetUsingCellularNetwork]�á��-[SKDeviceManager apiKey]�3��-[SKDeviceManager hasCamera]�‹��-[SKDeviceManager platform]�˘��-[SKDeviceManager userAgent]�∫��-[SKDeviceManager checkReachabilityIfNeccessary]�ß��+[SKDeviceManager sharedManager]�~��gDeviceCapabilitiesManager�����L����������T��objc_object�e��NSObject���SKDeviceManager�ÿ��NSString����������������@è@����ÄOAffffff@,��������������à������������������<����������������������������alloc�init�checkReachabilityIfNeccessary�mainBundle�objectForInfoDictionaryKey:�infoDictionary�objectForKey:�sharedManager�apiKey�pathForResource:ofType:�initWithContentsOfFile:�platform�currentDevice�systemVersion�stringWithFormat:�stringByAppendingFormat:�release�uniqueIdentifier�stringWithCString:encoding:�timeIntervalSinceReferenceDate�sharedReachability�internetConnectionStatus�floatValue�length�substringToIndex:�dealloc�canReachInternet�canReachInternetUsingWiFi�canReachInternetUsingCellularNetwork�hasAutofocusCameraCapability�hasCamera�userAgent�deviceId�isGreaterThanVersion41�_lastReachabilityCheckTimestamp�_networkStatus���\��b��g��Ö��ê��¨��ª��…��◊��fi��ˆ������%��3��E��^��f��w��ì��≤��≈��fi��È��������������CFBundleIdentifier�CFBundleDisplayName�CFBundleVersion�ScannerKitInfo�plist�%@-v%@ %@ %@ iPhoneOSv%@� ScannerKit-v%@�hw.machine�canReachInternet�Tc,R,N�canReachInternetUsingWiFi�canReachInternetUsingCellularNetwork�hasAutofocusCameraCapability�hasCamera�apiKey�T@"NSString",R,N�userAgent�deviceId�platform�����������»��P���������»��c���������»��w���������»��á���������»��ñ���������»��ú���������»��µ�����SKDeviceManager�@8@0:4�c8@0:4�v8@0:4�d�i��������������…���������������������¯��(������������������
回答1:
Unfortunately, until the author of the library issues an update that does not use the UDID, I think your best bet is to try to find another library that provides similar functionality and does not use the UDID (if you can). Maybe one of the libraries mentioned at: iOS library for Barcode reader?
来源:https://stackoverflow.com/questions/17635612/xcode-3rd-party-library-uses-uniqueidentifier-causing-apple-to-reject-binary