Xcode 4.3에서 "응용 프로그램에 유효한 'aps-environment'인 타이틀먼트 문자열이 없습니다"를 수정하는 방법은 무엇입니까?


153

푸시 알림을받을 수있는 간단한 간단한 iOS 앱을 만들기 위해 매우 열심히 노력했습니다. 이 작업을 수행하는 유일한 이유는 다른 팀 구성원이 사용할 절차를 설정하고 웹에서 다른 곳에서 최신 버전의 해당 지침을 찾을 수 없었기 때문입니다. 우리 가게는 iOS 개발자에게 상당히 새롭고 개인적으로 iOS 개발자와 Xcode를 완전히 경험하지 못했습니다. 나는 애플과 다른 곳에서 온 수십 개의 튜토리얼, 기사 및 문제 게시물을 우연히 발견했으며 거의 ​​거기에있을 것 같은 느낌이 들었습니다 ...

여기에 내가 가야 할 곳이 있습니다 (Xcode 4.3을 사용하고 처음에는 iOS 5.1에만 배포하려고 시도하고 있으며 최근에 이전 버전의 Xcode와 비교하여 일부 변경 사항이있을 수 있지만 다시 한 번 새로 모았습니다. 이것은-완전히 혼란스럽고 복잡한 것을 발견했습니다) :

1) 푸시가 활성화 된 iPhone의 프로비저닝 프로파일이 있습니다.

2) 내 테스트 Xcode 프로젝트에서 서명 ID로 선택된 프로비저닝 프로파일이 있습니다 (빌드 설정> 코드 서명).

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

3) 요약 및 정보> 사용자 정의 iOS 대상 속성 아래에 번들 식별자가 있습니다. * (생각합니다 ??)

4) 대리인의 didFinishLaunchingWithOptions에서 registerForRemoteNotificationTypes가 호출되었습니다.

5) 대리인에 didRegisterForRemoteNotificationsWithDeviceToken 및 didFailToRegisterForRemoteNotificationsWithError가 있고 장치 토큰 또는 오류를 각각 기록하도록 설정되었습니다.

6) 요약에서 사용 권한 부여를 확인했습니다.

7) 선택한 Entitlements File 바로 아래에는 Tinker6 (테스트 프로젝트 이름)이 있으며 Entitlements 활성화를 선택하면 자동으로 생성됩니다.

8) Tinker6.entitlements 파일에서 다음을 얻었습니다 (웹에서 여러 게시물을 기반으로 올바로 작성했지만 Apple 자체에서 명확한 것을 찾을 수는 없습니다).

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

업데이트

9) 또한 자격 파일없이 모든 것을 시도했으며 본질적으로 동일한 결과를 얻었습니다.

10) 내 mobileprovision 파일 내용에 자격이 올바르게 포함되어 있습니다 (번호와 도메인을 스크램블했지만 구조는 동일합니다).

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ end 업데이트

내 장치에서 이것을 실행하려고하면 Xcode 출력에 다음 오류가 발생합니다.

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

나는 get-task-allow를 NO, aps-environment to production, 네 가지 가능한 조합 모두 같은 것으로 설정하려고 시도했습니다.

이걸 어떻게 지나칠 수 있습니까? 이에 대한 결정적인 문서는 어디에 있습니까?

- 추가 배경은 다음과 같습니다 -

* 번들 ID에 관해서는 프로비저닝 프로파일의 앱 ID 및 프로파일 ID와 관련하여 어떻게 설정해야하는지 명확하지 않습니다. App Ids의 Provisioning portal에서 나는 이것을 가지고 있습니다 (수와 도메인을 스크램블했습니다).

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

그리고 두 곳의 번들 ID가 설정되어 있습니다.

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

나는 이것이 정확하거나 확실하지 않거나 하나 또는 둘 다 12355456A7.com.whatever.tinker로 설정 해야하는지 여부는 확실하지 않지만 프로세스 초기 단계에서 성공하지 못했습니다.

참고 비슷한 제목을 가진 게시물이 많이 있다는 것을 알고 있지만 파일 이름과 주어진 내용에 따라 모두 오래된 것으로 보이며 해결책 중 어느 것도 유용하지 않은 것으로 보입니다. 내가 제공 한 세부 수준이 높으면 품질 응답이 보장되기를 바랍니다. 나는 가능한 한 빨리 현상금을 할당 할 것이며 해결책으로 이어지는 고품질의 답변을 제공하면 현상금을 수여 할뿐만 아니라 트위터와 내 블로그를 통해 답변을 홍보 할 것입니다. 특히 크로스 포스트 게시물을 게시하는 경우 블로그 또는 다른 게시물에 프로비저닝 및 기타 항목을 포함하여 간단한 푸시 알림 앱을 작동 시키는 정확한 500 단계가 있습니다.

답변:


94

app IDfor push 를 구성하기 전에 프로비저닝 프로파일을 작성한 경우 프로비저닝 프로파일 을 재생성하십시오.

iOS 프로비저닝 포털-> 프로비저닝-> 인증서-> 편집-> 편집-> 새 프로비저닝 다운로드

나를 위해 일했다. 이제 푸시를 사용할 수 있습니다.


정확히 "프로비져닝 프로파일 재생성"에 수반되는 내용에 대해보다 명확하게 설명 할 수 있습니까? XPort의 프로비저닝 포털에서이 단계는 어디에 있습니까? 감사!
jwl

2
포털에서. 장치를 추가하거나 제거하면 프로비저닝이 생성됩니다. 그런 다음 두 번 클릭하여 키 체인에 설치하십시오.
elp

밀도가 높으면 죄송하지만 기기 아래에 추가 / 제거 하시겠습니까? 또는 문제의 실제 프로비저닝 프로파일 아래 어딘가에 있다면 정확히 어디에 있습니까?
jwl

장치를 추가하거나 제거하는 것은 프로비저닝을 재생성하는 비법입니다. 푸시 알림은 앱 ID 및 푸시 인증서에 연결되어 있으므로 푸시 알림을 사용하려면 하나를 재생성해야합니다.
elp

69

우선 프로비저닝 프로파일에 존재하지 않는 사용자 정의 키 / 값 쌍을 추가하지 않으면 권한 부여 파일이 필요하지 않습니다. 앱이 빌드되면 프로비저닝 프로파일의 모든 권한이 앱에 복사됩니다.

누락 된 인 타이틀먼트에 대한 오류 메시지가 계속 표시되는 경우 빌드 설정에서 코드 서명 옵션이 올바르지 않다고 가정 할 수 있습니다.

"Debug"구성에 올바른 프로파일이 선택되어 있고 "Debug"및 "Any iOS SDK"라는 하위 노드 모두에 대해 올바른 프로파일을 선택했는지 확인해야합니다.

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

이 스크린 샷에는 선택된 "자동 개발자"프로파일이 표시되지만 테스트 목적으로 드롭 다운에서 원하는 정확한 프로비저닝 프로파일을 선택하십시오. Xcode가 자동으로 원하는 프로파일과 다른 프로파일을 선택했을 수 있습니다.

또한 깨끗하게 빌드하고 장치에서 앱을 완전히 삭제하는 등의 작업을 수행하십시오. 이는 오래된 보풀이 생기지 않도록하기위한 것입니다.


내 게시물의 # 2마다 올바르게 설정되어 있지만 명확한 스크린 샷을 추가하여 확인했습니다. 또한 앱을 완전히 제거하고 권장 사항에 따라 2 일 동안 그대로 두려고했는데 일부 정보가 재설정되는 데 하루가 걸리는 곳을 보았습니다 (예, 빨대를 잡고 있습니다!?). 그러나 "디버그"구성에 대해 올바른 프로파일이 선택되어 있는지 확인해야 할 때 정확히 무엇을 의미합니까? 어디에서 선택해야합니까?
jwl

"iPhone Developer"부분을 클릭하거나 현재 값으로 설정된 것을 클릭하면 Xcode가 알고있는 모든 프로비저닝 프로파일이 드롭 다운됩니다. 올바른 항목을 선택했는지 또는 "자동 개발자"항목이 올바른 항목을 선택했는지 확인하십시오. 드롭 다운에 모든 것이 표시됩니다.
Mike Weller 2016 년

최신 프로비저닝 프로파일이 있습니까? 푸시가 활성화되기 전의 이전 버전 일 수 있습니까?
Mike Weller

2
그래, 믿어 새 프로비저닝 프로파일을 얻기 위해 수행 한 작업은 Xcode Organizer에서 라이브러리와 장치 모두에서 프로파일을 삭제 한 다음 라이브러리 화면에서 다시 새로 고침을 클릭하는 것입니다. 이를 통해 프로비저닝 포털에서 철회했습니다. 그런 다음 장치에 이것을 추가했습니다. 그리고 위에서 보여 지듯이, mobileprovision 파일 XML ish 컨텐츠는 올바른
유혹을

3
죄송합니다 -경로 앞에 다음이 있어야합니다 codesign -d --entitlements - /path/to/my.app.. "Show In Finder"가 때때로 잘못된 위치로 이동할 수 있기 때문에이 시점에서 Debug-iphoneos 디렉토리에 있는지 다시 확인하는 것이 좋습니다.
Mike Weller

64

Xcode 8에서이 문제에 직면했습니다. 대상 —> 기능 —> 푸시 알림을 활성화해야합니다. 스크린 샷을 확인하십시오.

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


1
이것은 나를 도와줍니다! 버튼을 클릭하기 만하면 몇 시간 동안 디버깅하는 문제를 해결할 수 있습니다 ... Xcode8도.
Veck Hsiao

3
OMG 감사합니다! Apple에 와서 더 합리적인 오류 메시지를 보내주십시오!
Ferran Maylinch 2016

Xcode 8에서 내 앱의 푸시 알림을 해제 했으므로이 솔루션이 작동했습니다.
Kevin

1
감사합니다. 다른 설정 단계를 3 번 ​​수행 한 후에야이 오류가 발생했습니다. 나는 바보처럼 느껴지지만 도구가 이것이 문제가되는 데 나쁜 것입니다.
콜린 플린

당신은 내 하루를 구 했어요 친구!
oskarko

47

가장 쉬운 방법은 Xcode를 사용하여 계정 에서이 작업을 수행하는 것입니다.

Xcode-> 환경 설정-> 계정 탭 선택-> 세부 정보보기-> 왼쪽 하단의 히트 새로 고침 버튼-> 완료를 클릭하십시오.

다시 빌드하면 작동합니다.


19

좋아, 나는 전에 문제에 직면했다. 푸시 알림에는 서버 측 구현이 필요하므로 프로파일을 다시 작성하는 것은 옵션이 아닙니다. 그래서 새로운 프로비저닝 프로파일을 만들지 않고이 솔루션을 찾았습니다.

Xcode가 올바르게 선택했지만 올바른 프로비저닝 프로파일을 올바르게 선택하지 않았습니다.

먼저 주최자로 이동하십시오. 장치 탭의 라이브러리에서 프로비저닝 프로파일 목록에서 사용하려는 프로파일을 선택하십시오. 마우스 오른쪽 버튼으로 클릭 한 다음 "파인더에서 프로파일 공개"를 클릭하십시오.

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

열린 Finder 윈도우에서 올바른 프로파일이 선택됩니다. 이름을 적어 둡니다.

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

이제 Xcode> Log Navigator로 이동하십시오. "모두"및 "모든 메시지"에 대한 필터를 선택하십시오. 이제 마지막 단계 (빌드 대상)에서 "ProcessProductPackaging"단계를 찾아 확장하십시오. 프로비저닝 프로파일 이름을 참고하십시오. 오류가 발생하면 일치하지 않아야합니다. 여기에 이미지 설명을 입력하십시오

이제 열린 파인더 창에서 Xcode가 사용중인 악성 프로비저닝 프로파일을 삭제하십시오. 이제 다시 빌드하십시오. 오류를 해결해야합니다. 그렇지 않은 경우 프로세스를 반복하여 다른 불량 프로파일을 찾아 제거하십시오.

도움이 되었기를 바랍니다.


이것은 내 잘못이지만이 방법을 사용하여 수정했습니다. 실수로 정보 상자에 인증서를 생성 한 것과 다른 식별자를 넣었습니다.
JavaCoderEx

18

대답은 다음과 같습니다. 다시 시작하고 모든 작업을 동일하게 수행하지만 새로운 프로비저닝 프로파일을 생성하여 설치하십시오. 효과가있었습니다. 모든 세부 사항 (모바일 프로비저닝의 자격 부여)을 검사하면 여기에있는 내 질문의 모든 것과 정확히 동일하게 보입니다 . 그러나 지금은 작동합니다. 애플 : WAT?

물론 프로비저닝 프로파일을 삭제할 수 있다면 이 작업을 수행하는 것이 분명 했을 것입니다. 그러나 이것이 불가능하기 때문에 팀을 여러 테스트 프로필로 혼란스럽게 만들고 싶지 않았습니다. 그럼에도 불구하고 마침내 인내심을 잃고 어쨌든 시도해 보았습니다. Whatevs.


새 프로파일을 작성하고이 다른 SO 질문에 있다고 같은 이전이 나를 위해 일 "이 더럽혀" stackoverflow.com/questions/5681172/...
scurioni

포털에서 기존 프로비저닝 프로파일을 삭제하고 다시 작성하기 만하면됩니다. 업데이트 후에 프로필을 삭제할 수 있으므로 새 앱 ID를 만들 필요가 없습니다.
odyth

동일한 앱 ID 및 배포 인증서를 가진 새로운 프로비저닝 프로파일로 문제가 해결되었습니다. +1 :)
Azik Abdullah

18

Organizer의 XCode에서 이전 프로비저닝 프로파일을 삭제하십시오.

그런 다음 푸시를 활성화 한 후 iOS 프로비저닝 포털에서 동일한 번들 ID에 대해 새로운 프로비저닝 프로파일을 생성하십시오.

XCode에서 새 프로비저닝 프로파일을 가져 와서 앱 빌드 설정에서 설정하십시오.

빌드, 실행, 작동합니다.

방금 했어요

오류에서 성공까지 10 분이 걸렸습니다.


이것은 나를 위해 일한 것입니다. 이전 프로비저닝 프로파일 편집 및 다운로드가 작동하지 않았습니다. 감사!
prageeth

도움이되는 부록으로, 새로운 프로비저닝 프로파일을 얻는 대신 기존의 것을 삭제할 수있었습니다
ritmatter

1
손으로하지 않는 것이 좋습니다. github.com/fastlane/PEM을 사용하십시오 .
fatuhoku

16

XCode 6.1.1 및 여러 Apple 개발자 계정

이미 상당히 포괄적 인 혼합에 대한 또 다른 대답 : 오늘이 문제를 다시 발견했으며 이번에는 여러 개의 Apple 계정이 있었기 때문에 발생했습니다. XCode> 환경 설정> 계정> + 에서 두 번째 개발자 계정을 먼저 추가해야했습니다.

푸시 알림 기능이 켜져 있는지 확인

다음으로 실제로 앱에서 인앱 구매를 명시 적으로 활성화해야했습니다 (이전 에이 작업을 수행 할 필요는 없었습니다). XCode> (앱 창)> 대상> 기능> 인앱 구매 ON (이 단계에서 올바른 인증서를 선택할 수있는 옵션이 제공됨)

이미 Finder에서 푸시 가능 인증서를 두 번 클릭하여 추가했습니다.

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


Xcode 8 베타로 전환했을 때 푸시 알림 스위치 또는 무언가가 꺼졌습니다. 감사합니다
inVINCEable

고마워, 이것이 내가이 문제를 겪은 이유입니다. 내 앱 ID는 인앱 구매, 게임 센터 등에서 사용할 수 있지만 Xcode / 기능에서는 문제가 없습니다. Xcode 8로 업데이트 된 이후 로이 문제가 있습니다. Xcode에서 IAP 및 게임 센터를 활성화하면 문제가 사라집니다!
Ethan Long

11

(Xcode 5) 한 시간을 보낸 후에 문제를 해결했습니다. Xcode 5에서 프로비저닝 파일을 다시 생성하더라도 수동으로 계정을 업데이트해야합니다. Organizer 탭에서 작동하지 않는 프로비저닝 파일 만 변경했으며 Xcode는 이전 프로비저닝 파일로 빌드를 유지했습니다.

그래서가

Xcode> 환경 설정> 계정> 세부 사항보기 (계정을 선택하십시오)

그런 다음 프로비저닝 파일을 새로 고치십시오.


7

내 문제는 단순히 Xcode 관리 와일드 카드 프로비저닝 프로파일로 서명하는 것이 었습니다.

앱별 프로필을 만든 후 (다운로드 한 후 두 번 클릭하여 빌드 설정이 참조 된 후) APNS 장치 토큰을 성공적으로 받았습니다.


나는이 문제도 가지고 있었다. Xcode 5는 프로비저닝 프로파일을 업데이트하는 데 능숙합니다. 나중에 개발에서 APNS 서비스를 추가했습니다. 위의 포스터가 프로비저닝 프로파일이 실제로 와일드 카드가 아닌 작업중인 앱에 고유 한 프로파일임을 지적해야합니다.
Michael

@ 마이클, 어떻게 확인합니까? 현재 빌드 설정 (코드 서명 아래)에서 변경하려고 시도했지만 현재는 설정되어 있지 않습니다. 올바른 프로파일을 선택하고 빌드하면 오류가 발생하고 와일드 카드 프로비저닝 프로파일로 돌아갑니다.
Ian Jamieson

@ian 어떤 오류가 발생합니까? 유효한 프로필인지 확인 하시겠습니까?
Michael

아, 정렬했습니다. 올바른 인증서를 Mac에 다시 다운로드해야했습니다. 그 트릭을 한 것 같습니다. 감사.
Ian Jamieson

그것을 듣고 기뻐. 설정이 정확할 때 일반적으로하는 일. 모든 인증서를 다시 실행하십시오. 문제가 아닌 것보다 더 많은 것으로 보입니다.
Michael

6

나는 다른 사람들과 같은 문제가 있었고 위의 모든 트릭을 시도했지만 아무것도 효과가 없었습니다. 심지어 다른 개발자 계정으로 삭제하고 새로 시작했습니다.

결국 나를 위해 일한 것은

  1. 위에서 제안한대로하고 APP ID를 만드십시오
  2. 그런 다음 프로비저닝 프로파일을 작성하십시오.
  3. 프로비저닝의 개발 섹션에서 팀 와일드 카드 프로파일 (xcode one로 관리)을 사용하지 마십시오. 푸시 알림을 활성화 한 앱 ID를 사용하여 별도의 ID를 만들어야합니다. 이런 방식으로 개발할 때 푸시 알림 기능이 내장되어 있습니다.

와일드 카드 앱에서 사용할 수 있는지 모르겠지만 적어도 12 가지 제안을 시도하고 며칠을 잃은 후에 누군가에게 도움이되기를 바랍니다.


2
그러나 이것은 기존 답변에 아무것도 추가하지 않으므로 이미이 조언을 제공합니다. 분명히 푸시 앱에는 자체 프로필이 필요합니다. 문서는 와일드 카드 프로필을 특별한 자격이 필요한 응용 프로그램에 사용할 수 없다는 것이 분명합니다.
matt

1
이 작업을 수행했지만 내 앱은 와일드 카드 프로비저닝 프로파일 만 선택하므로 푸시 알림이 활성화 된 프로파일을 강제로 선택할 수는 없습니다.
Ian Jamieson

3

프로비저닝 프로파일에 대해서는 언급했지만 Apple Push Profile에 대해서는 언급하지 않았습니다.

푸시를 사용하려면 푸시 프로파일이 있어야합니다 (하나는 개발 용이고 하나는 릴리스 용). 인증서를 만든 후에는 관련 인증서가 포함되어 있는지 확인해야합니다 (아래 편집 섹션 참조).

이것은 모든 단계를 안내하는 훌륭한 자습서입니다.

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

이 튜토리얼과 같은 철저한 상세 답변을 작성하는 데는 시간이 걸리거나 시간이 걸리므로이 튜토리얼이 이미 존재하는 경우 현상금을 청구하거나 주장하지 않습니다.

추신 : 나는 더 이상 자격이 필요하지 않다고 생각합니다. 이것은 레거시입니다.

편집 : 또한 장치에 필요한 프로파일이 있는지 확인해야합니다. 설정으로 이동 한 다음 일반 프로파일을 확인하고 프로파일이 특히 푸시 프로파일인지 확인하십시오. XCode의 Organizer 섹션에서이를 확인할 수도 있습니다. Organizer에는 Provision Profiles (프로비저닝 프로파일)라는 두 섹션이 있습니다. 하나는 라이브러리의 왼쪽 상단에 있습니다 (이것은 서명하는 데 사용하는 XCode의 프로파일입니다). 핸드셋에 설치된 프로필입니다. 핸드셋에 설치되어 있지 않은 경우 프로비저닝 포털 웹 사이트에서 다운로드 한 다음 Organizer 창 아래쪽에있는 추가 버튼을 클릭하십시오.

프로비저닝 포털에서 Apple Push Profile에 인증서가 포함되어 있는지 확인해야합니다.-왼쪽 메뉴에서 Provisioning (프로비저닝)을 클릭하십시오-프로파일 목록이 표시되고 Apple 푸시 프로파일을 편집하도록 선택하십시오. 프로젝트에있는 개발자 또는 테스터 등의 목록이있는 인증서 섹션에 해당 확인란이 선택되어 있는지 확인하십시오. -또한 장치 섹션이 표시됩니다. 테스트중인 장치가 추가되었는지 확인하십시오.

XCode 또는 장치에 이전 프로파일이있는 경우 프로파일을 삭제하고 프로비저닝 포털에서 모든 새 프로파일을 다운로드 / 새로 고침 / 설치하십시오


자격이 유산 인 경우 자격이 없다는 메시지가 표시되는 이유는 무엇입니까? 나는 운이없이 편지에 연결된 자습서를 이미 따랐습니다 ...하지만 감사합니다.
jwl

또한 유용한 mobileprovision 파일에 대한 정보를 추가했습니다.
jwl

사실, 알림을 성공적으로 푸시하기 위해 .entitlements를 설정조차하지 않습니다. 내가 할 때 저를 트립 한 가지 방법은 mobileprovision을 수동으로 다운로드 한 다음 설정을 작성하고 방금 다운로드 한 것과 일치하도록 서명 ID를 변경해야한다는 것입니다. 제 경우에는 Xcode가 와일드 카드 mobileprovision을 선택하고 있습니다.
X 슬래시

나도 얼마 전에 자격에 관한 오류 메시지를 받았습니다. 빨간 청어입니다. Mike Wellers의 응답을 보았습니다. 이것이 저의 경우에 한 일입니다.
Gruntcakes

확인해야 할 몇 가지 사항으로 답변을 업데이트했습니다.
Gruntcakes

2

이 같은 문제에 직접 부딪쳤다. 나에게 문제는 내 제품 이름 ($ TARGET_NAME)이 apple에서 제공 한 인증서에 표시된 것과 같은 방식으로 대문자로 표기되지 않았다는 것입니다. 예를 들어, Apple cert는 com.companyid.apndemo를 사용하는 동안 com.companyid.APNDemo를 사용했습니다.

목표를 소문자로 변경했는데 효과가있었습니다. 참고 : 실마리는 빌드 설정의 공동 디자인 설정이 기본 개발자 인증서로 설정되었다는 것입니다. APNTest 프로비저닝 프로파일이 아닙니다.


1

위의 답변 중 많은 것이 맞습니다. 그러나이를 처리 할 때 가능한 오류가 두 개 이상인 것 같습니다.

내가 가진 것은 내 앱 ID의 대문자 문제였습니다. 어떤 이유로 내 앱 ID가 대문자로 표시되지 않았지만 내 앱은 사용되었습니다. 올바른 대문자를 사용하여 앱 ID를 다시 만들면 모두 원활하게 작동했습니다. 도움이 되었기를 바랍니다. 그래도 지옥처럼 좌절합니다.

PS 그래도 작동하지 않으면 "edit"를 사용하여 Code Signing Identity Field를 수동으로 편집하십시오. 올바른 프로비저닝 프로파일 이름으로 두 번째 행을 변경하십시오.


1

그것을 해결하는 데 몇 시간이 걸렸습니다. 누군가가 사용자 정의 스크립트를 사용하여 서명하고 압축하는 동안 다른 사람들은 xcode 자체를 사용하고 있다는 것을 감안할 때 앱에서 종료 된 것을 확인하는 한 가지 방법 만 있습니다. 당신에게 자격을 덤프

codesign --display --entitlements :- path/to/MyApp.app

체크 aps-environment하고 application-identifier.


나는 같은 문제에 직면 해있다. 그냥 물어보고 싶었습니다. 앱에 대한 경로는 시뮬레이터에 설치된 앱의 경로입니까?
Ajeet

아니요, xcode 빌드 디렉토리에서 실제 장치에 대해 컴파일 된 앱의 경로입니다.
dwery

1

이 오류는 인증서가 만료되었을 때 발생할 수 있습니다.

해결책은 인증서를 갱신하고 응용 프로그램에 서명하는 것입니다.


1

프로비저닝 프로파일 ( https://developer.apple.com/account/ios/profile/ )에 iOS 배포 프로파일 이 있는지 확인해야 합니다.

xCode에서 App Store로 업로드 할 때 자격에 aps 환경이 있는지 확인하십시오. 그렇지 않은 경우 계정보기-> 세부 사항보기-> 모두 다운로드에서 다운로드하십시오.


1

나는 비슷한 문제가 있었다. 여러 가지 이유로 XCode 7과 8 사이를 수신 거부했습니다. 8을 사용하여 빌드하면 8을 사용해야합니다. Xcode 8을 사용하고 위에서 제안한 변경 사항을 적용하면 효과가 있습니다.



0

Xcode 4.6에는 '자동'인 타이틀먼트에 이상한 것 같습니다.

각 SDK에 대한 Entitlement.plist 파일은 다음 위치에 있습니다.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

내가 해결 한 해결책은이 파일을 편집하고 부적절한 aps-environment 키를 다음과 같이 수동으로 추가하는 것입니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

그런 다음 Xcode는 aps-environment 키가 포함 된 올바른 Xcent 파일을 생성합니다.

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Xcode의 로그 탐색기를 사용하여 Xcent 파일이 작성된 위치를 찾을 수 있습니다
. "ProcessProductPackaging"을 찾으십시오.

불행히도 이것은 내가 찾은 유일한 방법으로 문제해결합니다 .
(그리고 마침내 푸시 토큰을 올바르게 얻을 수 있습니다)

더 우아한 솔루션이 있는지 궁금합니다.
그에 대한 자세한 내용은 내 SO 질문을 참조하십시오 :
Xcode 4.6 자동 자격이 작동하지 않습니다- "유효한 aps 환경 없음"


0

AppID / 프로필을 삭제하고 재생성하기 전에 라이브러리와 장치에 동일한 (올바른) 프로필이 설치되어 있는지 확인하십시오.

새 컴퓨터로 마이그레이션 한 후이 오류가 발생하기 시작했습니다. 마이그레이션 전에 푸시가 올바르게 작동했습니다.

문제는 (duh) 새 시스템의 Xcode 라이브러리로 프로파일을 가져 오지 않았다는 것입니다 (Library-> Provisioning Profiles의 Organizer / Devices).

혼란스러운 부분은 DEVICE가 이미 올바른 프로파일을 가지고 있으며 빌드 설정에서 예상대로 표시되었으므로 모든 것이 올바르게 보였지만 XCode 라이브러리에는 없었습니다. 그래서 앱에 서명했습니다 ... ?? ?


0

이것이 나를 위해 고친 것입니다. (이미 기능 켜기 / 끄기, 프로비저닝 프로파일 등을 다시 만들려고 시도했습니다).

에서 빌드 설정 탭에서 코드 서명 인 타이틀먼트 , 내 .entitlements의 파일은 모든 섹션에 대한 링크를하지 않았다. 나는에 추가되면 모든 SDK 섹션에서 오류가 해결되었습니다.

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


0

여기에 나열된 모든 답변을 시도했지만 아무도 내 문제를 해결하지 못했습니다. 필자의 경우이 오류는 Appid 생성에서 바보 같은 실수로 인한 것입니다. 내가 사용하는 와일드 카드 앱 ID를 사용하는 대신 명시 앱 ID를 문제의 원인

애플리케이션이 원격 알림 (푸시 알림)을 수신하도록하려면 com.tutsplus. * 대신 com.tutsplus.push 와 같은 명시 적 앱 ID 를 사용해야합니다 . *

ScreenShot을 찾으십시오. 여기에 이미지 설명을 입력하십시오

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