푸시 알림 권한이 없습니다.


126

제출이 거부되었을 때 제출할 앱이 있는데 메시지가 표시됩니다.

누락 된 푸시 알림 권한-앱이 Apple 푸시 알림 서비스에 등록 된 것으로 보이지만 앱 서명의 권한에는 "aps-environment"권한이 포함되어 있지 않습니다. 앱이 Apple 푸시 알림 서비스를 사용하는 경우 프로비저닝 포털에서 앱 ID가 푸시 알림에 대해 활성화되어 있는지 확인하고 "aps-environment"권한이 포함 된 배포 프로비저닝 프로파일로 앱에 서명 한 후 다시 제출하십시오.

Ad-hoc provisiong를 확인한 후 aps-environment 및 production을 찾았지만 배포 프로비저닝을 열면 찾지 못했습니다.

이것이이 오류 메시지 및 사과 거부의 원인입니까? 어떻게 해결할 수 있습니까?

답변:


80

그렇습니다. 이것이 App Store 거부의 원인입니다. 임시 프로비저닝 프로파일에 aps-environment 키가있는 경우 이는 Apple Provisioning Portal에서 앱이 올바르게 구성되었음을 의미합니다. 로컬 컴퓨터에서 App Store 배포 프로파일을 삭제 한 다음 프로비저닝 포털에서 배포 프로파일을 다시 다운로드하여 설치하기 만하면됩니다. 이 새로운 것은 aps-environment 키를 포함해야합니다.


안개를 좀 더 없애기 위해 "배포 프로파일에는 반드시 aps 환경 등이 있어야합니다."라고 말하고 텍스트 편집기에서 프로비저닝을 열면 그 위치에 누워 있어야합니다.
mirageservo

특히 배포 프로파일에서 무언가를 변경 한 경우 새 SSL 인증서를 생성해야합니까?
mirageservo

2
아니요, 새로운 개발자 인증서가 필요하지 않습니다. 푸시 알림 배포를 활성화 한 경우 (임시 프로파일에 aps-environment 키가 있으므로 일정 시점에 수행해야 함) iTunes 프로비저닝 포털은 aps-environment 키가 포함 된 새로운 App Store 배포 프로파일을 생성합니다. 최신 버전을 다운로드하여 설치했을 것입니다.
tom

이 질문 전에 한 가지 더 은하계에 도달했습니다. 프로젝트 빌드 설정에 변경 사항이 있거나 재 컴파일을 방해하지 않고 앱을 직접 배포 할 수 있기 때문에 ipa를 다시 컴파일 (다시 아카이브)해야합니까?
mirageservo 2013

다시 아카이브해야합니다. 앱과 관련된 프로비저닝 프로파일이 .ipa에 포함됩니다.
tom

43

첫 번째 앱 ID

프로덕션 측에서 ID 푸시 알림을 활성화해야합니다

그림과 같이

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

두 번째 인증서

프로덕션 섹션에서 ID로 두 개의 인증서를 만듭니다 (푸시 알림 사용)

App Store 및 Ad Hoc 인증서

Apple 푸시 알림 서비스 SSL (샌드 박스) 인증서

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

세 번째 프로비저닝 프로파일

배포 섹션에서 ID를 사용하여 App Store 프로파일을 작성 하십시오.

드디어

저장소를 업로드하는 동안 어떤 프로비저닝 프로파일이 사용되었으며 많은 권한이 있는지 확인해야합니다.

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

이 모든 경우 에이 문제가 발생하면 이것이 도움이되기를 바랍니다.


1
이것이 내가 놓친 것입니다. 푸시 알림과 함께 앱 ID를 사용하여 애플 개발자 사이트에서 새로운 프로비저닝 프로파일을 만들어야했습니다. 새로운 프로비저닝 프로파일을 통해 마침내 aps-environment 권한이 내 앱에 추가되었습니다. 감사합니다!
M. Luisa Carrión

38

XCode 8에서는 규정 및 인증서의 모든 항목을 활성화하는 것 외에 대상의 기능 탭에서 푸시를 활성화해야합니다. Xcode 8 "제출시 aps 환경 권한이 앱의 서명에서 누락되었습니다"

여기 에 대한 내 블로그 게시물 .


8
이것은 고전적인 애플입니다. 빌드를 제출한지 2 시간 후에 그들은 내가 해결 한 이후 (개발 포털에서 푸시 알림 응용 프로그램 서비스를 사용하도록 설정 한) 문제에 대한 오류 메시지를 보내고 404에 대한 링크와 함께 설명됩니다. 문제는 새로운 버전의 소프트웨어로 업그레이드 할 때 설정이 마이그레이션되지 않았다는 것입니다 (내가 잠겨 있습니다). 어.
렘브란트 Q. 아인슈타인

3
같은 이야기입니다. 우리는 오류 메시지를 Apple 버그로 거의 기각했습니다.
Vaiden

23

다른 이유로이 메시지를 받았습니다. 먼저 앱 전용 App Store 배포 프로파일을 만들지 않고 Xcode를 통해 앱을 제출했습니다. Xcode가 설치되어 있으면 Xcode가 자동으로 와일드 카드 App Store 프로필을 사용한다고 생각합니다. 그러나 앱은 푸시 알림을 사용하므로 자체 프로필이 필요합니다.

해결 방법은 앱에 대한 새로운 App Store Distribution 프로파일을 작성하는 것입니다. 그런 다음 다운로드하여 Xcode로 끌어서 새 프로파일을 사용하도록 프로젝트 빌드 설정> 코드 서명> 릴리스를 수정하십시오.


11

@Vaiden의 답변에 이어 Xcode 8에서는 대상을 선택하고 "문제 수정"을 클릭하여이 문제를 해결할 수 있습니다. 물론 Apple 개발자 포털 에서 푸시 알림을 설정해야 합니다. 새로운 "서명 자동 관리"옵션을 사용하면 프로세스를 약간 단순화 할 수있어 프로비저닝 프로파일을 다운로드하는 번거 로움을 줄일 수 있습니다.

옵션 수정


8

실제로 앱에서 푸시 알림을 사용하는이 문제가 발생하는 경우 :

우리의 푸시 인증서는 최근에 만료 될 예정이므로 Apple에서 제시 한 표준 방식으로 새로운 dev / prod 푸시 인증서를 만들었습니다. (여기에 대해서는 자세히 설명하지 않겠습니다. 업데이트 할 때 웹 전체에 많은 정보가 있습니다. 다른 사용 연도에 대한 푸시 인증서).

그러나 그렇게하면이 질문의 문제가 나타납니다. 우리가 무엇을하든 우리는 앱을 제출 한 후 Apple로부터이 이메일을 받았습니다. Apple 멤버 센터에서 배포 프로비저닝 프로파일의 설정을 확인했을 때 모든 것이 잘 보였습니다 (prod / dev 모두에 대한 App ID에 대해 푸시가 활성화되었으며 배포 프로비저닝 프로파일이 여전히이 App ID에 연결되어 있으므로 문자 그대로 만들었습니다) 표준 관행에 따라 다른 연도의 새 푸시 인증서).

마지막으로, 이것이 나를 위해 해결 한 것입니다.

  1. 앱 ID를 가리키는 새 배포 프로비저닝 프로파일 생성 (현재는 그대로 유지)
  2. Xcode에서 설정> 계정> 계정 선택> 세부 사항> 새로 고침 아이콘을 클릭하여 프로비저닝 프로파일을 새로 고치십시오.
  3. 앱에 대한 자격 plist 파일을 수동으로 작성하십시오.
    • 파일 메뉴> 새 파일 ...
    • iOS> 리소스> 속성 목록을 선택하십시오.
    • 새 파일의 이름을 "foo.entitlements"로 지정하십시오 (일반적으로 "foo"는 대상 이름입니다).
    • "자격 파일"옆에있는 +를 클릭하여 최상위 항목을 추가하십시오 (파일 확장자로 인해 특성 목록 편집기가 올바른 스키마를 사용함)
  4. 이 인 타이틀먼트 파일이 대상의 빌드 설정에서 사용되고 있는지 확인하십시오 (타겟> 빌드 설정> "타이틀먼트"검색, CODE_SIGN_ENTITLEMENTS에서 방금 만든 인 타이틀먼트 파일의 경로 설정)
  5. 대상의 프로비저닝 프로파일 / 코드 서명 ID가 적절한 분배 프로비저닝 프로파일 / 서명 ID로 올바르게 설정되어 있는지 확인하십시오 (확실해야합니다).
  6. 이것이 영향을 받았는지 100 % 확신하지 못합니다 (대상 설정이 프로젝트 설정보다 우선하지 않아야하지만 어쨌든이 작업을 수행 했음) 프로젝트의 프로비저닝 프로파일 / 서명 ID가 대상의 프로파일과 일치하는지 확인하십시오
  7. 생성 한 인 타이틀먼트 파일에서 빈 파일을 마우스 오른쪽 버튼으로 클릭하고 "원시 키 / 값 표시"를 선택하십시오.
  8. "aps-environment"라는 권한 파일에 새 항목을 추가하고 값을 "production"으로 설정하십시오.
  9. 한 가지 중요한 점은, 이전에 keychain-access-groups 인 타이틀먼트를 사용하고 있었다면, 수동으로 할 때 어떤 이유로 키가 지워졌 기 때문에 여기에 해당 키를 추가하고 싶을 것입니다. 값이 이전 빌드에서 사용 된 값과 동일한 지 확인하십시오. Organizer에서 이전 빌드를 찾아 앱 스토어에 제출하려고 시도하고 팀을 선택한 다음 앱을 제출하기 전에 앱 옆에있는 화살표를 탭하여 값을 찾을 수 있습니다. "(X) 인 타이틀먼트"문자열로 인 타이틀먼트를 확장하고 키 체인 액세스 그룹 인 타이틀먼트의 값을 확인하십시오.
  10. 앱을 보관하고 최종 "제출"버튼이 표시 될 때까지 앱을 제출하십시오. 이제이 앱이 멤버 센터에서 생성 한 새로운 프로비저닝 프로파일로 구축 된 것을 확인할 수 있습니다. 지금 취소하십시오.
  11. Apple 회원 센터로 돌아가서 1 단계에서 생성 한 새로운 프로비저닝 프로파일을 삭제하십시오.
  12. Xcode로 돌아가서 2 단계를 반복하여 프로비저닝 프로파일 목록을 다시 한 번 새로 고치십시오.
  13. 이제 앱을 다시 아카이브하면 앱이 사용하려는 이전 배포 프로비저닝 프로파일로 빌드되었으며 aps-environment 권한이 올바르게 표시되어 있어야합니다. 제출하고 완료했습니다.

나는 이것이 스크린 샷을 가져야하는 것만 큼 자세하지는 않다는 것을 알고 있습니다. 가능한 한 스크린 샷으로 업데이트하려고 시도하지만 당분간은 시간이 지남에 따라 내가 거기서 한 일. 내가 설명 한 단계 중 일부 또는 대부분이 필요하지 않을 가능성이 매우 높습니다. 내가 수행했기 때문에 여기에 배치하고 최종 솔루션으로 이어질 수 있습니다.


감사합니다. 저를위한 # 8은 개발로 설정되었으며, 이는 우리의 문제 일 수 있습니다.
ingage

감사합니다.이 번거 로움에 하루 종일 낭비했습니다. # 4 단계는 문제였습니다. 어떤 이유로 CODE_SIGN_ENTITLEMENTS를 지정하지 않으면 앱 스토어 업로드에서만 권한이 무시됩니다.
Mark Kazakov

5

iOS 프로비저닝 포털의 developer.apple.com에서 앱 ID가 푸시 사용인지 확인하십시오. 활성화하지 않은 경우 앱 ID에 대한 푸시 SSL 인증서를 구성하고 키 체인에 다시 설치 한 다음 다시 배포 프로파일 설치를 다운로드하십시오. Xcode 라이브러리에서


4

내 앱 에서 푸시 알림을 전혀 사용하지 않더라도이 문제에 직면했습니다. 새로운 프로비저닝 프로파일을 만들면 나에게 도움이되지 않았습니다.

1. Ad Hoc & App Store 전용의 새 인증서를 새로 만듭니다.

2.이 인증서로 배포 프로필을 만들고 Xcode와 프로필을 통합하십시오.

그런 다음 경고없이이 프로파일로 승인 된 빌드를 새로 제출했습니다.


2
나는 이것을 시도했다-도움이되지 않았다. 여전히 누락 된 푸시 알림을 받고 있습니다 .. 푸시 알림을 사용하지 않습니다!
Adam

2

필자의 경우 myapp.profile을 작성하여 수동으로 xcode로 설정했으며 "show in finder"를 선택하고 embedded.mobileprovision을 찾은 후 aps-environment가 파일에 있는지 확인하면 오류가 발생했습니다. 여전히 거기.

그런 다음 개발자 센터로 가서 XC : myapp.profile의 상태가 유효하지 않다는 것을 알았습니다. 나는 그것을 업데이트하고 XC를 설치했다 : myapp.profile 그리고 그것은 잘 작동했다.

xcode가 프로파일을 관리하려고한다고 생각하며 바이너리를 저장하기 위해 제출할 때 프로비저닝 프로파일을 확인하고 올바른지 확인해야합니다. 그리고 다른 답변에 따르면 여러 가지 이유로 발생할 수 있으므로 실제로 성 가실 수 있습니다.

최신 정보:

다운로드 한 프로필로 서명하고 aps-environment에 제출하려고 할 때 확인 App Store했으면 프로필 및 코드 서명 엔터티를 자동 및로 변경할 수 있습니다 iOS Developer. Xcode 7에서 개선 될 수 있기를 바랍니다.


모든 프로필과 XC를 확인했습니다 : 프로필이 업데이트되었으며 ASP 환경 키가 포함되어 있지 않지만 여전히 동일한 문제가 반복됩니다. 도움을 주시면 감사하겠습니다. 그리고 네, 응용 프로그램에서 구현 된 푸시 알림이 필요하지 않습니다
iOSDev

프로비저닝 프로파일의 이진 컨텐츠를 확인하고 "aps-environment"문자열이 내부에 있는지 확인하십시오. 내부에 있으면 제거 할 수있는 방법을 찾아야합니다. 그렇지 않으면 앱에 서명 한 프로필인지 확인해야합니다. 어느 쪽이든 문제가 있어야합니다.
superarts.org 1

1
나는 그것을 두 번 확인하고 더 많은 것을 찾으려고 노력하지만 운이 없다. 그런 문자열은 없지만 2 일간의 검색과 시도 후에이 문제가 내 코드가 아닌 Xcode 7 베타와 일치한다는 한 가지를 얻었습니다.) Xcode 6.4를 통한 동일한 빌드가 완벽하게 작동하며 Apple에서 보낸 전자 메일이 없습니다 문제는 코드 또는 프로필이 아닌 Xcode 7 베타 4에 관한 문제입니다.
iOSDev

2

이것이 나를 위해 고친 것입니다. (이미 기능 켜기 / 끄기, 프로비저닝 프로파일 등을 다시 만들려고 시도했습니다).

에서 빌드 설정 탭에서 코드 서명 인 타이틀먼트 , 내 .entitlements의 파일은 모든 섹션에 대한 링크를하지 않았다. Any SDK 섹션에 추가하면 오류가 해결되었습니다.

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


2

엑스포 '배출 된'앱에서이 문제를 해결하려면 기능 탭으로 이동하여 푸시를 활성화 한 다음 다시 비활성화했습니다. .entitlements 파일에서 APNS 'entitlements'설정이 제거되었습니다.


에이 시도 내 "배출"프로젝트,하지만 여전히 나는이 알림을 받고 있어요
webdevbyjoss

1

나는 같은 문제가 있었고 해결책은 Target-> Capabilities에서 푸시 알림 권한을 추가하는 것이 었습니다.


0

내 앱의 배포 프로필이 만료되어 갑자기 발생했습니다. Xcode는 대신 와일드 카드 프로파일을 사용하기 시작했으며, 푸시 알림 권한이 활성화되지 않았습니다. 경고를받지 못했습니다. 수정은 쉬웠다; Apple Developer Member Center에서 내 앱의 다른 배포 프로파일을 생성하고 다운로드 한 다음 두 번 클릭하여 Xcode에 설치해야했습니다.


0

여기에 정말 좋은 제안이 있습니다.

Mina가 제공 한 마지막 스크린 샷을 참조하면, 내 앱을 처음 아카이브 한 후 업로드 중에 언급 된 프로비저닝 프로파일에 와일드 카드 (XC. *)가 포함되었습니다. 이것은 잘못이다.

이 문제를 해결하려면 상당한 노력이 필요했습니다. Simon Woodside & Mina Fawzy가 제안한 제안을 조합하여 수행해야했습니다.

프로젝트와 관련된 기존 인증서 및 프로비저닝 프로파일이있는 경우 이제 로컬에서 모두 제거하고 원격으로 취소 할 수 있습니다. 새로운 출발을하십시오.

Mina Fawzy의 자세한 제안은 훌륭합니다. 올바르게 수행하면 미나의 제안을 수행하면 온라인에서주의를 기울여야합니다.

시몬의 제안을 입력하십시오. 프로젝트 내부에서 확인해야 할 두 가지가 있습니다. XCode를 사용하여 여기로 이동하십시오.

프로젝트-> 건물 설정-> 코드 서명

코드 서명 ID프로비저닝 프로파일 특성을 검토하십시오 . 이 두 속성을 프로젝트 이름의 속성으로 설정하십시오. XCode가 자동으로 선택하도록 허용하지 않으며 일반적인 코드 서명 ID (예 : Iphone Developer)를 사용하지 마십시오.

보관하기로 결정하기 전에 실제로 기기에 앱을 설치할 수 있는지 확인하십시오.


0

가장 큰 문제는 내가 활성화 한 후 가지고 Push Notification에서 Capabilities모든 인증서를 리메이크이다 대상 이름폴더 이름 이 프로젝트는 두 문자열에서 구성되었다 저장된 공백으로 구분. 공간을 제거한 후 모든 것이 잘 작동했습니다!


1
내 응용 프로그램은 푸시 알림을 사용하지 않지만 여전히 사과 에서이 경고를 받고 있습니다. 제안하십시오
Chandni

0

이전 수동 편집으로 인해 자격 파일이 잘못되어이 문제가 발생했습니다. 형식이 잘못된 자격 항목 구문을 제거한 다음 기능 탭에서 "수정"을 클릭하면 Xcode가 자격을 내 파일에 추가했습니다.

올바른 형식의 인 타이틀먼트 파일 ( " Runner.entitlements") 의 예는 다음과 같습니다 .

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.applesignin</key>
    <array>
        <string>Default</string>
    </array>
</dict>
</plist>

0

FIX IDEA 안녕하세요, 앱을 만들었고 푸시 알림 기능을 사용하지 않았지만 여전히 이메일을 받았습니다. 애플 스토어에서 내 앱을 만드는 데 사용한 번들 식별자의 인증서, ID 및 프로파일을 확인한 후 애플 개발자 포털의 푸시 알림이 켜져 있음을 깨달았습니다.

당신이해야 할 일은 :

인증서를 관리 할 수있는 Apple 개발자 로그인 사이트로 이동하십시오. 2. 오른쪽에서 "인증서, ID 및 프로파일"탭을 선택하십시오. 3. 이제 "식별자"를 선택하십시오. 4. 목록에서 오른쪽으로 번들 ID를 선택하십시오. 5. 푸시 알림이 표시 될 때까지 아래로 스크롤합니다. 6. 알림을 끕니다. 7. 빌드를 보관하고 Apple Store Connect에 다시 업로드합니다.

그것이 도움이되기를 바랍니다!

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