본 페이지는 App Distribution Guide 문서의 Creating Your Signing Certificates 부분을 번역해 놓은 페이지 압니다. 발 번역이라 이상한 부분이 있을 수 있습니다. 발견즉시 댓글을 달아 주세요.




Creating Your Signing Certificates
사인용 인증서 생성.

Code signing uses cryptographic technology to digitally sign your app and installer package. Code signing your app lets users trust that your app has been created by a source known to Apple and that your code hasn’t been modified since you signed it. You must sign your code to submit your iOS and Mac apps to the store. For certain store technologies, you must sign your code during development and testing—well before submitting your app to the store. iOS and OS X verify the signature of your app before allowing it to run on devices or use certain technologies.

당신의 앱에 디지탈 코드 사인은 코드 사인과 설치 패키지에는 암호화 기술을 이용합니다. 코드사인은 사용자들이 당신의 앱이 애플의 알려진 소스를 이용해 생성된 이후에 코드 사인을 한 뒤부터 변경되지 않음을 신뢰하게 합니다. 당신은 당신의 코드에 사인을 해 당신의 iOS와 Mac 앱을 스토어에 보내야 합니다. 확실한 스토어 기술을 통해, 개발과 시험을 하는 동안 당신의 코드를 사인해야합니다. (당신의 앱을 스토어 보내기 전에 철저히). iOS 와 OS X는 장치에 동작 또는 특정 기술을 사용하기 전 당신 앱의 서명을 확인합니다.


You use specialized signing certificates in your keychain to sign an app or installer package. For iOS apps, you need these signing certificates during development and to run your app on devices. For Mac apps, you don’t need signing certificates unless you enable App Sandbox (which is required by the Mac App Store) and use store technologies such as iCloud and Game Center. Both iOS and Mac apps need special signing certificates to submit your app to the store. For Mac apps, you need a type of signing certificate to distribute your app outside of the store.

당신은 당신의 keychain 속의 특별한 사인용 인증서를 사용해 당신의 앱 또는 설치 패키지 사인에 사용합니다. iOS 앱은, 당신은 개발과 장치에 앱 실행하기에 사인용 인증서들이 필요합니다. Mac 앱은, App Sandbox (어느 것들은 Mac App Store를 통해 요구 할 수 있습니다.) 활성화와 iCloud와 Game Center와 같은 store 기술들을 사용 하지 않는 한 사인용 인증서가 필요하지 않습니다. iOS와 Mac 앱 둘다 당신의 앱을 스토어에 보낼 때 특별한 사이닝 인증서 가 필요합니다. Mac 앱은, 스토어외 다른 곳으로 배포하는데 사인용 인증서의 유형이 필요합니다.


Therefore, the first step to prepare for code signing is to create the certificates specific to your platform:
그러므로, 코드 사인 준비 하는 첫 단계는 당신의 플랫폼에 특정한(맞는) 인증서를 생성하는 것입니다.

  • For iOS apps, you will create one certificate for each of these tasks:
    iOS 앱들은, 각각의 작업에 한개의 인증서를 생성할 것입니다:

    • to run an app on an iOS device and use store technologies during development
      개발하는 동안 iOS 장치에 앱을 동작시키고 스토어 기술들을 이용하기.

    • to distribute your app on designated devices for testing or to submit it to the store
      테스트를 위해 지정된 장치 위에 당신의 앱을 배포하거나 스토어로 보낼 때

  • For Mac apps, you will create one certificate for each these tasks:
    Mac 앱들은, 각각의 작업에 한개의 인증서를 생성 할 것입니다.

    • to use store technologies during development and testing
      개발과 테스트 하는 동안 스토어 기술을 사용할 때

    • to sign your app before submitting it to the store
      스토어에 당신의앱을 보내기전 사인할 때.

    • to submit an installer, containing your signed app, to the store
      사인된 당신의 앱을 포함한 설치파일을 스토어로 보낼때.

    • to distribute your app outside of the store
      스토어외에 당신의 앱을 배포할 때.

    • to distribute an installer, containing your app, outside of the store
      당신의 앱을 포함한, 설치파일을, 스토어 외에 배포할 때.


About Code Signing
코드 사인에 대하여.

Code signing your app allows the operating system to identify who signed your app and to verify that your app has not been modified since you signed it. Your app’s executable code is protected by its signature because the signature becomes invalid if any of the executable code in the app bundle changes. Note that resources such as images and nib files are not signed; therefore, a change to these files does not invalidate the signature.

당신앱에 코드 사인은 운영체제가 누가 당신의 앱을 사인 했는지 신원을 확인하는 것과 당신의 앱이 당신이 사인을 한 후로 부터 변경되지 않았음을 확인하는 것을 허락합니다. 당신의 앱의 실행가능한 코드는 사인을 통해 보호되며, 이유는 만약 앱의 꾸러미 속 실행가능 코드의 하나라도 변경되면 사인의 효력이 없어지기 때문입니다. 이미지와 nib 파일 같은 리소스는 사인이 되지 않음을 주의 하세요.(그러므로 이 파일들이 변경되는 것으로 무효화 되지 않습니다.)


Code signing is used in combination with your App ID, provisioning profile, and entitlements (which you will learn more about later) to ensure that:

코드 사인은 당신의 App ID, 프로비저닝 파일, 그리고 요소들을 조합을 이용해 반드시 아래와 같이 합니다.


  • Your app is built and signed by you or a trusted team member.
    당신의 앱은 당신 또는 신뢰하는 팀멤버가 사인을 하게 하세요.

  • Apps signed by you or your team run only on designated development devices.
    앱 사인은 당신과 팀멤가 꼭 지정된 개발 장치에서 실행하세요.

  • Apps run only on the test devices you specify.
    앱 실행은 당신이 지정한 테스트 장치에서 하세요.

  • Your app is not using technologies you didn’t add to your app.
    앱이 이용하지 않는 기술들은 당신의 앱에 추가 하지 마세요.

  • Only you can submit revisions of your app to the store.
    오직 당신이 새 버전의 앱을 스토어로 보낼 수 있습니다.

  • If you choose to distribute outside of the store (Mac only), the app can’t be modified and distributed by someone else.
    만약 당신이 스토어 외에 배포를 결정한다면(오직 Mac앱에 해당함), 앱을 어떤 다른 사람이 변경하거나 배포할 수 없습니다.

Code signing also allows your app’s signature to be removed and re-signed by a trusted source. For example, you sign your app before submitting it to the store, but Apple re-signs it before distributing it to customers. Also, you can re-sign and submit a fully tested development build of your app to the store.

코드 사인은 또한 당신의 앱 서명을 신뢰할 수 있는 소스를 통해 제거되고 재 사인 하는 것을 허락합니다. 예를 들어, 당신이 앱을 스토어로 보내기 전 사인하나, 애플이 이 것을 고객들에게 배포하기 전 다시 사인합니다. 또한 당신은 충분히 테스트된 당신의 앱의 개발 빌드를 다시 사인하고 스토어로 보낼 수 있습니다.


Xcode uses your code signing identity to sign your app during the build process. This code signing identity consists of a public-private key pair that is issued by Apple. The private key is stored in your keychain and used by cryptographic functions to generate the signature. The certificate contains the public key and identifies you as the owner of the key pair. The certificate is stored both in your keychain on your Mac and in your developer account. An intermediate certificate is also required to be in your keychain to ensure that your certificate is issued by a certificate authority.

Xcode는 코드사인용 신원을 당신이 앱을 빌드 작업을 하는 동안 이용합니다. 이 코드 사인 신원은 공개와 개인용 키 쌍으로 되어 있으며 애플을 통해 배포됩니다. 개인 키는 당신 Keychain에 보관되고 암호화 함수를 통해 서명을 생성할 때 사용됩니다. 인증서는 공개키를 포함하고 소유자의 한 쌍의 키로 당신의 신원을 확인합니다. 인증서는 당신의 맥의 keychain 과 당신의 개발자 계정에 보관됩니다. 중간단계 인증서 또한 당신 keychain 속에 제공하며 이 것은 당신의 인증서가 반드시 인증서 발급기관을 통해 발급되게 합니다.


To sign apps, you must have both the code signing identity and the intermediate certificate installed in your keychain. When you install Xcode, Apple’s intermediate certificates are installed in your keychain for you. You create your code signing identity and sign your app using Xcode. Thereafter, you use Keychain Access and Member Center to manage your code signing identities.

앱에 싸인 하기는, 당신의 key chain에 반드시 코드 사인 신원과 중간물 인증서 설치가 되어야 합니다. 당신이 Xcode를 설치할 때, 애플은 당신을 위해 중간물 인증서를 당신이 keychain에 설치합니다. 당신은 당신의 코드 사인 시원을 생성하고 당신의 앱을 Xcode로 사인합니다. 그 후에, 당신은 Keychain Access와 Member Center를 이용해 당신의 코드시 사인 시원을 관리합니다.

../Art/code_signing_2x.png

Signing certificates are used to sign your app or installer package. A type of signing certificate used for development is used to identify you in a development provisioning profile that allows apps signed by you to launch on devices.

사인용 인증서는 당신의 앱 또는 인스톨 패키지를 사인에 사용합니다. 개발에 사용되는 인증서의 유형은 개발용 프로비저닝 프로파일에 당신의 신원을 확인하는데 사용하고 이것은 사인된 앱이 당신을 통해 장치에서 실행되는 것을 허가합니다.

Requesting Signing Certificates
서명인증 요청

Before you can code sign your app, you need to create your development certificate. You actually create all the types of signing certificates you’ll need, throughout the project life cycle, using Xcode. Xcode requests, downloads, and installs your signing certificates for you.

당신의 코드를 사인하기 전 할수 있으며, 당신은 당신의 개발용 인증서를 생성할 필요가 있습니다. 당신은 Xcode를 이용해, 프로젝트를 개발하는 동안, 당신이 필요로 하는, 모든 종류의 사인용 인증서를 생성할 필요가 있습니다. Xcode는 당신을 위해 요청하고, 다운로드 하고, 사인용 인증서를 설치합니다.


For a company, a team member requests their development certificate using Xcode but downloads and installs it later, after it is approved, as described in “Approving Development Certificates.”

회사용, 팀 멤버 개발용 인증서 요청은 Xcode를 사용하나 다운로드와 설치이 후에는 'Approving Development Certificates'에 성명된 것 처럼 이 것을 공인합니다.



If you need to export or import your developer profile later, follow the steps in “Exporting and Importing Certificates and Provisioning Profiles.”

만약당신이 개발 프로파일 이후 가져오기나 내보니가 필요하다면, '인증서와 프로비저닝 프로파일 가져오기와 내보내기'의 단계를 따라 하세요.

Verify Your Steps

당신의 단계를 확인.

Verify that your certificates are correct and ready for use. If the certificates shown in Xcode and Keychain Access don’t match your certificates in Member Center, follow the instructions in “Certificate Issues,” because if the certificates in your keychain are not valid, you won’t be able to sign your app.

당신의 인증서를 사용하기 위해 정확하고 사용준비가 되었는지 확인합니다. 만약 Xcode와 Keychain 인증서가 'Access don't match your certificates in Member Center'로 보이면, 당신의 keychain 속 인증서가 유효한 상태가 아니므로 'Certificat Issues'의 지시를 따르며, 당신의 앱 사인도 할 수 없을 것입니다.


The first time you verify your certificates, verify them in Xcode, Keychain Access, and Member Center to learn where they are located and how they appear in each tool. Later, you’ll use Keychain Access for troubleshooting.

당신의 인증서확인 첫 단계는, Xcode 속, Keychain, 그리고 Member Center 각각의 툴 속에 어디에 있는 지와 어떻게 보이는지를 아는 것입니다. 이후에, 당신읜 문제점 해결을 위해 Keychain Access를 이용할 것입니다.

Verify Using Xcode

Xcode 이용확인


After creating your certificates, you immediately see them displayed in Xcode.

인증서를 생성한 뒤, 즉시 Xcode에 표시된 것을 확인하세요.



Verify Using Keychain Access

Keychain Access를 이용해 확인합니다.


Keychain Access shows the private and public keys for each of your certificates.
Keychain Access는 당신의 각각의 인증서에 개인용 및 공개용 key 표시합니다.




Verify Using Member Center

Member Center 이용 확인


Member Center should show the same certificates you see in Xcode and Keychain Access because it stores the public keys.

'Member Center'는 공개키들이 저장된 것이므로 당신이 Xcode와 Keychain Access에서 본 것과 같이 보여야 합니다.





Troubleshooting

(트러블 슈팅 문제 점 발견과 해결하기)


If the certificates shown in Xcode and Keychain Access don’t match your certificates in Member Center, read “Certificate Issues” for information about how to resolve the discrepancies.

만약 Xcode와 Keychain Access 표시 인증서와 Member Center 속 인증서와 같지 않다면, 차를 해결하는 방법의 정보를  얻기 위해 'Certificate Issues'를 읽으세요.

Your Signing Certificates in Depth

당신의 사인용 인증서 깊은 곳.


Your code signing identities, stored in your keychain, represent your iOS and Mac program development and distribution credentials. You should be familiar with the names of these certificates, because they appear in menus, and the types of certificates, because they appear in lists, so that you don’t accidentally remove them from your keychain or Member Center.

당신의 코드 사인용 신원(identities)은, 당신의 keychain 속에 보관되고, 당신의 iOS와 Mac 개발자 프로그램과 배포 자격 증명 대표합니다. 당신은 이 인증서의 이름을 잘 알고 있어야 하는데, 이유는 인증서의 타입과, 메뉴들에 표시되고, 또 다른 이유는 당신이 keychain 또는 Member Center에서 의도하지 않게 삭제 하지 않았다면 리스트들 속에 나타나기 때문입니다.


There are different types of signing certificates for different purposes. Development certificates identify a person on your team and are used to run an app on a device. During development and testing, you are required to sign all iOS apps that run on devices and Mac apps that use certain technologies like iCloud and Game Center.

이것들은 다른 목적을 위한 사인용 인증서와는 다릅니다. 개발 인증서는 신원은 당신의 팀에서 개인의 신원을 확인하고 장치에서 앱을 실행 하는데 사용합니다. 개발과 테스트를 하는 동안, 장치에서 동작하는 iOS 앱과 iCloud와 Game Center와 같은 확실한 기술을 사용하는 Mac apps은 모두 사인 해야 합니다.


Distribution certificates identify the team and are used to submit your app to the store or for a Mac app, distribute it outside of the store. If you are a company, distribution certificates can be shared by team members who have permission to submit your app. There are multiple kinds of distribution certificates, each associated with a specific method of distribution. Different code signing identities are also used for iOS and Mac apps.

배포용 인증서는 팀을 확인하고 당신의 앱을 스토어로 보내거나 Mac app의 경우, 스토어 외에 이것을 배포하는 데 사용합니다. 만약 당신이 회사(계정)인 이라면, 당신의 앱을 보낼 때 권한을 가진 어떤 팀 멤버가 만든 배포 인증서를 공유할 수 있습니다. 이거은 각각의 지정된 배포 방법과 연관된, 배포 인증서의 다양한 방법입니다. 다른 코드 사인 식별은 iOS와 Mac 앱들에 이용됩니다.


Signing certificates are issued and authorized by Apple. You must have the intermediate certificate provided by Apple installed in your system keychain to use your certificate; otherwise, it is invalid. The intermediate certificates provided by Apple and installed by Xcode are:

사인용 인증서는 Apple이 검증하고 발급 했습니다. 당신의 인증서를 이용할 때 당신은 Apple이 당신의 시스템 keychain에 설치한 intermediate 인증서를 제공해야 합니다.(그렇지 않으면, 유효하지 않습니다.). Xcode로 Apply이 설치한 intermediate 인증서제공 :


  • Apple Worldwide Developer Relations Certification Authority. Used to validate development and store certificates.
    Apple 전 세계 개발자 관계 인증서 공인기관(한국어로 번역하니 요상하네요).  개발과 스토어 인증서를 입증하는 데 이용됩니다.


  • Developer ID Certification Authority. Used to validate a Developer ID certificate for distribution outside of the Mac App Store.
    개발자 ID 인증서 공인기관. Mac App Store외 배포용 개발자 ID 인증서를 입증하는데 이용합니다.



Refer to Table 2-1 for the mapping between the type of the certificate and name of the certificate as it appears in Keychain Access, and for the purpose of each.

Keychain Access 표시와, 각각의 목적별 인증서 타입과 인증서 이름 사이의 연결은 'Table 2-1'를 참조합니다.


The Devices organizer in Xcode and Member Center display the team name (or person’s name) and type for each certificate. Keychain Access and the Code Signing Identity build setting pop-up menu in Xcode display the name of the certificate.

Xcode 속 Devices organizer와 Member Center에 이름(또는 개인의 이름)과 각각 인증서의 타입이 표시됩니다. Keychain Access와 Xcode속 Code Signing Identity 빌드 설정 팝업 메뉴에 인증서의 이름이 표시됩니다.


There’s one Mac or iOS development certificate per team member. Therefore, development certificate names contain the person’s name. All other types of certificates are owned by the team (shared by multiple team members) and therefore, contain the team name. Individual developers are a one-person team, and so your name and the team name are the same.

어떤 것은 팀 멤버 당 Mac 또는 iOS 개발자 인증서 하나다. 그러므로, 개발 인증서 이름들에 개인 이름이 포함된다. 모든 다른 인증서 타입은 팀 소유고 그러므로, 팀 이름이 포함된다. 개인 개발자는 1인 팀이고, 그래서 당신 이름과 팀 이름은 같다.


Table 2-1  Certificate types and names

Certificate type

Certificate name

Description

iOS Development

iPhone Developer: Team Member Name

Used to sign an iOS app during development.

iOS Distribution

iPhone Distribution: Team Name

Used to sign an iOS app for ad hoc testing and submission to the App Store.

Mac Development

Mac Developer: Team Member Name

Used to sign a Mac app during development.

Mac App Distribution

3rd Party Mac Developer Application:Team Name

Used to sign a Mac app for submission to the Mac App Store.

Mac Installer Distribution

3rd Party Mac Developer Installer: Team Name

Used to sign a Mac Installer Package for submission to the Mac App Store.

Developer ID Application

Developer ID Application: Team Name

Used to sign a Mac app for distribution outside the Mac App Store.

Developer ID Installer

Developer ID Installer: Team Name

Used to sign a Mac Installer Package for distribution outside the Mac App Store.

Recap
요약정리

In this chapter, you learned how to create your development and distribution signing certificates that you’ll use in later chapters. You also learned how to identify the different types of certificates in Xcode, Keychain Access, and Member Center.

이 장에서, 당신은 이 후 장에서 사용할 개발자과 배포 사인인증서를 생성하는 방법을 배웠습니다. 당신은 또한 Xcode, Keychain Access, 그리고 Member Center속 다른 타입의 인증서를 식별하는 방법을 배웠습니다.

Posted by 창업자닉군
,