앱을 앱 스토어에 업로드하려고하는데 인증서가있는 페이지에서이 오류가 발생합니다. 내가 알 수있는 한 필드가 일치하도록 변경했지만 뭔가 누락되었습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변:
이 문제가 해결 된 이유는 모르겠지만 Target의 기능 탭으로 이동하여 iCloud를 켜고 아카이브 빌드를 시도했지만 실패하고 iCloud를 다시 끄고 아카이브 빌드를 시도했지만 성공했습니다. 그 후 자동으로 인증서를 다시 확인할 수있었습니다.
Finder를 마우스 오른쪽 버튼으로 클릭-> 폴더로 이동 ...
~/Library/MobileDevice/Provisioning
Xcode 11의 경우
~/Library/MobileDevice/Provisioning Profiles/
모든 프로비저닝 프로파일을 삭제합니다.
~/Library/MobileDevice/Provisioning Profiles/
생성 한 앱 application-identifier에 프로비저닝 프로파일이 예상하는 값 이 잘못 되었습니다. 2ABCDEFG 팀의 appID com.example.foo에 대한 인증서는 application-identifier : 2ABCDEFG.com.example.foo를 예상합니다. 앱은 해당 appID가 com.example.foo라고 선언했지만 응용 프로그램 식별자가 일치하지 않습니다. , 잘못된 팀 접두사를 사용 중이거나 bundleID가 잘못 구성되었습니다.
제 경우에는 빌드 스킴을 사용하여 prod 앱과 qa 앱을 빌드 할 수 있습니다. prod의 경우 com.example.foo, QA의 경우 com.example.foo.qa입니다. Info.plist의 bundleIdentifier를 $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX)로 설정했습니다. 이는 시뮬레이터와 기기에서 서로 다른 앱을 사용하기 위해 잘 작동하지만 앱이 보관 단계에서 애플리케이션 식별자를 생성하면 Info.plist에 의해 생성 된 bundleIdentifier를 읽어서는 안됩니다.
이 상황을 해결하기 위해 FooProject.xcodeproj / project.pbxproj (텍스트 편집기 사용)를 편집하여 QA buildSettings PRODUCT_BUNDLE_IDENTIFIER를 com.example.foo.qa로 변경했습니다.
Apple의 기술 Q & A를 통해이 문제를 해결하기위한 심층 분석을 확인할 수 있습니다. 내 보낸 앱에서 코드 서명 인 타이틀먼트를 실행하고 앱이 방금 빌드 된 애플리케이션 식별자를 확인한 후에는 무엇을 잘못하고 있는지 빠르게 인식 할 수 있습니다. https://developer.apple.com/library/content/qa/qa1879/_index.html 실제로 오류 메시지의 구문을 사용하거나 응용 프로그램을 호출하지 않기 때문에 Google 검색에서 해당 페이지를 찾지 못했습니다. -식별자 전체 이름 대신 App ID라고 말합니다.
또한이 문제에 대한 해결책은 애플리케이션 식별자 권한이있는 새 프로비저닝 프로필을 생성하는 것이 아니라 해당 권한이 있지만 프로비저닝 프로필의 값과 앱이 일치해야합니다.
iCloud 토글을 켜고, 빌드하고, iCloud를 비활성화하면 다음과 같은 오류가 제거되었습니다.
프로필이 애플리케이션 식별자 및 키 체인 액세스 그룹 권한에 대한 권한 파일의 값과 일치하지 않습니다.
인앱 구매, 푸시 알림, 인터 앱 오디오, Siri 키트 등과 같이 애플리케이션에 필요한 애플리케이션 기능을 확인하십시오 .
이것이 이러한 유형의 오류의 유일한 원인입니다.
앱 ID에서 위의 플래그가 켜져 있는지 확인하십시오.
대부분의 경우 푸시 알림을 구성하지 않았을 때 발생합니다.
제 경우에는 문제가 다음과 같습니다. 빌드 단계에 사용 된 프로비저닝 프로파일이 내보내기 단계에 사용 된 프로비저닝 프로파일과 다른 앱 ID에 대해 생성되었습니다.
따라서 빌드 및 내보내기 단계에 동일한 프로비저닝 프로파일을 사용하고 있는지 확인하십시오.
개발자 계정에서 앱 ID에 대해 활성화 한 옵션과 앱의 기능을 교차 확인합니다.
요약 : 앱 ID를 확인하고 서비스가 대상에있는 것과 일치하는지 확인합니다.
나에게 일어난 일은 Xcode 10.1이 앱 ID를 만드는 데 도움을 주었다는 것입니다. 그 후 여기에 설명 된대로 문제가 발생했습니다. (iTunesConnect에서 앱을 만들 때 whildcard 앱 ID를 선택했기 때문에 이것이 완료되었다는 사실조차 깨닫지 못했습니다.) iOS 개발자 포털을 열었을 때 새 앱 ID에 Game Center와 In App Purchase가 자동으로 활성화됩니다.
에서 Game Center를 활성화 할 수 없기 때문에 Target -> CapabilitiesIn App Purchase를 활성화 한 다음 내 앱에 서명하고 업로드 할 수있었습니다.
같은 문제에 직면했을 때 위의 모든 것을 시도했지만 아무 효과가 없었습니다.
우리에게 도움이 된 것은 이전 식별자와 동일하지 않도록 번들 식별자를 변경하는 것입니다. 예를 들어 "com.name.App"을 "com.name.App2"로 변경했습니다. xcode가 프로비저닝 프로파일을 가져 오거나 생성하도록 한 다음 원래 프로파일로 되돌릴 수 있습니다.
Apple 개발자 포럼 ( https://forums.developer.apple.com/thread/114539) 의이 스레드에서 아이디어를 얻었습니다.
최근에 중복 대상을 만들려고 시도한 후이 페이지를 보았습니다. 어떤 제안도 효과가 없었습니다. 추가 조사와 약간의 머리카락을 잡아 당기는 결과 결국 내 앱의 빌드 설정을 샅샅이 뒤져 무엇이 잘못되었는지 파악했습니다.
내 프로젝트는 자체 대상이 아닌 원래 대상의 권한 파일을 여전히 가리키는 것으로 나타났습니다. 이 문제를 해결하기 위해 Finder의 원래 권한 파일 (예 : $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements )으로 이동하여 동일한 폴더 내에 복사본을 만든 다음 이름을 변경했습니다 (예 : NewTargetName.entitlements).
그런 다음 새 권한 파일을 열고 새 대상의 번들 식별자 (예 : ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ) 의 끝과 일치하도록 application-identifier 필드를 변경했습니다 .
마지막으로 빌드 설정의 'Code Signing Entitlements'필드를 내 권한 파일의 경로로 업데이트했습니다 (저에게 이것은 $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements 줄을 따라있는 것입니다. .
서명 및 기능 탭으로 돌아가서 문제가 해결되었습니다. 누군가가 유용하다고 생각하기를 바랍니다.
Xcode 12 베타 3의 새로운 앱에서이 문제가 발생했습니다 ( 앱 제출은 오늘 시작됨 ).
Xcode에는 "자동으로 서명 관리"기능이 있습니다. 그러나 "서명 인증서"에 표시된 팀 ID가 iTunes Connect 웹 사이트에 표시된 팀 ID와 일치하지 않았습니다. 이것이 앱 업로드를 방해하는 근본 원인이었습니다.
수정 방법 :
exportArchive cmd를 실행하고 AppStore에 업로드하는 Gitlab 파이프 라인을 설정하는 동안 동일한 문제가 발생했습니다. 빌드 설정의 DEVELOPMENT_TEAM을 Signing & Certs에서 선택한 동일한 팀으로 변경하여 작동시킬 수있었습니다.
이전에는 기본적으로 다른 DEV TEAM ID를 사용하는 공백으로 설정 되었기 때문에 올바르지 않고 일치하지 않았으며 "application-identifier"= 12331232.com.bannana.apples.peach가 일치하지 않는다고 불평했습니다. 올바른 DEV TEAM을 설정하고 작동했습니다.
Xcode 버전 : 버전 11.3.1
나는 이것이 누군가에게 도움이되기를 바랍니다.
여러 대상 :
... iCloud를 사용합니다.
iCloud를 켜고 끄는 것은 우리에게 옵션이 아닙니다. 우리는 이미 그것을 생산에 사용하고 오히려 그것을 엉망으로 만들지 않습니다.
프로필이 애플리케이션 식별자 및 키 체인 액세스 그룹 권한에 대한 권한 파일의 값과 일치하지 않습니다.
여기의 다른 응답에서 힌트를 받아 모든 대상에 .entitlements파일 이 있는지 확인했습니다 . 대상에 아무것도 없으면 다음과 같이 비어있는 대상을 만들었습니다.
<?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/>
</plist>
... 그리고 그것이 목표물 Code Signing Entitlement을 Build Settings빈 곳으로 가리 켰습니다..entitlements 파일 지정했습니다.
해결되었습니다!
에있는 모든 프로필 삭제 ~/Library/MobileDevice/Provisioning Profiles/
entitlements.plist파일을 보여주세요 .