Mac에 설치된 Certficate 및 끈에 묶인 Provisioning Profile 보기

2712 단어 iOS
빌드 시스템의 Certficate 및 Provisioning Profile을 업데이트할 때 여러 개의 Developer Program이 설치되어 있으면 빌드 오류가 발생하더라도 Ceertificate의 원인인지 Provisioning의 원인인지 모를 수 있습니다.
따라서 Mac에 어떤 이름으로 Certficate를 설치했는지 조사하는 방법과 어떤 Certficate가 어떤 Provisioning과 관련이 있는지 조사하는 방법을 총괄했다.

설치된 Certficate 확인


설치된 Certficate의 이름은 Keychain입니다.앱에서 확인할 수 있습니다.
이 프로그램을 열고 인증서를 선택해서 정보를 보기만 하면 됩니다.하나의 관점으로 주제명의 통칭과 사용자 ID를 본다.명목상 이름과 팀 아이덴티필드를 뜻한다.

Apple Developer Program의 이름은 Team Identifier로 구분할 수 있습니다.팀 아이드가 같은 법인이라도 스탠더드 프로그램과 엔터테인먼트는 다르다.
또한 보안 명령은 다음과 같은 다양한 정보를 제공합니다.
$ security find-identity -v -p codesigning
  1) <SHA-1 hash> "iPhone Developer: ほげほげ"
     1 valid identities found
$ security find-certificate -Z -p
SHA-1 hash: <SHA-1 hash>
-----BEGIN CERTIFICATE-----
<PEM String>

Certficate와 어떤 Provisioning이 연관되어 있는지 조사


Certficate가 바인딩된 Provisioning을 알고 싶다면 모바일 프로비전 파일을 조사해야 한다.
mobileprovision 파일은 ~/Library/Mobile Devices/Provisioning Profile에 있습니다.보안 명령을 사용하여 파일을 질의하려면 다음과 같이 하십시오.
$ security cms -D -i <UDID>.mobileprovision
..
    <key>AppIDName</key>
..
    <key>ApplicationIdentifierPrefix</key>
    <array>
    <string><Team Identifier></string>
출력 결과의 Ap plication Identifier Prefix는 Provisioning과 연관된 Team Identifier입니다.
그나저나 Developer Ceertificates는 PEM 형식의 Certificate입니다.
    <key>DeveloperCertificates</key>
    <array>
    <data><PEM String>

(여담) ipa 파일을 조사하여 Team Id와 Ceertificate를 산출합니다.


Team Id는 codesign 명령을 통해 ipa 파일을 볼 수 있습니다.
$ codesign -vv -d foo.app
..
Identifier=<Bundle identifier>
..
Authority=<Developer Programの名義>
..
TeamIdentifier=<Team Identifier>
한편, Certficate는 ipa 파일의 embedded입니다.모바일 프로비저닝을 통해 알 수 있는 내용:
  • ipa 파일의 확장자rename을 zip에 불러오고 마운트 해제
  • 패키지된 내용을 표시하려면Payload 디렉터리에 있는 응용 파일을 선택하십시오
  • 그중에 코드sign을 사용하는embedded입니다.모바일 프로비전 있어요.그런 다음 보안 명령만 사용합니다.
    $ security cms -D -i embedded.mobileprovision
    ..
        <key>AppIDName</key>
    ..
        <key>ApplicationIdentifierPrefix</key>
        <array>
        <string><Team Identifier></string>
    

    참고 자료

  • https://www.objc.io/issues/17-security/inside-code-signing/
  • 좋은 웹페이지 즐겨찾기