Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
macOS로 내보내기
더 보기
이 페이지는 Godot 프로젝트를 macOS로 내보내는 방법을 설명합니다. 소스로부터 편집기나 내보내기 템플릿 바이너리를 컴파일하고자 한다면, 대신 macOS용 컴파일를 읽으세요.
공식 내보내기 템플릿을 사용하여 내보낸 macOS 앱은 실행 파일, 라이브러리 및 모든 프로젝트 파일을 저장하는 특정 구조의 폴더인 단일 "Universal 2" 바이너리 .app 번들로 내보내집니다. 이 번들은 있는 그대로 내보내거나, ZIP 아카이브로 압축하거나, DMG 디스크 이미지로 압축할 수 있습니다(macOS에서 내보낼 때만 지원됨). `macOS용 범용 바이너리는 Intel x86_64 및 ARM64(Apple Silicon) 아키텍처 <https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary>`__를 모두 지원합니다.
경고
파일 시스템 제한으로 인해 Windows에서 내보낸 .app 번들은 executable 플래그가 없으며 macOS에서 실행되지 않습니다. .zip``로 내보낸 프로젝트는 이 문제의 영향을 받지 않습니다. Windows에서 내보낸 ``.app 번들을 macOS에서 실행하려면 .app``를 macOS 또는 Linux를 실행하는 장치로 전송하고 ``chmod +x {executable_name} 터미널 명령을 사용하여 executable 권한을 추가하세요. Contents/MacOS/ 하위 폴더에 있는 기본 실행 파일과 Contents/Helpers/ 하위 폴더에 있는 선택적 도우미 실행 파일에는 .app 번들이 유효하려면 executable 권한이 있어야 합니다.
요구 사항
Godoy 내보내기 템플릿을 다운로드하세요. Godot 메뉴를 사용하세요: 편집기 > 내보내기 템플릿 관리
내보내기 옵션의
Application섹션에 유효하고 고유한 ``Bundle identifier``를 설정해야 합니다.
참고
A valid bundle ID can only contain alphanumeric characters, hyphens, and periods (A-Z, a-z, 0-9, -, and .).
Apple recommends using reverse-DNS format (e.g. com.example.your-game) of a domain you own, so that your bundle ID is guaranteed to be unique.
Bundle IDs are case-insensitive. See CFBundleIdentifier.
경고
코드 서명 및 공증 없이 내보낸 프로젝트는 알 수 없는 소스에서 다운로드되는 경우 Gatekeeper에 의해 차단됩니다. 자세한 내용은 macOS에서 Godot 앱 실행 페이지를 참조하세요.
코드 서명과 공증
기본적으로 macOS는 서명되고 공증된 응용 프로그램만 실행합니다. 다른 서명 구성을 사용하는 경우 해결 방법은 :ref:`macOS에서 Godot 앱 실행 <doc_running_on_macos>`을 참조하세요.
앱을 공증하려면 반드시 유효한 `Apple 개발자 ID 인증서 <https://developer.apple.com/>`__가 있어야 합니다.
Apple Developer ID 인증서가 있고 macOS에서 내보내는 경우
Xcode 명령줄 도구를 설치하고 Xcode를 한 번 이상 열거나 sudo xcodebuild -license accept 명령을 실행하여 라이센스 계약에 동의합니다.
내보낸 앱에 서명하려면
Code Signing > Codesign옵션에서 ``Xcode codesign``를 선택하세요.Code Signing > Identity섹션에서 유효한 Apple ID 인증서 ID(인증서 "일반 이름")를 설정합니다.
내보낸 앱을 공증하려면
Notarization > Notarization옵션에서 ``Xcode altool``를 선택하세요.Debugging자격을 비활성화합니다.유효한 Apple ID 로그인/앱을 설정하세요. 특정 비밀번호 또는 App Store 연결 API UUID /
Notarization섹션을 입력하세요.
xcrun notarytool history 명령을 사용하여 공증 상태를 확인할 수 있고 xcrun notarytool log {ID} 명령을 사용하여 공증 로그를 다운로드할 수 있습니다.
공증 문제가 발생하는 경우 자세한 내용은 `일반적인 공증 문제 해결 <https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues>`__을 참조하세요.
공증이 완료된 후 내보낸 프로젝트에 `티켓 <https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow>`__을 스테이플합니다.
Apple Developer ID 인증서가 있고 Linux 또는 Windows에서 내보내는 경우
`PyOxidizer rcodesign <https://github.com/indygreg/apple-platform-rs/tree/main/apple-codesign>`__을 설치하고 ``Editor Settings > Export > macOS > rcodesign``에서 ``rcodesign``에 대한 경로를 구성합니다.
내보낸 앱에 서명하려면
Code Signing > Codesign옵션에서 ``PyOxidizer rcodesign``를 선택하세요.Code Signing섹션에서 유효한 Apple ID PKCS #12 인증서 파일과 비밀번호를 설정하세요.
내보낸 앱을 공증하려면
Notarization > Notarization옵션에서 ``PyOxidizer rcodesign``를 선택하세요.Debugging자격을 비활성화합니다.Notarization섹션에 유효한 App Store 연결 API UUID/키를 설정하세요.
rcodesign notary-log 명령을 사용하여 공증 상태를 확인할 수 있습니다.
공증이 완료되면 rcodesign staple 명령을 사용하여 내보낸 프로젝트에 티켓을 스테이플링합니다.
Apple Developer ID 인증서가 없는 경우
Code Signing > Codesign옵션에서 ``Built-in (ad-hoc only)``를 선택하세요.Notarization > Notarization옵션에서 ``Disabled``를 선택하세요.
이 경우 Godot는 최종 사용자가 내보낸 앱을 더 쉽게 실행할 수 있도록 임시 서명을 사용합니다. 자세한 내용은 macOS에서 Godot 앱 실행 페이지를 참조하세요.
플러그인에 대해서
최적화(Optimization) |
설명 |
|---|---|
노드 |
코드 서명에 사용하는 도구입니다. |
식별자 |
서명 ID의 "전체 이름" 또는 "일반 이름"은 macOS 키체인에 저장됩니다. [1] |
폴더 만들기 |
PKCS #12 인증서 파일. [2] |
인증서 비밀번호 |
인증서 파일의 비밀번호입니다. [2] |
커스텀 옵션 |
코드 서명 도구에 전달된 명령줄 인수 배열입니다. |
공증 옵션
최적화(Optimization) |
설명 |
|---|---|
공증 |
공증에 사용할 도구. |
Apple ID 이름 |
Apple ID 계정 이름(이메일 주소). [3] |
Apple ID 비밀번호 |
Apple ID 앱별 비밀번호입니다. 2단계 인증을 활성화하고 앱 비밀번호를 생성하려면 `앱 비밀번호 사용 <https://support.apple.com/en-us/HT204397>`__을 참조하세요. [3] |
Apple 팀 ID |
Apple ID가 여러 팀에 속하는 경우 팀 ID("조직 단위")(선택 사항) [3] |
API UUID |
Apple App Store 연결 API 발급자 UUID. |
API 키 |
Apple App Store 연결 API 키. |
참고
Apple ID 이름/비밀번호 또는 App Store 연결 API UUID/키를 설정해야 합니다.
이러한 옵션은 Xcode altool을 사용하여 공증할 때만 표시됩니다.
자세한 내용은 `배포 전 macOS 소프트웨어 공증 <https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution?language=objc>`__을 참조하세요.
내용 테스트
강화된 런타임 권한
강화된 런타임 권한은 보안 옵션과 리소스 액세스 정책을 관리합니다. 자세한 내용은 ` 강화된 런타임 <https://developer.apple.com/documentation/security/hardened_runtime?language=objc>`__을 참조하세요.
자격 |
설명 |
|---|---|
JIT 코드 실행 허용 [4] |
JIT 코드에 대한 쓰기 가능 및 실행 가능 메모리를 생성할 수 있습니다. 동적 또는 자체 수정 네이티브 코드가 포함된 추가 기능을 사용하는 경우 추가 기능 설명서에 따라 해당 기능을 활성화하세요. |
서명되지 않은 실행 가능 메모리 허용 [4] |
JIT 제한 없이 쓰기 가능하고 실행 가능한 메모리를 생성할 수 있습니다. 동적 또는 자체 수정 네이티브 코드가 포함된 추가 기능을 사용하는 경우 추가 기능 설명서에 따라 해당 기능을 활성화하세요. |
DYLD 환경 변수 [4] 허용 |
앱이 동적 링커 환경 변수를 사용하여 코드를 삽입할 수 있도록 허용합니다. 동적 또는 자체 수정 네이티브 코드가 포함된 추가 기능을 사용하는 경우 추가 기능 설명서에 따라 해당 기능을 활성화하세요. |
라이브러리 검증 비활성화 |
앱이 임의의 라이브러리 및 프레임워크를 로드할 수 있도록 허용합니다. GDExtension 추가 기능이나 임시 서명을 사용 중이거나 사용자가 제공한 외부 추가 기능을 지원하려는 경우 활성화하세요. |
오디오 입력 |
마이크나 기타 오디오 입력 소스를 사용해야 하는 경우 활성화하고, 활성화된 경우 privacy/microphone_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
카메라 |
카메라를 사용해야 하는 경우 활성화하고, 활성화된 경우 privacy/camera_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
위치 |
위치 서비스의 위치 정보를 사용해야 하는 경우 활성화하고, 활성화된 경우 privacy/location_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
주소록 |
[5] 사용자 주소록의 연락처에 대한 액세스를 허용하려면 활성화합니다. 활성화된 경우 privacy/address_book_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
달력 |
[5] 사용자의 달력에 대한 액세스를 허용하려면 활성화합니다. 활성화된 경우 privacy/calendar_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
애셋 라이브러리 |
[5] 사용자의 사진 라이브러리에 대한 액세스를 허용하려면 활성화합니다. 활성화된 경우 privacy/photos_library_usage_description 옵션에 사용 메시지도 제공해야 합니다. |
애플 이벤트 |
[5] 앱이 Apple 이벤트를 다른 앱으로 보낼 수 있도록 허용합니다. |
디버깅 |
[6] 내보낸 앱에서 기본 디버거(GDB, LLDB)를 사용하려면 이 권한을 일시적으로 활성화할 수 있습니다. 프로덕션 내보내기의 경우 이 권한을 비활성화해야 합니다. |
Allow JIT Code Execution, Allow Unsigned Executable Memory 및 Allow DYLD Environment Variables 자격은 Godot Mono 내보내기에 대해 항상 활성화되어 있으며 내보내기 옵션에는 표시되지 않습니다.
이러한 기능은 기본적으로 Godot에서 지원되지 않습니다. 해당 기능이 필요한 추가 기능을 사용하는 경우에만 활성화하세요.
앱을 공증하려면 Debugging 권한을 비활성화해야 합니다.
앱 샌드박스 자격
App Sandbox는 사용자 데이터, 네트워킹 및 장치에 대한 액세스를 제한합니다. 샌드박스가 적용된 앱은 대부분의 파일 시스템에 액세스할 수 없으며 사용자 정의 파일 대화 상자를 사용할 수 없으며 .app 번들 외부에서 바이너리(OS.execute 및 OS.create_process 사용)를 실행할 수 없습니다. 자세한 내용은 `App Sandbox <https://developer.apple.com/documentation/security/app_sandbox?language=objc>`__을 참조하세요.
참고
App Store를 통해 앱을 배포하려면 앱 샌드박스를 활성화해야 합니다.
자격 |
설명 |
|---|---|
활성화 |
앱 샌드박스를 활성화합니다. |
네트워크 서버 |
앱이 들어오는 네트워크 연결을 수신하도록 허용하려면 활성화하세요. |
네트워크 클라이언트 |
앱이 나가는 네트워크 연결을 설정하도록 허용하려면 활성화하세요. |
USB 디바이스 |
앱이 USB 장치와 상호 작용할 수 있도록 활성화합니다. 유선 컨트롤러를 사용하려면 이 권한이 필요합니다. |
블루투스 디바이스 |
앱이 Bluetooth 장치와 상호 작용할 수 있도록 활성화합니다. 무선 컨트롤러를 사용하려면 이 자격이 필요합니다. |
파일 구조 |
사용자의 "다운로드" 폴더에 대한 읽기 또는 쓰기 액세스를 허용합니다. |
파일 구조 |
사용자의 "사진" 폴더에 대한 읽기 또는 쓰기 액세스를 허용합니다. |
파일 구조 |
사용자의 "음악" 폴더에 대한 읽기 또는 쓰기 액세스를 허용합니다. |
파일 구조 |
사용자의 "영화" 폴더에 대한 읽기 또는 쓰기 액세스를 허용합니다. |
사용자가 선택한 파일 [7] |
임의의 폴더에 대한 읽기 또는 쓰기 액세스를 허용합니다. 액세스 권한을 얻으려면 사용자가 기본 파일 대화 상자에서 폴더를 선택해야 합니다. |
도우미 실행 파일 |
앱 번들에 삽입할 도우미 실행 파일 목록입니다. 샌드박스 앱은 이러한 실행 파일만 실행하도록 제한됩니다. |
선택적으로 privacy/*_folder_usage_description 옵션에서 다양한 폴더에 대한 사용 메시지를 제공할 수 있습니다.
참고
사용자 정의 자격 파일을 선택하여 기본 자격을 재정의할 수 있습니다. 이 경우 다른 모든 자격은 무시됩니다.
환경변수
다음 환경 변수를 사용하여 편집기 외부에서 내보내기 옵션을 설정할 수 있습니다. 내보내기 프로세스 중에 이는 내보내기 메뉴에서 설정한 값보다 우선 적용됩니다.
내보내기 옵션 |
환경 변수 |
|---|---|
암호화 / 암호화 키 |
|
옵션 / 공동설계 / 인증서 파일 |
|
옵션 / 공동설계 / 인증서 비밀번호 |
|
옵션 / 공동 설계 / 프로비저닝 프로필 |
|
옵션 / 공증 / API UUID |
|
옵션 / 공증 / API 키 |
|
옵션 / 공증 / API Key ID |
|
옵션 / 공증 / Apple ID 이름 |
|
옵션 / 공증 / Apple ID 비밀번호 |
|
내보내기 옵션
EditorExportPlatformMacOS 클래스 참조에서 사용 가능한 내보내기 옵션의 전체 목록을 찾을 수 있습니다.