응용 프로그램에 유효한 'aps-environment'자격 문자열이 없습니다.


83

푸시 알림을 지원하도록 앱을 구성하려고하는데 계속이 오류가 발생합니다. 토큰을 가져 오지 못했습니다. 오류 : Error Domain = NSCocoaErrorDomain Code = 3000 "응용 프로그램에 대한 유효한 'aps-environment'자격 문자열이 없습니다."UserInfo = 0x1f818fc0 { NSLocalizedDescription = 애플리케이션에 유효한 'aps-environment'자격 문자열이 없습니다.}

  • 내 앱이 푸시 알림을 지원하도록 설정했습니다 (현재 개발 용으로 만 해당).
  • 푸시 알림을 활성화 한 후 프로비저닝 프로파일을 만들었습니다.
  • 내 번들 식별자는 프로필에 표시된 것과 동일합니다.
  • 내 프로필 파일에는 aps-environment 문자열이 있습니다.
  • "코드 서명 ID"섹션 아래의 프로젝트와 대상 모두에서 모든 값이 내 프로비저닝 프로필로 선택되었는지 확인했습니다.

더 많은 아이디어가 있습니까? 감사.


이것에 대한 통찰력이 없습니까? 많은 사람들이 만날 수있는 것 같습니다 ...
bashan

답변:


64

제 경우에는 프로비저닝 프로필의 내용이 다음과 같습니다.

security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision 
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>

실제로 빌드 된 앱의 항목과 달랐습니다 (Xcode의 로그 탭에서 빌드 된 위치를 확인할 수 있음).

codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
    <key>application-identifier</key>
    <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    </array>
</dict>

이것은 사실이었다 하더라도 하여 올바른 프로비저닝 프로파일을 나타내는 한 신원 서명 코드에서 힌트 텍스트 "현재 일치"- 이상한, 허? 이상한 이야기를 더 이상하게 만들기 위해, 내가 실행할 때 올바른 프로비저닝 프로파일이 장치에 설치되었고 (설정-> 일반-> 프로필) 프로비저닝 프로파일이 옳다고 믿게되었지만 와일드 카드 ID로 되돌아갔습니다. 앱이 실제로 시작 되었을 때 .

단서는 다음 두 명령의 출력 차이였습니다.

Y2X6Z7Z2GR .com.dca. spolsky-iosP5GM95Q9VV .com.dca. Spolsky

굵게 표시된 부분을 일치 시켰을 때 기울임 꼴 부분이 자동으로 일치하도록 변경되었습니다. 또한 보안 및 코드 서명의 출력이 일치했으며 더 이상 aps-entitlement 오류가 없습니다.

내 생각 엔 XCode가 내 비 와일드 카드 ID에 와일드 카드 스타일 일치를 사용하고 있다는 것입니다. ( "spolsky"는 결국 "spolsky-ios"에 가깝습니다.) 이것은 "Currently Matches"출력을 설명합니다. 그러나 빌드 체인의 무언가는 이에 대해 더 엄격하므로 빌드 중에 실제 와일드 카드 ID로 대체됩니다.


7
비슷한 문제가 발생했습니다. 프로젝트 '빌드 설정'이 TARGET '빌드 설정'과 달랐습니다. 제 경우에는 대상 설정이 잘못된 프로비저닝 프로파일로 기본 설정되었습니다.
Rob

1
이것을 발견하는 소품, 나는 같은 문제에 직면했습니다.
Codemonk 2013 년

1
동료 중 한 명이이 프로비저닝 문제를 겪었습니다. 그러나 Xcode의 프로필 설정으로 이동하여 인증서 / 프로비저닝 키 목록을 새로 고친 후에 만 ​​와일드 카드가 아닌 프로비저닝 키를 선택할 수있었습니다.
cbh2000 2013

1
'디버그'에 대한 내 대상 설정은 iOS 개발자 / 자동을 사용하여 내 .app이 잘못된 코드 서명 ID와 함께 나오게했습니다. 새 코드 서명 ID를 사용하려면 디버그 및 릴리스 모두에 대한 프로젝트 및 대상 설정을 명시 적으로 설정해야했는데 문제가 해결되었습니다. 프로 비전 프로필뿐만 아니라 코드 서명 ID도 확인해야합니다. 이 멋진 터미널 명령 없이는 해결할 수 없었습니다!
self.name

6
기록을 위해 : 푸시 알림이 작동 하려면 * 와일드 카드가 아닌 앱의 번들 ID가 있는 특정 프로비저닝 프로필 을 사용해야합니다 .
mgarciaisaia

37

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

따라서 문제를 해결하려면 새 프로비저닝 프로파일을 만들고 Xcode에서 프로비저닝 프로파일을 선택하면 오류가 해결됩니다.


그것은 나를 위해 일하지 않았습니다. 다른 모든 포인터. 이것 좀 봐주세요 : stackoverflow.com/questions/25679750/…
Ajeet

29

푸시 알림이 이미 내 장치에서 작동 한 후에도 동일한 문제가 발생했습니다. Xcode가 무언가를 잘못 캐시 한 것처럼 보였으므로 새로 고치면 문제가 해결되었습니다.

  1. Xcode-> 환경 설정-> 계정
  2. 개발자 계정에 대한 세부 정보보기
  3. 프로 비전 프로필에 대해 새로 고침을 몇 번 클릭하십시오. 새로 고침 할 때마다 이러한 변화를 목격했습니다. 변화가 멈출 때까지 상쾌하게 유지하십시오.

이상하게도 이것은 나를 위해 일했습니다! 업데이트가 중지 될 때까지 새로 고친 다음 빌드 폴더를 정리 한 다음 XCode를 다시 시작했습니다. 이것은 프로비저닝 프로파일과 빌드 된 앱에서 번들 ID를 확인한 후였습니다 (둘 다에서 일치하는 경우 더욱 당황 스럽습니다).
Sean Michael Dorian 2015 년

더 이상 새로 고침 버튼 (?)이 없습니다
Gerry

9

이 오류가 발생하여 새 프로비저닝 프로필을 만들지 않았습니다. 새로운 것을 만든 다음 xCode를 다시 시작해야했지만 지금 작동합니다!


9

번들 식별자는 대소 문자를 구분하는 방식으로 프로비저닝 프로파일과 일치해야합니다 . com.firstlast.appname이어야 할 때 com.FirstLast.appname과 같은 것이 있습니다. 글쎄, 그것은 나를 꽤 오랫동안 바쁘게 만들었다.


나는 똑같은 문제가 있었고 이것은 나를 위해 그것을 고쳤다.
kuba

9

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

프로젝트> 대상> 기능> 푸시 알림 켜기를 선택하십시오.

이미지 확인


3

Xcode 8로 업그레이드 한 후이 문제가 갑자기 발생하면 기능 화면에 경고가 표시되어이를 자동으로 수정할 수 있습니다.

프로젝트> 대상> 기능> 푸시 알림 켜기를 선택하십시오.


그것이 저를 두통에서 구해준 것입니다. 감사!
jpaljasma

2

Product-> Clean이 나를 위해 해주었습니다. 바라건대 그것은 다른 누군가를 위해 그것을합니다.


나는 둘 다 청소한다. command-option-shift-k를 통한 2 차 청소도 도움이됩니다.
.. 그린

2

나는 빈번하지 않은 사용 사례에서 이것을 만났습니다. 저는 Xcode 6 및 iOS 8을 사용하고 있습니다. 저는 일련의 완전히 새로운 앱 프로젝트를 만들고 동일한 번들 ID를 다시 사용하려고했습니다. 따라서 포털 측 설정을 모두 다시 수행 할 필요가 없습니다. 이것도 단지 샌드 박스 테스트 용이었습니다.

첫 번째 앱에서는 설정 및 등록이 잘 작동하지만 장치에서 해당 앱을 삭제하고 두 번째 앱에 동일한 번들 ID를 설정 한 다음 해당 앱에 PN을 등록하려고하면 이 오류.

내 해결책은 다음과 같습니다.

  1. 장치에서 연관된 프로비저닝 프로파일을 제거하십시오.
  2. Xcode에서 연관된 프로비저닝 프로파일을 제거하십시오.
  3. Xcode 닫기
  4. 다운로드 한 .mobileprovision파일을 두 번 클릭 하여 Xcode에 다시 설치합니다.
  5. 프로젝트를 열고 배포합니다.

이 접근 방식은 이전 상태가 무엇이든 잃어버린 것처럼 보이며 새 앱 / 동일한 번들 ID로 PN에 등록 할 수 있습니다.


2

iOS 10에서이 오류가 발생한 경우 다음 단계를 시도해 볼 수 있습니다.

1. 프로젝트를 청소하십시오.
2. Targets-> Capabilities-> Push Notification을 확인하고 꺼져 있으면 On을 선택합니다.

그리고 문제는 해결 될 것입니다. 누군가에게 도움이되기를 바랍니다.


0

새로운 프로비저닝 프로파일이 저에게 효과적이었습니다. 개발중인 경우 개발자 프로필을 사용해야합니다 (Ad Hoc을 사용하지 마십시오). 그 후에는 괜찮 았고 왜 오래된 것이 제대로 작동하지 않는지 알 수 없었습니다.

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