programing

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

nasanasas 2020. 9. 24. 07:56
반응형

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


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

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

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


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

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로 대체됩니다.


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

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


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

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

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


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


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

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

check out the image


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

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


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


I ran into this in what's possibly a non-frequent use case. I'm working with Xcode 6 and iOS 8. I was creating a series of entirely new app projects, and attempting to re-use the same bundle ID, so as not to need to go through all of the portal-side setup again. This too was just for sandbox testing.

I would find that, while the setup and registration would work fine for the first app, if I deleted that app from the device, set the same bundle ID for the second app, and then attempted to register PNs with that app, I would get this error.

My solution was to:

  1. Remove the associated provisioning profile from the device.
  2. Remove the associated provisioning profile from Xcode.
  3. Close Xcode
  4. Double-click my downloaded .mobileprovision file to install it back into Xcode
  5. Open the project and deploy it.

This approach seems to jar loose whatever previous state was there, and I'm able to register for PNs with the new app / same bundle ID.


For those who got this error in ios 10, you can try following steps:

1.clean your project.
2.and check Targets -> Capabilities -> Push Notification.If it is off,On it.

And problem will solve.The above steps help me to get rid off this problem. Hope it will helpful to someone.


New provisioning profile worked for me. Make sure to use a Developer profile if you are in development (don't use Ad Hoc). It was fine after that, no idea why the old one stopped working right.

참고URL : https://stackoverflow.com/questions/13432203/no-valid-aps-environment-entitlement-string-found-for-application

반응형