푸시 알림 사용 권한 누락
거절당했을 때 제출할 앱이 있는데 메시지를 받았습니다.
푸시 알림 사용 권한 누락 - 앱이 Apple 푸시 알림 서비스에 등록된 것처럼 보이지만 앱 서명의 사용 권한에 "aps-environment" 사용 권한이 포함되어 있지 않습니다.앱에서 Apple Push Notification 서비스를 사용하는 경우 Provisioning Portal에서 Push Notification에 대해 앱 ID가 활성화되었는지 확인하고 "aps-environment" 사용 권한이 포함된 배포 프로비저닝 프로필로 앱에 서명한 후 다시 제출하십시오.
애드혹 프로비저닝을 확인한 결과 aps 환경과 운영 환경을 발견했지만 배포 프로비저닝을 열어보니 찾을 수 없었습니다.
이것이 이 오류 메시지와 사과 거부의 원인인가요, 어떻게 고칠 수 있나요?
네, 그것이 앱스토어 거부의 원인입니다.애드혹 프로비저닝 프로필에 aps-환경 키가 있으면 Apple Provisioning Portal에서 앱이 올바르게 구성되었음을 의미합니다.로컬 시스템에서 App Store 배포 프로파일을 삭제한 다음 Provisioning Portal에서 배포 프로파일을 다시 다운로드하여 설치하기만 하면 됩니다.이 새 항목에는 aps-환경 키가 포함되어야 합니다.
첫 번째 앱 ID
ID 푸시 알림이 프로덕션 측에서 활성화되었는지 확인합니다.
그림과 같이
두 번째 인증서
생산 섹션에서 ID가 있는 인증서 두 개를 만듭니다(자동 알림 사용).
앱 스토어 및 애드혹 인증서
Apple 푸시 알림 서비스 SSL(Sandbox) 인증서
세 번째 프로비저닝 프로파일
배포 섹션에서 ID로 App Store 프로필 생성
마침내.
빈을 업로드하는 동안 어떤 프로비저닝 프로파일을 사용했는지 확인하고 많은 사용 권한이 있는지 확인해야 합니다.
이 모든 경우가 이 문제를 야기합니다. 이것이 당신에게 도움이 되기를 바랍니다.
XCode 8에서는 프로비저닝 및 인증서에 대한 모든 기능을 활성화하는 것 외에도 대상의 Capabilities 탭에서 푸시를 활성화해야 합니다. Xcode 8 제출 시 "aps-environment entitlement is missing app signature"
이것에 대한 제 블로그 게시물은 여기 있습니다.
저는 다른 이유로 이 메시지를 받았습니다. 저는 먼저 앱을 위한 앱 스토어 배포 프로파일을 만들지 않고 Xcode를 통해 앱을 제출했습니다.Xcode는 와일드카드 앱스토어 프로필이 설치되어 있으면 자동으로 사용된다고 생각합니다.그러나 푸시 알림을 사용하는 앱은 자체 프로필이 필요합니다.
이 문제는 앱에 대한 새 앱 스토어 배포 프로파일을 만드는 것입니다.그런 다음 다운로드하여 Xcode로 끌어다 놓고 프로젝트 빌드 설정 > 코드 서명 > 릴리스를 수정하여 새 프로필을 사용합니다.
@Vaiden이 제공한 답변에 이어 Xcode 8에서 대상을 선택하고 "Fix issue"를 클릭하여 이 문제를 해결할 수 있습니다.물론 Apple Developer 포털에서 푸시 알림을 설정해야 합니다(프로비저닝 프로필을 다운로드하는 번거로움을 덜어주는 새로운 "자동으로 서명 관리" 옵션을 사용하여 프로세스를 약간 간소화할 수 있습니다).
앱에서 푸시 알림을 실제로 사용하고 있는 이 문제가 발생한 경우:
푸시 인증서가 최근 만료될 예정이었기 때문에 Apple에서 설명한 표준 방식으로 새로운 개발/prod 푸시 인증서를 만들었습니다(여기서는 자세히 설명하지 않겠습니다. 다른 1년 동안 푸시 인증서를 업데이트할 때 웹 전체에 많은 정보가 있습니다).
그러나 그렇게 한 후에 이 질문의 문제가 발생했습니다.우리가 무엇을 하든, 우리는 앱을 제출한 후에 애플로부터 이 이메일을 받았습니다.Apple Member Center에서 배포 프로비저닝 프로파일의 설정을 확인했을 때 모든 것이 정상으로 보였습니다(prod/dev 모두에 대해 App ID에 푸시가 활성화되었으며 배포 프로비저닝 프로파일은 여전히 이 App ID에 연결되어 있으므로 표준 관행대로 말 그대로 1년 동안 새로운 푸시 인증서를 생성했습니다).
마지막으로, 이것이 저를 위한 해결책이 되었습니다.
- 앱 ID를 가리키는 새 배포 프로비저닝 프로파일 생성(현재 ID는 그대로 유지)
- Xcode에서 Settings > Accounts > 계정 선택 > Details > Refresh 아이콘을 클릭하여 프로비저닝 프로파일을 새로 고칩니다.
- 앱에 대한 사용 권한 목록 파일을 수동으로 만듭니다.
- 파일 메뉴 > 새 파일...
- iOS > 리소스 > 속성 목록 선택
- 새 파일 이름을 "foo.entitlements"(일반적으로 "foo"는 대상 이름)로 지정합니다.
- 최상위 항목을 추가하려면 "Entitlements File" 옆의 (+)을 클릭합니다(파일 확장자로 인해 속성 목록 편집기가 올바른 스키마를 사용합니다).
- 이 사용 권한 파일이 대상의 빌드 설정에서 사용되고 있는지 확인합니다(대상 > 빌드 설정 > "사용 권한" 검색, CODE_SIGN_ENTITETILES에서 방금 만든 사용 권한 파일의 경로 설정).
- 대상의 프로비저닝 프로파일/코드 서명 ID가 적절한 배포 프로비저닝 프로파일/서명 ID로 올바르게 설정되었는지 확인합니다(명백해야 함).
- 이것이 영향을 미쳤는지 100% 확신할 수 없습니다(대상 설정이 프로젝트 설정보다 우선하기 때문에 그렇게 하면 안 됩니다만, 어쨌든 저는 이렇게 했습니다). 프로젝트의 프로비저닝 프로필/서명 ID가 대상과 일치하는지 확인하십시오.
- 작성한 사용 권한 파일에서 빈 파일을 마우스 오른쪽 단추로 클릭하고 "원시 키/값 표시"를 선택합니다.
- "aps-environment"라는 새 항목을 사용 권한 파일에 추가하고 해당 값을 "production"으로 설정합니다.
- 한 가지 중요한 사항은 이전에 키체인 액세스 그룹 자격을 사용했다면 수동으로 이 권한을 수행할 때 어떤 이유로 인해 삭제되었기 때문에 여기에 해당 키를 추가하는 것입니다.값이 이전 빌드에 사용된 값과 동일한지 확인합니다(Organizer에서 이전 빌드를 찾고 앱 스토어에 제출을 시도한 후 팀을 선택하면 값을 찾을 수 있습니다).그런 다음 앱을 제출하기 전에 "(X) Entitlements" 문자열 옆의 화살표를 눌러 사용 권한을 확장하고 키체인 액세스 그룹 사용 권한의 값을 확인합니다.
- 앱을 보관하고 마지막 "제출" 버튼이 나타날 때까지 제출을 시도합니다.이제 이 앱이 회원 센터에서 만든 새 프로비저닝 프로필로 구축되었음을 확인할 수 있습니다.지금 취소합니다.
- Apple 회원 센터로 돌아가서 1단계에서 만든 새 프로비저닝 프로필을 삭제합니다.
- Xcode로 돌아가서 2단계를 반복하여 프로비저닝 프로파일 목록을 다시 새로 고칩니다.
- 이제 앱을 다시 아카이브하면 앱이 사용하려는 이전 배포 프로비저닝 프로파일로 구축되었으며 aps-환경 자격이 올바르게 부여되어 있는지 확인할 수 있습니다.제출하면 완료됩니다.
스크린샷이 있어야 하는 것만큼 상세하지 않다는 것을 알고 있습니다. 가능하면 스크린샷으로 업데이트하려고 하지만 당분간은 시간이 촉박해서 제가 했던 일의 목록을 얻고 싶었습니다.또한 제가 설명한 일부 또는 대부분의 단계가 필요하지 않을 가능성이 매우 높습니다. 제가 수행했기 때문에 최종 해결책으로 이어질 수 있기 때문에 이 단계를 여기에 두는 것입니다.
저도 같은 문제가 있었고, 제 해결책은 Target -> Capabilities에서 Push Notification 자격을 추가하는 것이었습니다.
iOS Provisioning Portal의 developer.apple.com 에서 앱 ID가 푸시 사용 가능한지 여부를 확인한 후 사용 가능하지 않으면 앱 ID에 대한 푸시 SSL 인증서를 구성하여 다운로드한 후 키 체인에 다시 설치한 다음 Xcode 라이브러리에서 배포 프로파일 설치를 다운로드합니다.
앱에서 푸시 알림을 전혀 사용하지 않았는데도 이 문제에 직면했습니다.프로비저닝 프로필을 새로 만드는 것도 저에게는 효과가 없었습니다.제가 한 일은...
1.Adhoc & App Store 전용으로 새 인증서를 만듭니다.
2. 그런 다음 이 인증서로 배포 프로파일을 만들고 프로파일을 Xcode와 통합합니다.
그런 다음 이 프로필로 새로 제출된 빌드가 아무런 경고 없이 승인되었습니다.
이 때문에 문제가 해결되었습니다. (이미 기능 켜기/끄기, 프로비저닝 프로필 다시 만들기 등을 시도했습니다.)
빌드 설정 탭의 코드 서명 권한에서 내 .entitlements 파일이 일부 섹션에 대해 링크되지 않았습니다.Any SDK 섹션에 추가하자 오류가 해결되었습니다.
Expo '이젝트된' 앱에 대한 이 문제를 해결하기 위해 기능 탭으로 이동하여 푸시를 활성화한 다음 다시 비활성화했습니다.APNS 'itlements' 설정이 .entitlements 파일에서 제거되었습니다.
이전 수동 편집으로 인해 자격 파일의 형식이 잘못되었기 때문에 이 문제가 발생했습니다.잘못된 형식의 자격 입력 구문을 제거한 다음 Capabilities 탭에서 "fix"를 클릭하면 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>
픽스 아이디어 여러분 안녕하세요 그래서 앱을 만들고 푸시 알림 기능을 사용하지 않았지만 여전히 이메일을 받았습니다.애플 개발자 포털에서 애플 스토어 연결에서 내 앱을 만들 때 사용한 번들 식별자의 인증서, ID 및 프로필을 확인한 후 푸시 알림이 켜져 있다는 것을 깨달았습니다.
해야 할 일은 다음과 같습니다.
인증서를 관리할 수 있는 애플 개발자 로그인 사이트로 이동합니다. 오른쪽에 있는 "인증서, ID 및 프로필" 탭을 선택합니다. 3. 이제 "식별자" 4. 그리고 목록에서 오른쪽 5. 이제 푸시 알림이 보일 때까지 아래로 스크롤합니다. 7. 빌드를 보관하고 Apple Store Connect에 다시 업로드합니다.
도움이 되길 바랍니다!
저의 경우에도 myapp.profile을 만들어 xcode로 수동으로 설정했는데, "show in finder"를 선택하고 inbedded.mobile provision을 찾아 aps-환경이 파일에 있는지 확인했을 때 오류가 남아 있었습니다.
그런 다음 개발자 센터에 가서 XC: myapp.profile의 상태가 올바르지 않다는 것을 발견했습니다.업데이트하고 XC: myapp.profile을 설치했더니 정상적으로 작동했습니다.
xcode가 프로파일을 관리하려고 하는 것 같고 저장할 바이너리를 제출할 때 프로비저닝 프로파일을 확인하고 정확한 프로파일인지 확인해야 합니다.그리고 다른 답변들에 따르면 그것은 다양한 이유로 발생할 수 있기 때문에 정말 짜증날 수 있습니다.
업데이트:
다운로드한 프로필로 서명하고 확인한 후aps-environment
당신이 굴복하려고 할 때 거기에 있었습니다.App Store
프로파일과 코드 서명 엔티티를 자동으로 변경할 수 있어야 합니다.iOS Developer
Xcode 7에서 개선될 수 있기를 바랍니다.
활성화한 후 가장 큰 문제는Push Notification
부터Capabilities
그리고 모든 인증서를 다시 만드는 것은 프로젝트가 저장된 대상 이름과 폴더 이름이 공백으로 구분된 2개의 문자열로 구성되었다는 것입니다.공간을 제거한 후 모든 것이 잘 작동했습니다!
여기에 정말 좋은 제안들이 있습니다.
미나가 마지막으로 제공한 스크린샷을 참조하여, 처음에 내 앱을 보관한 후 업로드 시 언급된 프로비저닝 프로필에 와일드카드(XC.*)가 포함되어 있었습니다.이는 잘못되었다.
이것을 해결하기 위해서는 상당한 노력이 필요했습니다.저는 사이먼 우드사이드와 미나 파우지가 제공한 제안을 조합하여 수행해야 했습니다.
프로젝트와 관련된 기존 인증서 및 프로비저닝 프로필이 있는 경우 지금이 로컬에서 모두 제거하고 원격으로 취소할 수 있는 좋은 기회입니다.당신 자신에게 새로운 출발을 하세요.
미나 파우지의 자세한 제안은 훌륭합니다.미나의 제안을 올바르게 수행한다면, 온라인에서 여러분을 돌봐야 합니다.
사이먼의 제안을 입력합니다.프로젝트 내부에서 확인해야 할 두 가지 사항.XCode를 사용하여 다음 위치로 이동합니다.
프로젝트 -> 빌드 설정 -> 코드 서명
코드 서명 ID 및 프로비저닝 프로파일 속성을 검토합니다.이 두 가지 속성을 프로젝트 이름의 속성으로 설정해야 합니다.XCode가 자동으로 선택하도록 허용하지 않으며 일부 일반 코드 서명 ID(예: Iphone Developer)를 사용하지 마십시오.
보관을 결정하기 전에 실제로 장치에 앱을 설치할 수 있는지 확인합니다.
제 앱의 배포 프로파일이 만료되어 갑자기 이런 일이 발생했습니다.Xcode는 푸시 알림 자격이 활성화되지 않은 와일드카드 프로필을 대신 사용하기 시작했습니다.저는 어떤 경고도 받지 못했습니다.수정은 쉬웠습니다. 저는 애플 개발자 회원 센터에서 제 앱에 대한 다른 배포 프로파일을 생성하고 다운로드한 후 두 번 클릭하여 Xcode에 설치해야 했습니다.
언급URL : https://stackoverflow.com/questions/14807129/missing-push-notification-entitlement
'programing' 카테고리의 다른 글
Gitbash 오류: 하위 프로세스를 포크할 수 없습니다.사용 가능한 터미널이 없습니다(-1). (0) | 2023.07.15 |
---|---|
MariaDB JSON 제약 조건 추가 방법 (0) | 2023.07.15 |
작업 공간에서 몇 가지 특정 개체만 지우려면 어떻게 해야 합니까? (0) | 2023.07.15 |
SQL Server 결과 집합을 문자열로 변환 (0) | 2023.07.15 |
평균 시간 간격은 어떻게 합니까? (0) | 2023.07.15 |