当前位置 - 무료 법률 상담 플랫폼 - 상표 양도 - Apple iOS 멀티오픈에서 고유 식별자를 식별하는 방법

Apple iOS 멀티오픈에서 고유 식별자를 식별하는 방법

IOS 시스템에서는 장치의 고유 식별자를 얻는 방법이 다양합니다:

1. UDID(고유 장치 식별자)

전체 이름 UDID는 고유 장치 식별자(Unique Device Identifier)로 이름에서 알 수 있듯이 Apple IOS 장치의 고유 식별 코드로 40자리의 문자와 숫자로 구성됩니다.

2. UUID(Universally Unique Identifier)

UUID는 Universally Unique Identifier의 약어로 Universal Unique Identifier를 의미합니다.

3. 주소

4. OPEN UDID

5. 광고 식별자(IDFA-identifierForIdentifier)

6. Vindor 식별자(IDFV-identifierForVendor) >Vendor는 CFBundleIdentifier(역방향 DNS 형식)의 처음 두 부분입니다. 동일한 장치에서 실행되는 동일한 운영자의 애플리케이션은 이 속성에 대해 동일한 값을 가지며, 동일한 장치에서 실행되는 다른 운영자의 애플리케이션은 서로 다른 값을 갖습니다.

테스트 후 기기에 텐센트 앱이 있는 한 재설치 후에도 식별자ForVendor 값은 변경되지 않습니다. 텐센트 앱을 모두 삭제한 경우 재설치 후 식별자ForVendor 값이 변경됩니다.

안타깝게도 위의 기기 고유번호를 나타내는 식별자는 모두 IOS7에서 사용이 금지되거나, 프로그램 재설치 후 두 번 얻은 식별자가 다릅니다.

IOS 시스템에 저장된 데이터는 sandBox에 있기 때문에, App이 삭제되면 sandBox는 더 이상 존재하지 않게 됩니다. 다행히도 예외가 있는데 바로 키체인입니다.

일반적으로 IOS 시스템은 NSUserDefaults를 사용하여 데이터 정보를 저장하지만 비밀번호, 인증서 등과 같은 일부 개인 정보의 경우 보다 안전한 키체인을 사용해야 합니다.

앱을 삭제해도 키체인에 저장된 정보는 사라지지 않습니다. 따라서 이 키체인 기능을 사용하여 장치의 고유 ID를 저장할 수 있습니다.

그럼 애플리케이션에서 keyChain을 사용하려면 Security.framework를 가져와야 합니다. 키체인 작업 인터페이스는 헤더 파일 SecItem.h에 선언되어 있습니다.

SecItem.h의 메서드를 직접 사용하여 키체인을 작동하려면 작성해야 하는 코드가 더 복잡합니다. 캡슐화된 도구 클래스 KeychainItemWrapper를 사용하여 키체인을 작동할 수 있습니다.

KeychainItemWrapper는 Apple의 공식 예제 "GenericKeychain"에서 일반적인 키체인 작업에 액세스하기 위한 캡슐화 클래스입니다. 공식 웹사이트에서 GenericKeychain 프로젝트를 다운로드한 후

"KeychainItemWrapper. h"를 선택하고 "KeychainItemWrapper.m"을 프로젝트에 복사하고 Security.framework를 가져옵니다.

KeychainItemWrapper 사용법:

/** 사용자 계정을 저장하는 KeychainItemWrapper 초기화 */

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier: @"계정 번호"

accessGroup: @"YOUR_APP_ID_HERE.com.yourcompany.AppIdentifier"];

//데이터 저장

[wrapper setObject: @"lt;계정 번호gt;" id)kSecAttrAccount];

[wrapper setObject:@"lt;account 비밀번호 gt;" forKey: (id)kSecValueData];

//키체인에서 계정 비밀번호 검색< / p>

NSString *password = [wrapper objectForKey: (id)kSecValueData];

//설정 지우기

[wrapper ResetKeychainItem];

여기서 "- (void)setObject: (id)inObject forKey: (id)key;" 메서드의 "forKey" 매개 변수 값은 Security.framework의 헤더 파일 "SecItem.h"에 정의된 키여야 합니다. 다른 문자열을 사용하면 핵심 프로그램이 잘못됩니다!