programing

앱스토어에서 애플리케이션에 대한 올바른 'aps-environment' 자격 문자열을 찾을 수 없습니다.

padding 2023. 5. 23. 21:37
반응형

앱스토어에서 애플리케이션에 대한 올바른 'aps-environment' 자격 문자열을 찾을 수 없습니다.

그래서 저는 약 한 달 전에 내놓은 Dripper라는 앱을 가지고 있습니다. 그리고 며칠 전에 업데이트를 했습니다.업데이트에는 푸시 알림과 몇 가지 수정 사항이 추가되었습니다.저는 개발 프로파일을 사용하여 샌드박스 apn으로 테스트를 해보았는데 일이 잘 진행되었습니다.그런 다음 생산용 APN으로 전환하여 시험 비행을 진행했습니다. 다시 완벽하게 작동했습니다.일단 시장에 업데이트를 하고 실행해 보니 서버에서 새로운 푸시 등록을 받지 못했습니다.장치의 콘솔 로그를 살펴보니 다음과 같습니다.

12월 4일 17:55:15 Ina-touch-it coffco [1210] : 원격알림 등록
Dec 4 17:55:15 Ina-touch-it SpringBoard [52] : 응용 프로그램 'Dripper': (null)에 대한 올바른 'aps-environment' 자격 문자열을 찾을 수 없습니다.알림이 배달되지 않습니다.
17 12월 4일 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

애드혹 빌드와 앱스토어 빌드 간에 프로덕션 apn이 동일하게 작동할 것으로 생각했기 때문에 조금 혼란스럽습니다.

다음은 제 앱 ID와 사용 권한입니다.

여기에 이미지 설명 입력

다음은 앱 스토어에 대한 프로비저닝 프로필입니다.

여기에 이미지 설명 입력

푸시 알림 기능을 활성화하여 이 문제를 해결합니다.

.xcodeproj -> Capabilities -> Push Notification 활성화를 클릭합니다.

저는 이 문제를 다음과 같이 해결했습니다.

  • Xcode "환경설정"으로 이동합니다.
  • "계정" 탭으로 이동
  • 내 Apple ID를 선택하고 "세부 정보 보기"를 클릭합니다.
  • 새로 고치려면 왼쪽 아래에 있는 화살표를 클릭하십시오.
  • 완료를 클릭합니다.

그리고 다시 해보세요!

출처:

대상 --> 기능 --> 푸시 알림을 활성화해야 합니다.저는 Xcode 8을 사용하여 이 문제에 직면했습니다.

푸시 알림 기능을 추가하기 위한 탐색 기능이 Xcode의 상위 버전에서 약간 변경되었습니다.여기서 12.2 사용

Xcode 12 알림 기능 추가 지침

이러한 문제는 프로비저닝 프로파일이 APNS 인증서를 생성하기 전에 생성되므로 현재 프로비저닝 프로파일에 APNS 정보가 포함되어 있지 않기 때문입니다.

따라서 문제를 해결하려면 새 프로비저닝 프로파일을 생성하고 Xcode에서 프로비저닝 프로파일을 선택합니다.그러면 당신은 끝입니다.

또한 푸시를 추가할 때 키체인의 인증서도 업데이트한 것으로 생각됩니다.

Xcode 9와 관련하여, 이 특정 문제를 해결하기 위한 일부 답변은 구식이거나 불완전합니다.

다음은 저를 위해 따라야 할 단계였습니다.

프로비저닝 프로파일 생성

(FCM은 푸시 알림의 전제 조건은 아니지만 가이드가 놀라울 정도로 명확합니다. 링크가 여기 있습니다.)

개발 중에 앱을 테스트하려면 앱 스토어에 아직 게시되지 않은 앱을 실행할 수 있도록 장치에 권한을 부여하는 Provisioning Profile(프로비저닝 프로파일)이 필요합니다.

  1. Apple Developer Member Center로 이동하여 로그인합니다.
  2. 인증서, 식별자 및 프로필로 이동합니다.
  3. 왼쪽 위에 있는 드롭다운 메뉴에서 iOS, TVOS, Watch를 선택합니다.OS를 아직 선택하지 않은 경우 Provisioning Profiles > All로 이동합니다.
  4. + 버튼을 클릭하여 새 프로비저닝 프로파일을 생성합니다.
  5. 프로비저닝 프로파일 유형으로 iOS App Development를 선택한 다음 계속을 클릭합니다.
  6. 드롭다운 메뉴에서 사용할 앱 ID를 선택한 다음 계속을 클릭합니다.
  7. 이전 단계에서 선택한 앱 ID의 iOS 개발 인증서를 선택한 후 계속을 클릭합니다.
  8. Provisioning Profile에 포함할 iOS 디바이스를 선택한 다음 Continue(계속)를 클릭합니다.테스트에 사용할 모든 장치를 선택해야 합니다.
  9. 이 프로비저닝 프로파일의 이름(예: Firebase Sample App Development Profile)을 입력한 다음 Generate를 클릭합니다.
  10. 다운로드를 클릭하여 프로비저닝 프로파일을 Mac에 저장합니다.
  11. Provisioning Profile 파일을 두 번 클릭하여 설치합니다.

푸시 알림 기능 활성화

  1. 공식 매뉴얼에서 프로젝트 편집기로 이동
  2. 기능 섹션에서 푸시 알림 활성화

iOS 8.0 이상 버전을 사용할 때도 동일한 문제가 발생했습니다. 장치 토큰을 받지 못했고 "응용 프로그램에 대한 유효한 'aps-environment' 자격 문자열을 찾을 수 없습니다."라는 오류가 발생했습니다.

아래 단계를 사용하여 수정했습니다.

  • 애플리케이션 ID에 대한 새 프로비저닝 프로파일을 생성했습니다.
  • 그것을 xcode에 추가했습니다.
  • 프로젝트 Xcode "환경설정"으로 이동
  • "계정" 탭으로 이동 내 Apple ID를 선택하고 "세부 정보 보기"를 클릭합니다.
  • 프로비저닝 프로파일 선택
  • 새로 고치려면 왼쪽 아래에 있는 화살표를 클릭하십시오.
  • 완료를 클릭합니다.

이제 프로젝트를 실행하면 확실히 효과가 있을 것입니다.

어떤 이유에서인지 Wei의 해결책은 나에게 효과가 없었습니다.Fix entitlements를 클릭하면 Xcode에서 두 개의 파일이 생성되었지만 여전히 작동하지 않았습니다. 실제로 생성된 entitlements 파일이 비어 있습니다.

이는 프로젝트의 PRODUCT_NAME이 공백과 "ä" 및 "ö" 문자를 포함하여 다소 길기 때문인 것으로 보입니다.영어로만 된 문자가 있는 짧은 버전으로 변경한 후 Wei의 수정은 올바르게 작동했습니다.

유효한 aps-환경 자격 오류가 발생하지 않는 원인을 파악하는 데 시간이 걸렸습니다.문제는 XCode 프로젝트에 두 개의 .itlements 파일이 있다는 것입니다.하나는 platform/ios//.entitlements이고 다른 하나는 platform/ios//Resources/.entitlements이며 적절한 사용 권한은 XCode가 후자를 사용하도록 구성된 경우에만 전자 파일에 있습니다.저는 후자의 파일을 수동으로 업데이트했고 모든 것이 작동하기 시작했습니다.이 문제를 해결하기 위한 또 다른 옵션은 XCode에서 사용되는 .entitlement를 변경하는 것입니다.이 작업은 빌드 설정 --> 서명 --> 코드 서명 권한 구성 매개 변수에서 수행할 수 있습니다.

XCode에 .entitlements 파일이 두 개 있는 이유를 모르겠습니다.코르도바 푸시 플러그인이 두 번째(하이브리드 코르도바 모바일 앱을 개발 중)를 만든 것일 수 있습니까?.entitlements 파일의 올바른 위치는 어디입니까?

저는 이 문제를 경험했고 첫 번째 해결책으로 해결했습니다.

하지만 저는 두 개의 애플 계정이 로그인되어 있었기 때문에 한 번 실패했습니다.하나를 제거한 후, 모든 것이 작동하게 되었습니다.

언급URL : https://stackoverflow.com/questions/27324020/no-valid-aps-environment-entitlement-string-found-for-application-on-app-store

반응형