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

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

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

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

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



답변

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


답변

첫 번째 앱 ID

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

그림과 같이

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

두 번째 인증서

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

App Store 및 Ad Hoc 인증서

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

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

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

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

드디어

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

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

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


답변

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

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


답변

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

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


답변

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

옵션 수정


답변

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

우리의 푸시 인증서는 최근에 만료 될 예정이므로 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 권한이 올바르게 표시되어 있어야합니다. 제출하고 완료했습니다.

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


답변

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