source

Xcode 5: 코드 서명 자격 오류

nicesource 2023. 4. 19. 23:13
반응형

Xcode 5: 코드 서명 자격 오류

IOS 7을 지원하는 새로운 애플리케이션을 구축했습니다.새로운 XCode 5 GM을 구입하여 새로운 프로비저닝 프로파일과 배포 증명서를 사용하여 앱에 서명하려고 했지만 배포에 문제가 있습니다.다음과 같은 에러가 계속 발생합니다.

"잘못된 코드 서명 사용 권한입니다.앱 번들 서명의 사용 권한이 프로비저닝 프로파일에 포함된 사용 권한과 일치하지 않습니다.프로비저닝프로파일에 따르면 번들에는 허용되지 않는 키 값인 "keychain-access-groups"의 'XXXX.com.sample.company'가 포함되어 있습니다.

, .application-identifier.

에러 스크린샷:

여기에 이미지 설명 입력

해결책은 Xcode 5의 새로운 옵션으로 프로비저닝프로파일을 말합니다.프로젝트 타깃의 프로비저닝 프로파일을 적절한 프로파일로 설정하기만 하면 됩니다.

여기에 이미지 설명 입력

저와 마찬가지로 모든 것을 시도하고 프로젝트를 10번 이상 아카이브한 후 키보드에 머리를 부딪혀도 오류가 발생합니다.XCode를 재시작하기만 하면 됩니다.언젠가 애플이...당신이 미워요.

나는 위의 많은 단계를 거쳤지만, 마침내 나에게 효과가 있었던 것은 Xcode의 프로필을 새로 고쳤습니다.내 앱의 배포 프로필이 이미 목록에 표시되어 있어서 왜 필요한지 모르겠습니다.스텝은 다음과 같습니다.

  1. Xcode 기본 설정
  2. 계정 탭
  3. Apple ID 선택
  4. Apple ID 세부 정보 패널에서 세부 정보 보기 버튼을 누르십시오.
  5. 왼쪽 아래 구석에 있는 [Refresh](새로 고침) 버튼을 누릅니다.

제 경우, developer.apple.com의 애플리케이션 서비스와 동일한 기능을 Xcode로 활성화했습니다.그건 나한테도 통한다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

제 경우 (죄송합니다) -> General -> Identity에서 "Team"을 "None"으로 전환했습니다.

또 다른 경우에는 이 ID를 "없음"에서 ID와 프로파일을 관리하는 개발자 계정으로 전환해야 했습니다.

Xcode는 코드 서명과 크게 혼동되는 경우가 있는 것 같습니다.아니면, 우리는 단지 그것이 무엇을 하고 있는지 이해할 만큼 똑똑하지 않다. 물론.포기하지 마, 우리 모두 가끔 코드 서명 고문을 겪잖아!

제 경우 Release용 Provision Profile을 올바르게 설정하고 Xcode를 재시작해야 했습니다.다시 시작하기 전에 프로비저닝 프로파일이 동일하여 작동하지 않았습니다.그래서 가끔 다시 시작하면 기적이 일어나죠어쩌면 이게 도움이 될지도 몰라

누군가 GameCenter를 사용하는 경우 타깃에서 이 섹션을 확인하십시오.오래된 프로젝트와 함께 작업했는데 오류가 2개 있었습니다(다 잘 작동했습니다).디세이블과 이네이블로 되돌리면 이 문제가 해결되었습니다.여기에 이미지 설명 입력

대부분의 경우 이 작업은 Game Center 권한을 앱 ID에 추가하고 자체적으로 처리합니다.

1. 프로젝트 폴더로 이동하여 *.Entitlements 파일을 삭제합니다.2 .다음으로 xcode project target -> build settings -> code signment entities - delete values 3 으로 이동합니다.클린 4달려.

아, 이 영광스러운 실수.이 에러를 볼 때마다, 다음의 사항을 확인합니다.

1. XCode가 항상 프로비저닝프로파일 정보에 액세스할있도록 허용 - XCode가 부팅 시 컴퓨터 개인 파일에 액세스할 수 있도록 계속 요청하여 프로비저닝프로파일 정보를 항상 지금 또는 한 번만 액세스할 수 있도록 하는 옵션과 함께 가져올 수 있도록 하는 경우 - [항상 접근 허용(Always ALLOWED

2. 프로젝트에 오래된 자격 파일이 있는 경우 해당 파일과 징후를 삭제합니다.프로젝트에 .entitments 파일이 있는 경우 삭제(또는 완전히 삭제할 준비가 되지 않은 경우 해당 파일에 대한 참조를 삭제하십시오).그런 다음 빌드 설정의 '코드 서명' 섹션 아래의 '코드 서명 사용 권한' 행이 비어 있는지 확인합니다.

3. 어플리케이션 서비스를 온라인으로 체크하고 XCode에서 어플리케이션 서비스를 조합합니다.애플 멤버 센터로 이동하여 앱 ID를 확인하고 어플리케이션 서비스를 클릭하여 체크한 내용을 확인합니다.그런 다음 XCode로 이동하여 "Capabilities(기능)" 섹션을 확인하여 두 회사의 Apple 서비스 목록이 동일한지 확인합니다.

4. 검증하기 전에 유효한 프로비저닝 프로파일을 앱에 할당하십시오.Apple Member Center에서 해당 앱의 프로비저닝 프로파일을 재확인하고 만료되지 않았는지, 올바른 번들 ID와 배포가 포함된 올바른 앱 ID가 있는지 확인하십시오.새로운 프로비저닝프로파일을 다운로드하여 클릭하여 XCode에 XCode가 있는지 확인하거나 [XCode]> [ Preferences ]> [ Accounts ]> [ View Details ]를 클릭하여 아래 코너 버튼을 클릭하여 모든 프로파일을 XCode에 동기화합니다.지금 '코드 서명' 섹션에서 프로파일을 선택할 수 있어야 합니다.올바른 프로비저닝프로파일이 있으면 '코드 서명 ID' 행을 해당 프로비저닝프로파일의 올바른 옵션으로 설정할 수 있습니다.

주의: 배포 증명서를 실행하는 경우 모든 '코드 서명 ID' 행을 디버깅 행을 포함하여 배포에 사용하는 ID로 설정할 수 있습니다.

5. 그 외 모든 것이 실패했을 경우 - 프로젝트를 청소하고 XCode를 재시작하여 다음 번에 프로젝트를 열고 검증을 시도할 때 Apple의 매직이 정상적으로 동작할 수 있습니다.

오래된 3.1.5 프로젝트를 구축하고 있는 경우, Xcode 5에는 유감스럽게도 선택할 수 있는 프로비저닝프로파일이 없기 때문에 Benjamin의 답변을 얻을 수 없는 버그가 몇 가지 있습니다.Xcode 프로젝트 파일을 몇 시간이나 읽고 나서, 나는 이 솔루션을 생각해 냈습니다.

  • Xcode 5의 유틸리티 창(오른쪽)의 프로젝트 문서 아래에서 Xcode 3.1 호환에서 Xcode 3.2 호환으로 변경합니다.
  • 조직명을 입력합니다.
  • 프로젝트를 닫습니다.
  • 파일 파일)을 엽니다.open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • 구(2 「Distribution」)를 삭제합니다.isa=XCBuildConfiguration를 참조해 주세요.
    • 2개의 합니다(buildConfiguration에서 는 2행).PBXNativeTarget 중 1명PBXProject XCConfigurationLists)

이제 다시 열고, 보관하고, 앱스토어에 제출할 준비가 되었습니다. - voila!다시 되네!

작동 방식

Apple이 다른 디스트리뷰션 구성의 필요성을 배제하기로 결정했기 때문에 이 방법이 효과가 있다고 생각합니다.이것은 좋은 일입니다.아카이브를 하면 Xcode가 자동으로 배포용 부호를 코드화합니다.애초에 그렇게 실장했어야 했는데, 애플이 자동이행을 IDE의 일부로 만들 수 없다는 것은 유감스러운 일입니다. 대신 개발자들은 이 작업을 수행하기 위해 수십 년을 투자하도록 강요하고 있습니다.

저는 지금 하루 이상 이 문제와 씨름하고 있으며, 인터넷 이곳저곳에서 제안된 모든 해결책을 시도해 보고 있습니다.아무것도 안 먹혔어...

하지만, 나는 마침내 문제를 풀 수 있었어!

문제는 3년 이상 터치하지 않은 오래된 앱으로, 오랫동안 기다렸던 업데이트를 발표하려고 했습니다.내가 앱을 출시한 이후, 애플은 증명서와 앱 ID의 작동 방식을 업데이트해 왔다.권장되는 Team Id 개념을 도입했습니다.특히 애플의 "증명서, 식별자 및 프로파일" 사이트는 그 이후로 많은 변화를 겪었다.

하던 Provisioning Id에 것을 알게 .ED8xxxxxxx.com.rostsolutions.*앱앱 ID가 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ATMxxxxxxx.com.rostsolutions.Swisch하지 않았습니다!아이디★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★!을 사용하다 앱 ID에 을 만듭니다.ATMxxxxxxx.com.rostsolutions.Swisch using. 을 제출했고, 애플이 잘 입니다.그 Provisioning Profile을 사용하여 앱스토어에 성공적으로 제출했고, 이제 애플 측에서는 모든 것이 잘 되길 바랄 뿐입니다.

ID(「」 「」 「ID」)에.ATMxxxxxxx.com.rostsolutions.*을 이용하다

점은 Details로 앱가 Binary Details로 표시됩니다.ED8xxxxxxx.com.rostsolutions.Swisch& 가 [Certificates, Identifier & Profiles]로 되어 있는 ATMxxxxxxx.com.rostsolutions.Swisch

이 문제는 Preferences-> Accounts에서 Apple ID를 삭제했다가 다시 추가함으로써 해결되었습니다.그 후 모든 프로비저닝프로파일 파일이 View Details 유틸리티 패널에 표시됩니다.실수로 "Mac Team Provisioning Profile:*"는 프로젝트의 실제 배포 프로비저닝 프로파일이 아닌 일반적인 선택입니다.프로비저닝 파일은 프로젝트에 고유해야 합니다.또한 프로비저닝 프로파일에 올바른 사용 권한(예: 맵)이 있는지 확인하십시오.사용 권한 없이 OSX Maps를 사용하여 앱을 출시할 수 있었고 Apple은 이를 승인했습니다. 하지만 실제 버전에는 Maps가 표시되지 않았습니다.

같은 문제가 있었습니다.아카이브(archive)를 실행하기 전에 빌드 설정의 '릴리스 프로비저닝 프로파일'을 변경하는 것이 해결책이었습니다.앱스토어 배포용과 애드혹 배포용으로 두 번 실시합니다.아카이브에 코멘트도 추가합니다.내 결론은 "아카이브 재서명"에 뭔가 깨진 것이 있다는 것입니다.

사이트에는 그 문제를 해결하기 위한 매우 좋은 튜토리얼이 있습니다.

이 문제는 프로젝트 번들 식별자가 iTunes Connect 웹사이트에서 입력한 식별자와 다를 때 발생할 수 있다고 합니다.

xcode 5는 사용자가 직접 작성한 "배포"가 아닌 "해제"를 사용하는 것 같습니다.

위의 모든 것이 작동하지 않는 경우(내 경우 이틀이 지나도 모든 것을 시도해 볼 수 없음) Mac 애플리케이션은 하나뿐입니다.취소에 주의하세요!

Distribution"및 " Installer Distribution 1) "Mac App Distribution" "Mac Installer Distribution" 을 합니다.
2) Keychain 내 관련 증명서 및 오픈키 청소(경고: 삭제 전 내보내기)
3) Xcode 재기동 4) (Safari에서) developer.apple.com -> 증명서 등5) 키 체인에서 Create Certificate Signing Request.Signing Request -> 증명서 어시스턴트
*.) *.certSigningRequest)*.를 사용하여apple.com에서 " Installer Distribution"을 .
Profiles > 작성 ( "for AppStore"라고 -> AppStore -> AppStore "/"AppStore"
Xcode > 9) -> -> Validate8) Xcode -> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Xcode

저는 같은 문제로 고민하고 있습니다(애드혹 유통을 위해 건축을 하고 있었습니다).마지막으로 도입이 성공한 후 변경된 것은 프로비저닝프로파일에 2대의 디바이스를 추가한 것뿐입니다.

모든 빌드 설정을 이중 및 삼중으로 확인한 후 (아무것도 변경하지 않고) 프로비저닝 프로파일을 재생성하고 다시 다운로드하면 정상적으로 작동했습니다.

따라서 자신에게 메모: 논리적인 설명이 없다면 언제든지 오래된 IT 부두(voodoo)를 시도해 볼 수 있습니다.

또한 iPhone Configuration Utility를 추천합니다.이 유틸리티는 이름에도 불구하고 컴퓨터에 어떤 프로비저닝프로파일이 있는지 확인하는 데 도움이 됩니다.

ERROR ITMS-9000: "이 번들은 유효하지 않습니다.앱스토어에 제출된 새로운 앱 및 앱 업데이트는 XCode 5.1.1 이상의 퍼블릭(GM) 버전과 iOS 7 SDK로 빌드되어야 합니다. 베타 소프트웨어로 빌드된 앱을 제출하지 마십시오.

여러 개발자가 동일한 멤버 센터 계정을 사용하는 경우.이들 중 하나는 자신의 컴퓨터를 사용하여 작성된 인증서 요청을 사용했기 때문에 다른 사용자가 작성한 인증서를 사용할 수 없습니다.

사용자가 만든 인증서(컴퓨터를 사용하여 만든 인증서 요청)를 사용해야 합니다.

또는 개발자 프로파일을 보내라고 했습니다.이름을 잘 모르겠어요.다른 컴퓨터에서 생성된 인증서를 사용합니다.

리소스에 Entitlements 파일이 포함되어 있지 않기 때문에 코드 서명 Entitlements가 발생합니다.빌드 설정으로 이동하여 코드 서명 Entitlements를 디버깅 및 릴리스용으로 삭제하고 프로젝트를 다시 빌드하면 오류가 발생하지 않습니다.건배.

저도 같은 문제가 있었는데, 여기 써있는 건 하나도 효과가 없었어요.하지만, 나는 나에게 효과가 있는 간단한 방법을 찾았다.방법은 다음과 같습니다.

1) 프로젝트 및 타겟 빌드 설정에서 모든 프로비저닝 프로파일에 대해 "없음"을 선택하고 모든 코드 서명 ID에 대해 "코드 서명 안 함"을 선택합니다.

2) 타겟을 선택하고 빌드 설정으로 이동합니다.Code Signing Identity Release 설정에서 "Any iOS SDK"로 "iOS Distribution"을 선택합니다.그런 다음 Provisioning Profile Release 설정에서 "Any iOS SDK" 배포 프로파일을 선택합니다.그런 다음 코드 서명 ID 릴리스 설정이 자동으로 "iPhone 배포"로 변경됩니다.

3) 빌드를 아카이브하여 검증합니다.이제 잘 될 거예요.바로 그거야!

언급URL : https://stackoverflow.com/questions/18818381/xcode-5-code-signing-entitlement-errors

반응형