2014-07-09 3 views
4

시뮬레이터에서 실행할 때 Xcode 6/iOS SDK 베타 3에 내장 된 응용 프로그램에서 SecItemCopyMatching 함수가 -34018 오류 코드 (errSecMissingEntitlement)를 반환합니다.iOS 8 베타 OSStatus -34018 (errSecMissingEntitlement)

OSStatus result = SecItemCopyMatching ((__bridge CFDictionaryRef)retrieveQueryDict, (CFTypeRef *)&dataRef); 

나는 베타 1에서 그 문제를 발견했다. 베타 2에서는 그 문제가 수정되었다. 게다가 베타 1의 알려진 이슈 인 베타 2에서 애플이 릴리스 노트에 언급했습니다. 지금까지는 그렇게 좋았습니다. 그런데 베타 3에서는이 정확한 위치에서 다시이 오류가 발생합니다. 그러나 이번에는 아무런 설명도하지 않습니다.

누구든지이 문제가 발생했거나 해결 방법이 있습니까? 이것은 시뮬레이터에서만 발생해야합니다 (최소한 베타 1의 경우 였고, 지금은 검사 할 장치가 없습니다). 그러나 단위 테스트의 경우 차단기입니다.

답변

2

나는 당신과 똑같은 시나리오를 가졌습니다. SSKeychain을 사용하고 있지만 모두에게 동일한 문제인 것으로 보입니다. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

: 릴리스 노트를 표시하지 않더라도, 문제는 8 베타 1과 베타 3, 건너 뛰는 베타 2

에서 내가 사용하는 해결 방법은 기반으로 몇 가지 답변에 모두 아이폰 OS에 보인다 다음은 저에게 효과적이었습니다. Xcode 6의 개발자 계정에 로그인 한 다음 관련 프로젝트 타겟의 기능 탭에서 "키 체인 공유"를 활성화했습니다.

+0

동일 있다고 확인했다 Xcode 6에서 개발자 계정에 어떻게 로그인 했습니까? 분명히 그것은 "서버의 응답을 분석 할 수 없습니다 plist"오류를 제공하고 있습니다. http://stackoverflow.com/questions/24670014/xcode6-could-not-parse-servers-response-as-a-plist https://devforums.apple.com/message/1001283#1001283 – anavarroma

+0

@ dwsolberg, 나는 그 주제를 보았다. 그럼 문제는 내가 정적 라이브러리를 개발하고있어, 그래서 내 프로젝트에서 "Keychain Sharing"을 설정할 수있는 Capabilities 탭이 없다. (독립 실행 형 애플리케이션이 아니기 때문에). – Marcin

+0

@Marcin "Keychain Sharing"을 켜는 것이 실제로 내 앱의 인 타이틀먼트 파일에'keychain-access-groups' 속성을 추가하는 것이 었습니다. 인 타이틀먼트 파일이 없으면 빌드를 생성하고 빌드 설정의 '코드 서명 인 타이틀먼트'설정에 할당해야합니다. – devios1

0

베타 4에서 수정. 릴리스 노트에 정보가 없습니다.

1

키 체인 공유를 사용할 때 여전히 문제가 있었지만 이제는이 문제가 해결되었습니다 (필자 생각). 장치에 유효한 서명 ID가 없다는 것을 나타내는 와일드 카드 프로비저닝 프로파일이 있습니다. 또한 내 앱의 프로비저닝 프로파일이 유효했습니다. 와일드 카드 프로필을 삭제할 때 -34018 오류가 발생하지 않았습니다.

나는 또한 대상의 빌드 설정의 코드 서명 절에 나와있는 코드 서명 ID 및 프로비저닝 프로파일이 응용 프로그램에 대한 하나의 (안 일반 "아이폰 개발자"한)

+0

나에게이 대안 (-34018)은 더 이상 해결 방법이 없어도 더 이상 베타 5에 나타나지 않습니다. 고정 된 것처럼 보입니다. – Marcin