IT

Xcode 5 : 코드 서명 자격 오류

lottoking 2020. 6. 12. 08:40
반응형

Xcode 5 : 코드 서명 자격 오류


IOS 7을 지원할 새 응용 프로그램을 만들었습니다. 새 XCode 5 GM을 가져 와서 새로운 프로비저닝 프로파일 및 배포 인증서를 사용하여 앱에 서명하려고했지만 배포에 문제가 있습니다. 나는 지속적으로 다음과 같은 오류가 발생합니다 :

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

라는 키 값에 대해서도 동일한 오류가 발생합니다 application-identifier.

errror의 스크린 샷 :

여기에 이미지 설명을 입력하십시오


해결책은 프로비저닝 프로파일이라고하는 Xcode 5의 새로운 옵션에 있습니다. 프로젝트 대상의 프로비저닝 프로파일을 올바른 프로파일로 설정하면 작동합니다.

여기에 이미지 설명을 입력하십시오


당신이 나와 같아서 EVERYTHING 을 시도했다고 생각 되면 프로젝트를 10 번 이상 보관하고 키보드에서 머리를 두드리면서 여전히이 오류가 발생합니다. 자신에게 호의를 베풀고 단순히 XCode다시 시작하십시오 . 언젠가 애플 ... 당신이 싫어요.


위의 많은 단계를 거쳤지만 마침내 나를 위해 일한 것은 Xcode에서 프로파일을 새로 고치는 것이 었습니다. 내 앱의 배포 프로필이 이미 목록에 표시된 이후 왜 필요한지 확실하지 않습니다. 단계는 다음과 같습니다.

  1. Xcode 환경 설정
  2. 계정 탭
  3. Apple ID를 선택하십시오
  4. Apple ID 세부 사항 패널에서 세부 사항보기 단추를 누르십시오
  5. 왼쪽 하단의 새로 고침 버튼을 누르십시오

필자의 경우 Xcode에서 developer.apple.com의 응용 프로그램 서비스와 동일한 기능을 활성화했습니다. 그게 나를 위해 작동

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


내 경우 (죄송합니다)-> 일반-> 신원에서 "팀"을 "없음"으로 전환했습니다.

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

Xcode는 때때로 코드 서명으로 크게 엉망이됩니다. 또는, 우리는 단지 필사자들이 그것이 무엇을하고 있는지 이해하기에 충분히 영리하지 않습니다. 포기하지 마십시오. 우리 모두는 때때로 코드 서명 고문을 겪고 있습니다!


필자의 경우 릴리스 용 올바른 프로비저닝 프로파일을 설정 한 다음 Xcode를 다시 시작해야했습니다. 다시 시작하기 전에 동일한 프로비저닝 프로파일이 있었고 작동하지 않았습니다. 따라서 때때로 다시 시작하면 기적을 일으킬 수 있습니다. 어쩌면 이것은 누군가를 도울 수 있습니다.


누군가 GameCenter를 사용하는 경우 대상에서이 섹션을 확인하십시오. 나는 오래된 프로젝트로 일했고 2 오류가있었습니다 (그러나 모든 것이 잘 작동했습니다). 다시 비활성화하고 활성화하면이 문제가 해결되었습니다.여기에 이미지 설명을 입력하십시오

이 작업은 Game Center 권한을 App ID에 추가하고 자체적으로 처리합니다.


1. 프로젝트 폴더로 이동하여 * .entitlements 파일을 삭제하십시오. xcode 프로젝트 대상-> 빌드 설정-> 코드 서명 인 타이틀먼트-값 삭제 3. 청소 4. 실행


아,이 영광스러운 오류. 이 오류가 나타날 때마다 다음 사항을 확인하십시오.

1. XCode가 항상 프로비저닝 프로파일 정보에 액세스하도록 허용-XCode를 시작할 때 컴퓨터의 개인 파일에 액세스 할 수 있는지 묻는 메시지가 표시되면 지금이 아니라 항상 액세스 할 수있는 옵션으로 프로비저닝 프로파일 정보를 얻을 수 있습니다. 또는 한 번만-항상 액세스 허용으로 설정하십시오.

2. 프로젝트를 시작하는 오래된 자격 파일이있는 경우 해당 파일과 그 흔적을 제거하십시오. 프로젝트 에 .entitlements 파일이 있으면 삭제하십시오 (또는 확실하지 않은 경우 참조를 제거하십시오). 완전히 삭제할 준비가 되었으면 빌드 설정의 '코드 서명'섹션 아래에있는 '코드 서명 권한'줄이 비어 있는지 확인하십시오.

3. 온라인으로 애플리케이션 서비스를 확인하고 앱의 XCode 서비스와 일치 시키십시오. -Apple 멤버 센터로 이동 하여 앱 의 앱 ID를 확인하고 앱을 클릭하여 '애플리케이션 서비스'를 확인한 후 확인 한 다음 XCode로 이동하여 '기능'섹션을 확인하여 두 사람이 모두 동일한 Apple 서비스 목록을 가지고 있는지 확인하십시오.

4. 확인하기 전에 유효한 프로비저닝 프로파일을 앱에 할당해야합니다 . Apple 멤버 센터에서 앱의 프로비저닝 프로파일을 다시 확인하고, 만료되지 않았는지, 올바른 번들 ID 및 배포가있는 올바른 앱 ID가 있는지 확인하십시오. . 새 프로비저닝 프로파일을 다운로드하여 클릭하여 XCode에 있는지 확인하거나 XCode> 환경 설정> 계정으로 이동 한 후 계정을 클릭하고 세부 사항보기를 클릭 한 후 하단 모서리 단추를 클릭하여 모든 프로파일을 XCode에 동기화하십시오. '코드 서명'섹션에서 지금 선택할 수있는 프로필이 있어야합니다. 올바른 프로비저닝 프로파일이 있으면 'Code Signing Identity'코드를 해당 프로비저닝 프로파일에 대한 올바른 옵션으로 설정할 수 있습니다.

참고-배포 인증서를 수행하는 경우 모든 '코드 서명 ID'행을 디버그 행을 포함하여 배포에 사용하는 ID로 설정하는 데 도움이 될 수 있습니다.

5. 모두 실패 할 경우-프로젝트를 정리하고 XCode를 다시 시작하십시오. 다음에 프로젝트를 열고 유효성 검사를 시도 할 때 일부 Apple Magic이 제대로 작동 할 수 있습니다.


오래된 3.1.5 프로젝트를 빌드하는 경우 Xcode 5에는 선택할 수있는 프로비저닝 프로파일이 없기 때문에 불행히도 Benjamin의 대답을 불가능하게하는 몇 가지 버그가 있습니다. 늦은 시간에 Xcode 프로젝트 파일을 많이 읽은 후에 나에게 도움이되는이 솔루션을 찾았습니다.

  • Xcode 5의 유틸리티 창 (오른쪽)에있는 프로젝트 문서에서 Xcode 3.1 호환에서 Xcode 3.2 호환으로 변경하십시오.
  • 조직 이름을 입력하십시오.
  • 프로젝트를 닫습니다.
  • 프로젝트 파일을 엽니 다 (예 : open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • Remove the two Distribution clauses (isa=XCBuildConfiguration).
    • Remove the two accompanying lines in buildConfiguration (one in PBXNativeTarget and one in PBXProject XCConfigurationLists)

Now you're ready to re-open, archive and submit to App store - voilà! It works again!

How I think it works

I assume this works because Apple somewhere along the line decided to drop the need for any separate distribution config, which is a good thing. When I archive, Xcode automatically code signs for distribution. That's the way it should have been implemented in the first place, it's just a shame that Apple can't make auto-migration part of the IDE; instead they force us developers to spend man-decades to make this stuff work.


I have been struggling with this problem for more than a day now, trying all kinds of solutions suggested here and elsewhere on the internet. Nothing worked...

But, I finally managed to solve the problem!

The problem I had was with an old app that I haven't touched in over 3 years, and now I was about to release a long awaited update. Since the time I released the app, Apple has been updating how the certificates and App Id works. They have introduced the concept of Team Id which seems to be recommended to use. In particular, the Apple's "Certificates, Identifiers & Profiles" site, has seen a lot of changes since then.

There I realized that the Provisioning Profile I was using for App Store Distribution were connected to the App Id ED8xxxxxxx.com.rostsolutions.* but looking at the App Id for the game I was about to submit I notice that the App Id was ATMxxxxxxx.com.rostsolutions.Swisch. So the App Id prefix did not match! That seemed to be the root of the problem. So what I did was to create a new Provisioning Profile connected to the App Id ATMxxxxxxx.com.rostsolutions.Swisch instead. Using that Provisioning Profile I successfully submitted my app to App Store and now I just keep my fingers crossed that everything else works fine at Apple's side.

(I first tried to connect to new Provisioning profile to the wildcard Id ATMxxxxxxx.com.rostsolutions.* instead, but that didn't seem to work).

But what puzzles me is that when I look at the old App in iTunes Connects and goes to Binary Details, it says that the App Id is ED8xxxxxxx.com.rostsolutions.Swisch. So why is the "Certificates, Identifiers & Profiles" page listing the App Id as ATMxxxxxxx.com.rostsolutions.Swisch?


My problem was solved by removing my Apple ID from Preferences->Accounts and then adding it back again. Then all my provisioning profile files showed up on the View Details utility panel. I was mistakenly choosing "Mac Team Provisioning Profile:*" instead of the actual distribution provisioning profile for the project thinking that it was a generic selection. Provisioning files must be specific to the project. Oh, and BTW, make sure your provisioning profile has the correct entitlements (for example, Maps). I managed to release an app with OSX Maps without the entitlement and Apple approved it -- but no Maps showed up on the production version!


In my case, I had the same problem, my solution was to change the 'Release Provisioning Profile' in the Build Settings before doing Archive. I do this twice, once for App Store distribution, and another one for Ad Hoc distribution. I also add a comment on my archives. My conclusion is that there is something broken about the "archive re-signature".


There is a very good tutorial for solving that problem on this website.

It says that this problem can occur when your Projects Bundle Identifier is different to the one you entered on the iTunes Connect Website.


I think xcode 5 uses "release" instead of "distribution" that you may created yourself.


If all above didn't work (in my case after couple of days no luck trying everything) I have only one Mac application. BE CAREFULL WITH REVOKE!

1) Revoke by hand all "Mac App Distribution" & "Mac Installer Distribution"
2) Clean relevant certificates and open-keys in Keychain (Warning: export before delete)
3) Restart Xcode 4) Go to (in Safari) developer.apple.com -> certificates etc. 5) Create CertificateSigningRequest.certSigningRequest in Keychain->Certificate assistant
6) Create by hand on developer.apple.com both "Mac App Distribution" & "Mac Installer Distribution" with your *.certSigningRequest
7) Provisioning Profiles -> Distribution -> create/fix custom provision for AppStore (I'm specially named it as "Mac provision profile for AppStore"
8) Xcode -> Settings -> Account -> Your account -> Refresh 9) Xcode Clean -> Archive -> Validate


I have been struggling with similar problem (I was building for Ad-Hoc distribution). Only thing that has changed since last successful deploy, was adding two devices to provisioning profile.

After double- and triple- checking all build settings, I regenerated provisioning profile (without changing anything), re-downloaded and it worked fine.

So note to self: if there is no logic explanation, you can always try good old IT voodoo.

I also recommend iPhone Configuration Utility, which despite its name, is useful for checking what provisioning profiles you have on computer.


ERROR ITMS-9000: “This bundle is invalid. New apps and app updates submitted to the App Store must be built with public (GM) versions of XCode 5.1.1 or higher and iOS 7 SDK. Do not submit apps built with beta software.


If multiple developers are using the same member center account. One of them can't use a certificate created by others cause they used a certificate request created using their computers.

You need to use a certificate created by you (certificate request created using your computer).

Alternative, told them to send you the Developer Profile. not sure of the name. to use a certificate created on another computer.


Code signing Entitlements occur because of your resource does not contain Entitlements file in resources,Just go to build setting and search code signing Entitlements delete entry for debug and release, build project again you will see there is no error. Cheers


I had the same problem, but nothing written here worked for me. However, I found a simple way that worked for me. Here's how to do it:

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

2) 이제 Target을 선택하고 빌드 설정으로 이동하십시오. 코드 서명 Identity 릴리스 설정에서 "모든 iOS SDK"에 대해 "iOS 배포"를 선택하십시오. 그런 다음 프로비저닝 프로파일 릴리스 설정에서 "모든 iOS SDK"에 대한 배포 프로파일을 선택하십시오. 그런 다음 코드 서명 Identity Release 설정이 자동으로 "iPhone Distribution"으로 변경됩니다.

3) 빌드를 보관하고 유효성을 검사하십시오. 이제 잘 작동합니다. 그게 다야!

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

반응형