Unity macOS 애플리케이션 코드 서명 및 공증 가이드
이 문서는 Unity에서 macOS 애플리케이션을 코드 서명하고 공증하는 방법에 대해 설명합니다. 이 과정은 macOS 애플리케이션이 악성 콘텐츠를 포함하지 않았고, 애플리케이션의 무결성을 보장하기 위해 중요합니다.
코드 서명
코드 서명은 애플리케이션이 변경되지 않았음을 보장하며, Apple 기기는 이 서명을 사용하여 애플리케이션을 검증합니다. 애플리케이션에 코드 서명이 없는 경우, 사용자는 애플리케이션을 열기 전에 경고를 받을 수 있습니다. Unity는 macOS 애플리케이션을 빌드하는 모든 경우 자동으로 코드 서명을 추가합니다.
공증
공증 과정은 Apple이 애플리케이션이 개발자 ID 코드 서명을 가지고 있으며 악성 콘텐츠가 포함되어 있지 않음을 확인하는 과정입니다. 공증을 위해서는 Xcode, Xcode 커맨드 라인 툴 혹은 Unity 클라우드 빌드를 사용할 수 있습니다.
Xcode를 사용하여 공증하기
- Unity 프로젝트를 빌드하여 Xcode 프로젝트 생성.
- Xcode에서 애플리케이션 공증 진행.
자세한 정보는 Apple의 문서를 참조하세요.
Xcode 커맨드 라인 툴로 애플리케이션 공증하기
Xcode 커맨드 라인 툴을 사용하여 공증하려면 아래의 요구 사항을 충족해야 합니다.
요구 사항 | 설명 |
---|---|
Apple ID | 개발자 계정 필요 |
macOS 10.15 Catalina 이상 | Apple 기기에서 공증 수행 |
Xcode 11 이상 | 커맨드 라인 툴 포함 |
Apple 개발자 프로그램 멤버십 | 필요한 인증서 접근 |
애플리케이션 코드 서명
Xcode 커맨드 라인에서 다음 명령어로 애플리케이션에 코드 서명합니다.
codesign --deep --force --verify --verbose --timestamp --options runtime --entitlements "application_name.entitlements" --sign "Developer ID Application : XXX (YYY)" "application_name.app"
공증을 위한 애플리케이션 업로드
애플리케이션을 코드 서명한 후, Apple에 공증을 위해 업로드해야 합니다.
- 터미널 열기.
- 애플리케이션 압축하기:
ditto -c -k --sequesterRsrc --keepParent "application_name.app" "application_name.zip"
- 공증 서버에 애플리케이션 업로드하기:
xcrun altool --notarize-app --username apple_id --password xxxx-xxxx-xxxx-xxxx --asc-provider provider_short_name --primary-bundle-id application_bundle_id --file application_name.zip
요청 상태 확인 및 확인 메일
공증 프로세스가 완료되면 Apple이 이메일로 확인해 줍니다. 확인하려면 아래 명령어 사용:
spctl -a -v application_name.app
애플리케이션 스테이플링
애플리케이션을 스테이플링하면 인터넷이 연결되지 않은 기기에서도 애플리케이션의 서명이 검증됩니다. 아래 명령어로 스테이플링할 수 있습니다.
xcrun stapler staple “ApplicationName.app”
Unity 클라우드 빌드를 사용한 공증
Unity 클라우드 빌드는 macOS 애플리케이션을 빌드하는 동안 공증과 스테이플링을 자동으로 진행합니다. Apple ID, 애플리케이션별 비밀번호 및 개발자 ID 인증서가 필요합니다.
Unity 클라우드 빌드를 통한 공증 설정
- Unity 클라우드 빌드를 통해 Mac Desktop 빌드 타겟 생성.
- Notarization 섹션에서 EDIT NOTARIZATION 클릭.
- 필요한 정보를 입력하고 자격 증명 세트 저장.
마무리
이 가이드를 통해 macOS 애플리케이션의 코드 서명 및 공증 과정을 이해하고 실습할 수 있도록 돕습니다. 각 단계에서 제공되는 링크와 설명을 참고하여 올바르게 진행하세요. 추가 질문이 있다면 Unity의 공식 포럼이나 커뮤니티에 질문해 보세요.