오류 ITMS-90164 / 90046 : 유효하지 않은 코드 서명 자격


82

참고 : Xamarin을 사용하여 개발 중입니다. 비슷한 질문은 자 마린 포럼에 게시 여기

CompanyApp 이라는 앱을 만들고 있습니다. 그런 다음 해당 앱 ID를 사용하는 배포 프로비저닝 프로필과 함께 com.Company.CompanyApp에 대한 앱 ID를 만들었습니다 . 바이너리를 업로드했고 완벽하게 작동했습니다.

그런 다음 앱의 데모 버전 (기본적으로 약간의 수정이있는 동일한 앱이므로 동일한 솔루션 및 프로젝트, 다른 번들 서명 설정), CompanyAppDemo 와 함께 새 앱 ID com.Company.CompanyAppDemo 를 생성했습니다. 새 앱 ID를 사용하는 새 배포 프로비저닝 프로파일. 새 프로비저닝 프로필을 사용하도록 iOS 번들 서명 옵션을 업데이트하고 IPA를 생성했습니다. 하지만 이것을 Application Loader에 업로드했을 때 다음과 같은 오류가 발생했습니다.

[2015-01-23 16:08:21 SGT] 오류 : ERROR ITMS-90164 : "잘못된 코드 서명 권한입니다. App Bundle 서명의 권한이 프로비저닝 프로필에 포함 된 권한과 일치하지 않습니다. 프로비저닝에 따라 프로필에 허용되지 않는 키 값이 포함되어 있습니다. 'Payload / CompanyApp.app / CompanyApp'의 'application-identifier'키에 대한 'TEAMID.com.Company.CompanyApp' "

[2015-01-23 16:08:21 SGT] 오류 : 오류 ITMS-90046 : "잘못된 코드 서명 자격입니다. 응용 프로그램 번들의 서명에 iOS에서 지원되지 않는 코드 서명 자격이 포함되어 있습니다. 특히 'TEAMID.com.Company 값'을 입력하십시오. 'Payload / CompanyApp.app / CompanyApp'의 'application-identifier'키에 대한 .CompanyApp '은 지원되지 않습니다.이 값은 TEAMID로 시작하는 문자열이어야하며 그 뒤에 점'. '과 번들 식별자가 와야합니다. "

나는 아무 소용이 없다는 것을 알아 내기 위해 며칠 동안 디버깅을 해왔다.

새 프로필로 서명 할 때 Application Loader가 던진 오류가 TEAMID.com.Company.CompanyAppDemo 대신 원래 TEAMID.com.Company.CompanyApp 의 ID를 참조하는 이유궁금합니다 . 잘못된 프로비저닝 프로필을 선택하는 Xamarin의 버그입니까, 아니면 뭔가 누락 되었습니까? 앱마다 다른 인증서가 필요하지 않습니까?

Xamarin에서 iOS 빌드 서명 옵션을 변경하기 전에 항상 XCode> 기본 설정에서 프로비저닝 프로필 목록을 새로 고쳤습니다.

답변:


133

누군가 나처럼 ERROR ITMS-90046을 검색하여 여기에 오면 내 해결책은 그것을 정리하고 모든 미리 컴파일 된 프레임 워크 (사용자 지정 프레임 워크)를 삭제 한 다음 다시 빌드하는 것입니다.

참고 : 오류 설명은 핵심 "aps-environment"에 대해 "development"로 언급했습니다.

편집 : 실제 오류 메시지


좀 더 설명해 주 시겠어요?
John

1
예, 내 앱에서 사용자 지정 프레임 워크를 사용하고 있으며 "빌드 단계" "대상 종속성"섹션에 추가되므로 앱을 컴파일 할 때 컴파일되고 서명됩니다. 또한 컴파일 된 프레임 워크를 다른 폴더로 이동하는 각 프레임 워크 "빌드 단계"에 스크립트가 있습니다. 서명 프로세스에 버그가있는 것 같고 핵심 부분은 프레임 워크를 삭제하여 컴파일러가 다시 컴파일하고 서명하도록하는 것이라고 생각합니다. 그 오류는 다시는 발생하지 않습니다.
quarac

감사합니다. 문제를 해결하는 데 도움이되었습니다.
DiscDev

7
TestFlight에 업로드 빌드 50에 대한 후 내가해야 할 일을했을 모든 청정을했다 ...이 새로운 오류를했다
Phamer

2
Xcode에서 개발하는 것은 끝없는 악몽입니다. 일하기 위해기도하는 것이 코딩보다 더 중요합니다.
Eduardo

63

나는 같은 문제가 있었고 간단한 Product-> Clean으로 해결했습니다 .


1
ERROR ITMS-90164 : "잘못된 코드 서명 권한입니다. App Bundle 서명의 권한이 프로비저닝 프로필에 포함 된 권한과 일치하지 않습니다. 프로비저닝 프로필에 따르면 번들에 다음과 같은 키 값이 포함되어 있습니다. 허용되지 않음 : 'Payload / Palau Moja.app/Palau Moja'의 'get-task-allow'키에 대한 'true'오류 ITMS-90164 : "잘못된 코드 서명 자격. 앱 번들 서명의 자격은 허용되지 않습니다. 프로비저닝 프로파일에 포함 된 것과 일치
Josep Escobar

Josep과 동일한 오류가 발생하여 정리-> 아카이브-> 다시 업로드하여 해결하십시오. 이 솔루션을 게시 해 주셔서 감사합니다!
little

Product-> Clean 은 어디에서합니까 ? XCode 또는 Visual Studio에서? Xamarin, BTW를 사용하여 개발 중입니다.
James Lavery

20

사람은 모두 오류를 검색하여 여기에 들어갔을 경우 ITMS-90164 및 오류 ITMS-90046GET-태스크 수ASP-환경 키 :

1

David P가 말했듯이, 새 아카이브가 내 문제를 해결하기 전에 제품-> 청소 .

제 경우에는 결함이있는 xarchive에 다음 파일이 누락 된 것을 발견했습니다.

2

프로덕션 서명을 위해 해당 .xarchive를 클라이언트에 보내기 전에 archived-expanded-entitlements.xcent 파일을 찾아 거기에 있는지 확인할 수 있습니다.


18

드디어 2 주 동안 머리를 당기고 ..

어떤 이유로 Entitlements.plist에 TEAMID.com.Company.CompanyAppDemo 로 설정된 키 'application-identifier'가없는 경우 Xamarin은 원래 응용 프로그램 식별자 (예 : TEAMID.com.Company.CompanyApp)를 사용합니다.

따라서 솔루션은 Entitlements.plist 내에 올바른 애플리케이션 번들 ID를 지정하는 애플리케이션 식별자를 추가하는 것이 었습니다. 그런 다음 빌드 옵션> iOS 번들 서명에 plist를 포함합니다.


13
xamarin은 생산성 향상입니다!
Anton Tropashko 2016 년


8

Entitlements.plist에서이를 변경합니다.

<key>aps-environment</key>
<string>development</string>

이에:

<key>aps-environment</key>
<string>production</string>

5

iTunes connect에서 새 계약에 동의해야하는 경우에도 발생할 수 있습니다. iTunes connect에 로그인하면 상단에 최신 계약 변경에 동의하라는 배너가 표시됩니다.


1
Your'e 생명의 은인 : 꼭 사랑 사과의 관련이없는 오류 메시지
아브 슈워츠

4

저에게 문제는 자동 추가되고 비어있는 Entitlements.plist였습니다. 사용자 정의 권한 필드에서 제거하고 문제를 해결했습니다.

Visual Studio 2015의 iOS 번들 서명보기


3

포장하기 전에 해당 릴리스 인증서를 선택하지 않으면 ERROR ITMS-90164가보고됩니다.

빌드 설정-> 코드 서명 ID-> 릴리스-> 모든 IOS SDK


2

보관할 때 WatchKit 앱이 아닌 앱 대상을 선택했는지 확인하십시오.


2

다른 답변 중 어느 것도 나를 위해이 오류를 해결하지 못했지만 이렇게했습니다.

  1. 새 XCode 응용 프로그램을 만들고 코드 서명 설정을 확인하십시오.

  2. 앱이 기본 XCode 7 또는 Xcode 8 서명 및 프로비저닝 설정과 유사하게 설정되도록하십시오. 여기에 XCode 7이 표시되며 XCode 8에서 다시 변경됩니다.

프로비저닝 및 서명

  1. 위의 내용이 충분하지 않은 경우 다시 수행해야 할 수 있지만 이번에는 Apple Keyring에서 만료 된 이전 프로비저닝 프로파일을 삭제하거나 XCode에서 Apple 개발자 (itunes) 계정을 삭제하고 다시 로그인합니다. 선호도. 변경 후 XCODE를 종료하고 다시 시작하십시오. 그런 다음 계정을 다시 추가하고 XCode가 새 서명 및 팀 정보를 가져 오도록하십시오.

1

마스터가 아닌 git 브랜치에서 빌드를 업로드하려고했습니다. 이 문제를 해결하기 위해 분기를 마스터에 병합하고 다시 빌드했습니다. 그런 다음 빌드를 성공적으로 업로드 할 수있었습니다.


1

2 개의 대상 (개발자 ID 2 개, 권한 2 개 포함)을 포함하는 프로젝트가 이로 이어질 수 있습니다. (어떻게 일어 났는지 묻지 마세요 ...)

보관할 때 다른 인 타이틀먼트 파일을 임시로 제거하십시오.


1

적절한 Xcode '종료'를 수행 한 다음 다시 시작하는 것이 마지막 작업이었습니다.

번들 식별자 (데모 버전의 경우)를 변경했고 보관 된 빌드를 확인할 때 동일한 오류 (질문에 자세히 설명 됨)가 발생했습니다. Xcode를 사용하고 있습니다. Xcode를 닫고 내 프로젝트를 다시 여는 것만으로는 충분하지 않았지만 전체 '종료'는 충분했습니다. 내가 추측하는 어딘가에 무언가가 캐시되었을 것입니다.


이것은 나를 위해 해냈습니다. XCode는 때때로 너무 까다로울 수 있습니다.
Aaron Krauss

1

나는 여기에 나열된 모든 것을 시도해 보았고 문제는 내 .entitlement파일 이었습니다. 내가 처음에 넣지 않은 줄이 있었고 어떻게 든 추가되었습니다.
해당 줄을 제거하고 다시 시도하고 작동했습니다.


1

entitlements.plist에서 Access 도메인의 값을 applinks : htts : //domain.app.link에서 applinks : domain.app.link로 이름을 변경했습니다. 건배!


0
  1. Build PhaseXcode로 이동
  2. 모든 프레임 워크 제거
  3. 다시 추가
  4. 이제 빌드-> 보관-> App Store에 업로드

만세, 당신은 그것으로 끝났습니다. 문제 해결됨


0

나를 위해 자동 코드 서명 기능을 끄거나 다시 켜서 해결할 수있었습니다.

여기에 이미지 설명 입력


0

나를 위해 iOS 번들 서명의 사용자 지정 권한 설정에 잘못된 파일이 있습니다. 그것을 제거하고 작동했습니다!


1
스크린 샷이 좋을 것입니다.
Warren P

0

몇 시간의 조사 끝에 저는 쉬운 해결책을 찾았습니다.

응용 프로그램을 업로드하기 위해 응용 프로그램 로더를 사용하는 대신 XCode의 Organizer를 사용했으며 업로드 할 때 경고없이 작동했습니다!


0

내 문제는 IPA 파일을 만드는 데 잘못된 번들을 사용하고 있다는 것입니다.


0

나는 똑같은 문제가 있었고 그것은 꽤 어리석은 실수였습니다. 나는 아무도 이것에 시간을 소비하지 않기를 바랍니다.

잘못

그래서 여기서 일어난 일은 배포 대상에 '10'을 입력 한 것입니다. 대신 10.0이어야합니다. 그것이 악명 높은 ERROR ITMS-90164 / 90046 : Invalid Code Signing Entitlements for me!



0

여기 내 2 센트.

애플 개발자 포털에서 내 TeamID / 애플리케이션 ID를 복사 할 때 entitlement.plist에 많은 관련없는 값을 가져 오기 때문에 지금 막이 문제가 발생했습니다. Xcode를 사용하여 entitlement.plist를 편집하고 입력 상자에 첫 번째 줄 바꿈 문자 다음에 모든 내용이 표시되지 않기 때문에 이것을 알지 못했습니다.

이 경우 entitlement.plist에 일반 텍스트 편집기를 사용하는 것이 좋습니다.

고마워, 사무엘


0

지난 며칠 동안 Stackoverflow 에서 읽은 모든 트릭을 시도한 후 "xxxxxx.entitlements"파일을 삭제하고 다시 생성합니다. 나는 클릭Capabilities를 Associated Domains 에서 ON을 선택 하고 "Domains"를 추가합니다. 그런 다음 기능> 푸시 알림에서 "권한 파일에 푸시 알림 인 타이틀먼트 추가"수정을 클릭하십시오.

이렇게하면 ARCHIVE를 성공적으로 수행 할 수 있습니다.


0

이와 같은 링크가있어서 webcredentials:https://************.link업로드가 실패했습니다. 나는 그것을 제거하고 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.