- 인증서가 유효합니다
- xcode 5
- IOS 7
코드 서명 오류 : 코드 서명 ID 없음 : 빌드 설정에 지정된 프로비저닝 프로파일 ( "iOS 팀 프로비저닝 프로파일 : *")과 일치하는 코드 서명 ID (예 : 인증서 및 개인 키 쌍)를 찾을 수 없습니다. CodeSign 오류 : SDK 'iOS 7.0'의 제품 유형 'Application'에 코드 서명이 필요합니다.
코드 서명 오류 : 코드 서명 ID 없음 : 빌드 설정에 지정된 프로비저닝 프로파일 ( "iOS 팀 프로비저닝 프로파일 : *")과 일치하는 코드 서명 ID (예 : 인증서 및 개인 키 쌍)를 찾을 수 없습니다. CodeSign 오류 : SDK 'iOS 7.0'의 제품 유형 'Application'에 코드 서명이 필요합니다.
답변:
인증서 용
프로비저닝 프로파일 용
BundleIdentifier의 경우.
CodeSigningIdentity.
이 문제에 대한 수정 사항은 다음과 같습니다.
Xcode> 환경 설정. 계정에서 Apple ID를 클릭하십시오. 세부 정보보기를 클릭하고 프로젝트 프로비저닝 프로필 (도움이 될 것 같습니다)을 클릭 한 다음 왼쪽 하단의 새로 고침 버튼을 클릭합니다.
이것에 대한 개인적인 경험으로 다른 답변을 보완 할 것이라고 생각했습니다.
최근에 두 개의 대상이 빌드되고 두 개의 대상이 다음 오류로 인해 실패하는 문제가 발생했습니다.
코드 서명 오류 : 코드 서명 ID가 없습니다. 팀 ID "XXXXXXXXXX"와 일치하는 유효한 서명 ID (예 : 인증서 및 개인 키 쌍)를 찾을 수 없습니다. CodeSign 오류 : SDK 'iOS 7.1'의 제품 유형 'Application'에 대해 코드 서명이 필요합니다.
이것은 Xcode와 iOS 개발자 센터 에서 모든 것을 업데이트했지만 그렇습니다 .
힌트는 빌드 실패 메시지에 표시된 팀 ID가 오래되었다는 것입니다.
물론 project.pbxproj
텍스트 편집기에서 Xcode의 파일을 열면 이전 팀 ID가 발견되었습니다.
D29A93A318AB96440099C177 = {
DevelopmentTeam = XXXXXXXXXX;
};
또한 project.pbxproj
파일 을 가져 오려면 파일을 선택 .xcodeproj
하고 다음과 같이 내용을 표시하십시오.
대상 Id를 검색 D29A93A318AB96440099C177
하면 실패한 대상 중 하나와 일치하는 것을 볼 수 있습니다.
targets = (
F5E8B19A16E64505006F22D4 /* MyTarget1 */,
93DB2342183F737100BEA69F /* MyTarget2 */,
D29A93A318AB96440099C177 /* MyTarget3 */,
D200F4B518AB968A00F58C21 /* MyTarget4 */,
F5E8B1C016E64505006F22D4 /* MyTarget5 */,
589FB35119114DED003D9350 /* MyTarget6 */,
);
이 경우 MyTarget3
. 이를 해결하기 위해 간단한 텍스트 검색으로 이전 팀 ID를 새로운 올바른 ID로 대체했습니다. 문제 해결됨.
요약하자면 Xcode 프로젝트 파일의 복잡성을 조사하는 대신 위의 답변을 사용하여 상황이 해결되기를 바랍니다. 그러나 그렇지 않고 오류에 잘못된 팀 ID가 표시되는 경우 해당 팀 ID가 아직 주변에 있는지 확인하는 것이 좋습니다.
나는 개발에서 똑같은 문제가 있었다. 나는 그것을 해결했다
이 문제를 해결하기 위해 모든 프로필을 삭제할 필요는 없습니다.
오거나이저에서 내 장치 프로필을 볼 때 내 프로필 중 하나가 유효하지 않음을 알았습니다. 그런 다음 개발자 인증서, 식별자 및 프로필 페이지로 이동 하여 모든 프로필이 활성화되고 녹색으로 보였지만 장치에서 유효하지 않은 것으로 표시된 프로필을 편집하면 연결된 계정의 확인란이 선택되어 있지 않은 것을 알았습니다. 모두 선택이 선택되어 있어도. 프로필을 인증서와 연결하는 확인란을 선택하고 프로필을 다운로드했으며 모든 것이 수정되었습니다.
프로필 웹 페이지에서 "편집"을 클릭합니다.
"모두 선택"이 선택된 경우에도 연관된 인증서가 없음을 알 수 있습니다.
이 중 하나를 해결하기 위해 엄청나게 많은 시간을 보냈고, 어떤 경우에 이러한 답변의 대부분이 옳을 수 있는지 확실히 알 수 있었지만 내 상황은 그렇게 드문 일이 아니 었습니다.
TestFlight로 테스트하기 위해 앱 스토어에 배포하려고했습니다. 더 이상 프로젝트 나 회사의 일원이 아닌 이전 개발자가 IOS 배포 인증서를 만들었습니다. xcode가 나에게 말하려는 것은 예, 인증서가 회원 센터에 있었지만 친구가 당신의 것이 아니기 때문에 완전히 사용할 수 없다는 것입니다. 서명하는 데 필요한 개인 키가 없었고 새로 고침, 다시 시작, 취소가 도움이되지 않았습니다. 앱 스토어에 업로드하려면 개발자 및 배포 인증서가 필요합니다.
해결책은 내 키 체인의 새 서명 요청을 사용하여 회원 센터에서 새 프로덕션 배포 인증서를 만드는 것이 었습니다. 이 프로세스는 온라인으로 인증서를 만드는 동안 잘 문서화되고 설명되어 있습니다. 완료되면 xcode에서 계정을 새로 고침하여 키 체인에 다운로드하면 황금색이됩니다. 나는 이것이 누군가에게 도움이되기를 바랍니다!
순수한 명령 줄 / jenkins 빌드 스크립트를 사용할 때이 스레드에 도달했으며 통합 환경에 대해 단일 UI / RDP를 수동으로 설정하고 싶지 않습니다.
몇 시간 후 jenkins를 사용하여 정확히 동일한 문제를 해결하십시오.
키는 "security list-keychains -s <your_keychain_name>"입니다.
--- 긴 이야기 ---
Jenkins의 스크립트를 사용하여 프로젝트 별 설정 (프로비저닝 프로필 및 ID 서명)을 재정의
합니다. Xcode 7로 업그레이드 한 후 "create-"후에 "list-keychains"위의 스크립트 추가를 변경해야합니다. 열쇠 고리 "
Xcode 7에서 iOS 8 및 9를 대상으로 지정합니다. 내 개발 프로필은 괜찮습니다. 앱 스토어에 업로드하기 위해 앱을 보관하는 동안이 오류가 발생했습니다. 내가 한 일은 다음과 같습니다.
Xcode> 환경 설정> 계정> 세부 정보보기. iOS 배포 옆에있는 "재설정"버튼을 클릭합니다. 이렇게하면 사용중인 배포 프로비저닝 프로파일이 무효화되므로 (배포 인증서를 재설정했기 때문에) 새로 재설정 된 인증서를 포함하도록 프로파일을 편집하십시오.
새 배포 인증서와 새로 편집 된 배포 프로비저닝 프로필을 모두 다운로드해야합니다. Xcode를 다시 시작하십시오.
인증서가 개인 키와 연결되어 있는지 확인하십시오 .
키 체인 접근, 로그인, 인증서를 엽니 다 . 목록에서 인증서를 찾아 개인 키와 제대로 짝을 이루는 지 확인하십시오.
인증서가 개인 키로 서명되지 않은 경우 삭제하고 Apple 개발자 페이지로 이동하여 새 인증서를 생성하십시오. 때로는 이전을 취소해야합니다. 이 새 인증서는 이제 개인 키로 올바르게 서명됩니다.
이제 새 인증서가있는 경우 생성 프로세스에서 새 인증서를 포함 할 필요한 프로비저닝 프로파일을 다시 생성합니다.
팀의 누군가가 자신의 개인 키로이 인증서를 재설정하면 새로 고침 프로세스 중에 동일한 문제가 다시 나타날 수 있습니다. 잘 모르겠지만 팀의 모든 개발자는 배포를 위해 자체 인증서가 있어야합니다.
Xcode 7.3, OSX 10.11.4로 iOS 빌드 용 새 Jenkins 상자를 설정할 때 "Command / usr / bin / codesign failed with exit code 1"이라는 모호한 오류가 발생했습니다.
제 경우에는 몇 가지가 옳았습니다. 1. 예, Apple의 루트와 팀의 인증서 모두 키 체인에 인증서를 추가했습니다. 2. 예 xcode 기본 설정을 통해 올바른 프로비저닝 프로파일을 다운로드했습니다. 3. 네 xcode에서 수동으로 빌드했습니다.
그러나 젠킨스의 경우 xcode에 캐싱 문제가있을 수 있습니다. 효과가있는 것은 : 1. Xcode GUI를 종료합니다. 2. 다시 들어가서 빌드를 수동으로 한 번 실행합니다. 3. Xcode는 키 체인 액세스 권한을 허용하라는 메시지를 표시합니다. 4. Jenkins에는이 문제를 해결할 수있는 몇 가지 설정이 있지만 내 컴퓨터는 안전하므로 '항상 xcode가 키 체인에 액세스하도록 허용'을 클릭합니다.