제출시 Xcode 8“앱 서명에 aps-environment 자격이 없습니다.”


118

지난 6 개월 동안 수십 개의 버전을 제출 한 앱이 있으며 APNS를 사용합니다. Xcode 8로 업그레이드 한 후 Apple에서 다음 이메일을 받았습니다.

개발자 님,

APP_NAME에 대한 최근 전송에서 하나 이상의 문제를 발견했습니다. 배송이 성공적으로 이루어졌지만 다음 배송에서 다음 문제를 수정하는 것이 좋습니다.

푸시 알림 자격 누락-앱에 Apple의 푸시 알림 서비스에 대한 API가 포함되어 있지만 앱 서명에서 aps-environment 자격이 누락되었습니다. 이 문제를 해결하려면 프로비저닝 포털에서 푸시 알림에 대해 앱 ID가 활성화되어 있는지 확인하십시오. 그런 다음 aps-environment 자격이 포함 된 배포 프로비저닝 프로필로 앱에 서명합니다. 그러면 올바른 서명이 생성되고 앱을 다시 제출할 수 있습니다. 자세한 내용은 로컬 및 푸시 알림 프로그래밍 가이드의 "프로비저닝 및 개발"을 참조하십시오. 앱이 Apple 푸시 알림 서비스를 사용하지 않는 경우에는 조치가 필요하지 않습니다. 이 경고를 중지하려면 향후 제출에서 API를 제거 할 수 있습니다. 타사 프레임 워크를 사용하는 경우

문제를 수정 한 후 Xcode 또는 Application Loader를 사용하여 새 바이너리를 iTunes Connect에 업로드 할 수 있습니다.

문안 인사,

App Store 팀

이상한 점은 developer.apple.com- > 인증서, 식별자 및 프로필에 갔고 내 AppId에 푸시 알림이 여전히 활성화되어 있다는 것입니다. 나는 내가 해본 것과 다른 것을하고 있지 않으므로 Xcode 8 업데이트가 뭔가를 망쳤는지 궁금합니다. 어떤 아이디어?

BTW : 푸시 알림 프로그래밍 가이드에 넣은 링크가 이메일에서 깨져서 좋은 징조가 아닙니다.

답변:


156

사실 아주 쉽습니다. 어떤 이유로 Xcode 8에서 비활성화되었지만 Targets-> Capabilities로 이동하여 해당 뷰에서 Push Notifications가 모두 올바른지 확인하십시오. 나를 위해 클릭해야하는 "Fix Me"가 있었고, 짜잔했습니다.


4
이 문제에 대한 이상한 점은 해결책이 아니라 Xcode 7에서 이것이 활성화되었고 업그레이드 후에 비활성화되었다는 사실이었습니다.
— Unome 16. 9.

2
또한 권한 파일로 이동하여 APS 환경 값을 '프로덕션'으로 변경해야했습니다. 생성시 기본적으로 '개발'으로 설정 되었기 때문입니다.
— Bek

61
최근 애플에 고용 된 두뇌가없는 사람들이있을 텐데 .. 왜 그들은 기본적으로 사물을 비활성화하고 그것에 대해 경고없이 부적절한 값을 암시 적으로 설정함으로써 개발자들의 시간을 잃어 버리고 있습니다. 본인은 짜증나는 일을, 프로필, 인증서를 만들고 디버깅 및 한 날 잃었어요 ..
— 흐리 스토 아타나 소프

3
드디어! 작동하도록 만드는 것이 너무 어려웠습니다. 거의 5 시간 동안 인증서 / 프로필을 제거하고 다시 작성했습니다. 좋은 점은 지금이 인증서 / 프로필 / 식별자가 무엇인지 완전히 이해하고 있다고 말할 수 있다는 것입니다. :)이 힌트에 감사드립니다.
— Kamil Rykowski 16.10.16

4
@bek 당신은 아마 그것을 개발로 남겨 두어야한다는 점에 유의하십시오. iTunes Connect에 업로드하면 자동으로 프로덕션으로 변경됩니다.
— Montdidier

84

나는 또한 같은 문제가 있으며 Xcode8에서 푸시 알림이 기본적으로 꺼져 있다고 확신합니다. 나는 그것을 몰랐다. 조심하세요.

능력


내 계정에 푸시 알림 섹션이없는 이유를 말씀해 주시겠습니까?
— Anuj

28

자격이 더 이상 앱 식별자에서 나오지 않고 앱 대상에서 선택한 기능에서 오는 Xcode 8이 변경되었습니다. 따라서 Unome (OP)이 말했듯이 푸시 알림이 켜져 있는지 확인해야합니다.

저에게는 "Fix Me"버튼이 아니었지만 두 개의 인 타이틀먼트 파일이있었습니다 (하나는 개발 용이고 다른 하나는 배포 용). 푸시 알림 기능을 토글하면 aps-environment값과 함께 키 development가 개발 자격 파일에 추가되지만 배포 자격 파일에는 추가되지 않습니다. 동일한 키를 배포에 복사하면 iTunes Connect에 업로드 할 때 경고 이메일이 제거되었습니다.

대부분의 프로젝트에서 푸시 알림을 켜는 것으로 충분해야합니다. 이미 켜져 있지만 키가 권한에없는 경우 켜고 끄십시오.


이것은 내가에있어 보트, 내가 내에서 지정 상관없이 것을 제외하고 .entitlements현재 설정 / 계획에 대한 파일이 항상 사용 production은 AS aps-environment.
— Albert Bori 2016 년

기능의 푸시 알림을 토글하면 내 Xcode 8이 충돌합니다!
— 디제이

2
@AlbertBori Weird, 나는 단지 개발을 보여주기 위해 그것을 얻을 수 있었는데, 그것은 아카이브했을 때 production.
— timgcarlson

6
@meteors 값이이면 괜찮습니다 development. 프로젝트가 보관 될 때 ipa에서 변경됩니다.
— timgcarlson

2
@timgcarlson 이것은 실제로 보관 중에 발생하지 않습니다. 제출 중 또는 내보낼 때 발생합니다. 또한 유용한 정보가 제대로 여기에 설정되는 확인 : developer.apple.com/library/content/qa/qa1798/_index.html
— 마크 레너드

27

Xcode 릴리스 정보에서 :

Xcode 8은 빌드시 프로비저닝 프로파일에서 aps-environment 인 타이틀먼트를 자동으로 복사하지 않습니다. 이 동작은 의도적 인 것입니다. 이 권한을 사용하려면 프로젝트 편집기의 기능 창에서 푸시 알림을 활성화하거나 권한 파일에 권한을 수동으로 추가합니다. (28076333)

aps-environment 자격이 plist를 필요로하지 않았지만 다른 많은 사람들이 필요하다는 것이 항상 매우 이상했기 때문에 이것은 큰 변화입니다.

맹목적으로 "Fix Me"를 누르는 것을 원하지 않고 현재 인 타이틀먼트 파일이없는 경우 "Code Signing Entitlements"아래에있는 프로젝트의 빌드 설정에서 참조되는 plist 파일 일뿐입니다.


1
링크 된 노트에서 그 인용구를 찾을 수 없습니다!
— Iulian Onofrei 2016

누가 내 댓글을 올렸는지, 무엇이 잘못되었는지는 모르겠지만 지금도 찾을 수 있습니다.
— Iulian Onofrei

13

Xcode 8과의 고투 끝에 우리는 aps-environment개발이 디버그 빌드에 추가되지 않은 이유를 파악할 수 없었습니다 . 디버그 테스트를 위해 빌드 된 앱의 권한 섹션에서 누락되었습니다. 새 기능을 활성화하고 권한 파일이 존재했지만 ... 문제는 디버그 권한을위한 Xcode 빌드 설정에서 모든 SDK에 대한 권한 파일을 설정해야한다는 것입니다.

스크린 샷


후자는 특정 SDK에 대한 값을 재정의하는 데 사용되기 Debug때문에 키 값을 설정하는 것과 Debug> Any SDK하나에 대해 설정하는 것 사이에는 차이가 없다고 생각 합니다.
— Iulian Onofrei 2016

이것은 나를위한 솔루션입니다
— Himanth

아침 내내 이것으로 고생 한 후, 이것이 내가 가진 문제였습니다. 기능 전환, 프로비저닝 프로파일 생성, 아무것도 작동하지 않았습니다. 그랬다.
— Dave S

이것은 Xcode 8.3.3에서 일부 경우에 여전히 유효한 솔루션입니다
— dan

나는 이것을 백만 번 찬성 할 수 있기를 바랍니다. 나는 일주일 동안 어려움을 겪었고 이것이 해결책이었습니다. 상단의 코드 서명 권한에 파일 경로를 입력하는 것만으로는 충분하지 않았으며 "모든 SDK"부분에서도 수행해야했습니다. 이것이 나를 위해 그것을 해결하는 열쇠였습니다.
— Robert Bentley

7

XCode 7.3.1을 사용하여 Apple에서 동일한 이메일을 받았습니다. 문제를 해결하기 위해 내가 한 일은 다음과 같습니다.

  1. Capabilities> @Bruce Tsai 답변에 명시된대로 PUSH 알림을 ON으로 설정합니다.
  2. 빌드 설정> 코드 서명> 코드 서명 ID에서 이미지에 표시된대로 디버그 용 개발자 인증서와 릴리스 용 배포 인증서를 설정합니다.

여기에 이미지 설명 입력 여기에 이미지 설명 입력


안녕하세요, Capabilities에서 Capabilities> Set PUSH notification
— Anuj

@Anuj, Xcode에 있어야 할 화면 촬영을 추가했습니다.
— Ruben

5

Firebase 프레임 워크를 사용하고 있고 푸시 알림을 사용하지 않는 경우 두 가지 해결책이 있습니다. 1. 바이너리를 업로드 할 때마다 전체 팀에 전송되는 '문제'메시지를 참고하세요. 실제로 알림을 사용하지 않는 한 앱은 여전히 ​​제출로 허용되며 경고를 무시할 수 있습니다. 또는 2. 이렇게하십시오 : https://stackoverflow.com/a/46802075/7529450 . 이렇게하면 성가신 이메일 알림이 제거되고 제출로 수락됩니다.


4

자동으로 서명 관리가 해제되었습니다.

자동으로 서명 관리가 꺼져 있었고 확인하고 잘 작동했습니다.


3

Xcode 9 푸시 알림 사용이 활성화되었습니다.

푸시 알림 기능을 비활성화 / 재 활성화 해 보았습니다 . (작동하지 않음)

자동으로 서명 관리를 비활성화 / 다시 활성화 해 보았습니다 . (작동하지 않음)

프로비저닝 프로파일을 삭제하고 다시 추가해야했습니다. ( 방법은 여기 참조 ) 와드 후 자동으로 서명 관리 를 비활성화 / 다시 활성화해야 할 수 있습니다 .


2

나에게 문제는이 개 자격의 파일이 있었기 때문이었다 : Entitlements-Debug.plist와 Entitlements-Release.plist. 그리고 그중 하나 (디버그)에만 필요한 설정이 있습니다.

Build Settings> Signing> Code Signing Entitlements 의 여러 값을 단일 MyAppName/MyAppName.entitlements로 변경 한 다음 Capabilities> Push Notifications 스위처 를 다시 활성화 하면 트릭이 생겼 습니다.

도움이 되었기를 바랍니다.


0

효과가있는 또 하나의 옵션 :의 소스 AppName/Entitlements-Debug.plist를 AppName/Entitlements-Release.plist.

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