앱 스토어의 애플리케이션에 유효한 'aps-environment'자격 문자열이 없습니다.


103

그래서 저는 약 한 달 전에 발표 한 Dripper라는 앱이 있고 며칠 전에 업데이트되었습니다. 업데이트는 푸시 알림과 약간의 조정을 추가했습니다. 개발 프로필을 사용하여 sandbox-apn으로 테스트했으며 모든 것이 잘 작동했습니다. 그런 다음 프로덕션 APN으로 전환하고 테스트 비행으로 푸시했는데 다시 완벽하게 작동했습니다. 시장에 업데이트를 게시하고 실행 한 후 서버에서 새로운 푸시 등록을받지 못하는 것을 알았습니다. 장치의 콘솔 로그를 살펴본 결과 다음을 발견했습니다.

12 월 4 일 17:55:15 Ina-touch-it coffco [1210] : 원격 알림 등록
12 월 4 일 17:55:15 Ina-touch-it SpringBoard [52] : 애플리케이션에 유효한 'aps-environment'자격 문자열이 없습니다. 'Dripper': (null). 알림이 전달되지 않습니다.
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와 권한-> http://i.stack.imgur.com/uf4pB.png

다음은 앱 스토어의 프로비저닝 프로파일입니다-> http://i.stack.imgur.com/AYOV5.png


여기 서명 및 업로드되는 -> i.stack.imgur.com/AziCI.png의 빌드 설정 -> i.stack.imgur.com/j2TFG.png
Jessiah

답변:


282

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

.xcodeproj-> 기능-> 푸시 알림 활성화를 클릭하십시오.


15
XCode 8에서이 섹션에서 권한 파일을 추가해야한다는 오류를 보았습니다. 나는 이것을 수정하기 위해 이것을 클릭 한 다음 정상적으로 작동했습니다.
Pellet

Xcode 8에서 개발을 시작할 때 최근에야 나타 났고이 문제가 해결되었습니다. 감사!
Kody R.

이전에 Xcode 7.3에서 작업했지만 갑자기 Xcode 8에 등록하지 않았지만 푸시 알림 기능을 활성화하여 문제를 해결했습니다.
비 노드 라 토드

Apple은이 옵션을 Xcode 8.1 깊숙한 곳에서 숨기기로 결정했습니다. 누구든지 찾을 수 있으면 알려주세요.
토마스 세바스찬

기능 목록에서 "푸시 알림"옵션을 얻지 못했습니다. XCode가 내 프로비저닝 프로필을 자동으로 생성한다는 사실과 관련이 있습니다 (iOS 개발자가 처음이므로 틀릴 수 있습니다 ...). 기능 목록에 푸시 알림이 표시되기 전에 개발자 계정에 로그인하고 내 앱에 대한 프로비저닝 프로필을 수동으로 만들어야했습니다. 마지막으로 활성화하면이 문제가 해결되었습니다.
Max Mumford

103

이 문제를 다음과 같이 수정했습니다.

  • Xcode "기본 설정"으로 이동
  • "계정"탭으로 이동
  • 내 Apple ID를 선택하고 "세부 정보보기"를 클릭합니다.
  • 새로 고침하려면 왼쪽 하단의 화살표를 클릭하세요.
  • "완료"를 클릭하십시오.

그리고 다시 시도하십시오!

출처:


6
그런 다음 빌드 설정에서 올바른 프로비저닝 프로파일을 선택해야합니다
Hashem Aboonajmi

2
제 경우에는 개발 센터에서 프로비저닝 프로파일을 다시 생성해야했습니다. 그런 다음 Xcode> 환경 설정> 계정> Apple ID> 오른쪽 모서리에있는 세부 정보보기 버튼> 모두 다운로드 버튼을 통해 모든 프로필과 인증서를 다시 다운로드합니다. 그 후에 다시 작동합니다.
blackjacx

2
푸시 및 배포 과정에서 너무 많은 결함이 있다는 것이 슬프다. 내가 이것을 견딜 수있는 유일한 방법은 모든 것을 수동으로 100 % 수행하고 Xcode가 무엇을 하려는지 알고 파일 시스템과 iPhone 구성 유틸리티를 통해 키 체인 ID 및 프로비저닝 프로파일을 관리하는 것입니다.
Tom Pace

57

Target—> 기능 —> 푸시 알림을 활성화해야합니다. Xcode 8을 사용하여이 문제에 직면했습니다.여기에 이미지 설명 입력


18

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

따라서 문제를 해결하려면 새 프로비저닝 프로파일을 생성하고 Xcode에서 프로비저닝 프로파일을 선택하십시오. 그러면 완료됩니다.

또한 푸시를 추가하면 키 체인의 인증서도 업데이트 한 것 같습니다.


사용중인 프로필은 프로덕션 푸시 apn에 대한 인증서를 만든 후에 생성되었습니다. apns 정보가 없거나 포함되어 있는지 확인하기 위해 할 수있는 일이 있습니까?
Jessiah 2014-12-05

@Jessiah : 아니요 .. 애플이 제공하는 발자취를 따라야하는 것 같아요.
파힘 Parkar

6

Xcode 9와 관련하여 일부 답변은이 특정 문제를 해결하기 위해 오래되었거나 불완전합니다.

나를 위해 따라야 할 단계는 다음과 같습니다.

1. 프로비저닝 프로필 생성

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

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

  1. Apple Developer Member Center로 이동하여 로그인합니다.
  2. 인증서, 식별자 및 프로필로 이동합니다.
  3. 왼쪽 상단 모서리에있는 드롭 다운 메뉴에서 iOS, tvOS, watchOS가 아직 선택되지 않은 경우 선택하고 프로비저닝 프로파일> 모두로 이동합니다.
  4. + 버튼을 클릭하여 새 프로비저닝 프로필을 만듭니다.
  5. 프로비저닝 프로파일 유형으로 iOS 앱 개발을 선택한 다음 계속을 클릭하십시오.
  6. 드롭 다운 메뉴에서 사용하려는 앱 ID를 선택한 다음 계속을 클릭합니다.
  7. 이전 단계에서 선택한 앱 ID의 iOS 개발 인증서를 선택한 다음 계속을 클릭합니다.
  8. 프로비저닝 프로파일에 포함 할 iOS 기기를 선택한 다음 계속을 클릭합니다. 테스트에 사용할 모든 장치를 선택해야합니다.
  9. 이 프로비저닝 프로필의 이름 (예 : Firebase 샘플 앱 개발 프로필)을 입력 한 다음 생성을 클릭합니다.
  10. 다운로드를 클릭하여 프로비저닝 프로파일을 Mac에 저장합니다.
  11. 프로비저닝 프로필 파일을 두 번 클릭하여 설치합니다.

2. 푸시 알림 기능 활성화

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

4

iOS 8.0 이상 버전을 사용하여 동일한 문제가 발생했습니다. 장치 토큰을받지 못했고 "응용 프로그램에 유효한 'aps-environment'자격 문자열이 없습니다."라는 오류 메시지가 표시되었습니다.

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

  • 앱 ID에 대한 새 프로비저닝 프로필을 만들었습니다.
  • xcode에 추가
  • 프로젝트 Xcode "기본 설정"으로 이동
  • "계정"탭으로 이동하여 내 Apple ID를 선택하고 "세부 정보보기"를 클릭합니다.
  • 프로비저닝 프로필 선택
  • 새로 고침하려면 왼쪽 하단의 화살표를 클릭하세요.
  • "완료"를 클릭하십시오.

이제 프로젝트를 실행하면 제대로 작동합니다.


3

어떤 이유로 Wei의 솔루션이 저에게 효과가 없었습니다. 권한 수정을 클릭 할 때 Xcode는 두 개의 파일을 생성했지만 여전히 작동하지 않았습니다. 실제로 생성 된 권한 파일은 비어있었습니다.

이것은 (분명히) 프로젝트의 PRODUCT_NAME이 다소 길고 공백과 "ä"및 "ö"문자를 포함하여 발생했습니다. 영어로만 된 짧은 버전으로 변경 한 후 Wei의 수정이 올바르게 작동했습니다.


1

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

XCode에 왜 두 개의 .entitlements 파일이 있는지 잘 모르겠습니다. 코르도바 푸시 플러그인이 두 번째 플러그인을 만들었 을까요 (하이브리드 코르도바 모바일 앱을 개발 중입니다)? .entitlements 파일의 올바른 위치는 무엇입니까?


-1

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

그러나 두 개의 애플 계정이 로그인되어있어 한 번 실패했습니다. 하나를 제거한 후 모든 것이 작동했습니다.

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