Membangun aplikasi macOS Anda
Layanan distribusi digital untuk aplikasi macOS

Melepaskan aplikasi macOS Anda

Notarization adalah proses di mana Apple memverifikasi aplikasi Anda untuk memastikan memiliki tanda tangan kode ID Developer dan tidak mengandung konten jahat. Untuk informasi lebih lanjut tentang noratisasi, lihat dokumentasi Apple pada MacOS Perangkat Lunak Sebelum Distribusi.

Jika Anda mengembangkan pada perangkat Apple, Anda dapat menggunakan alat baris perintah xcode, atau Xcode untuk mencatat aplikasi Anda. Jika Anda tidak memiliki perangkat Apple, gunakan Build Unity Cloud.Layanan integrasi berkelanjutan untuk proyek Unity yang mengotomatiskan proses pembuatan build pada server Unity. More info
Lihat di Glossary
to notarize your application. If you don’t have an Apple device, use Unity Cloud Build.

Halaman ini berisi informasi tentang metode notarisasi berikut:

Notarisasi menggunakan Xcode

Unity dapat membuat proyek Xcode yang mewakili proyek Unity Anda selama proses build. Anda dapat menggunakan proyek Xcode ini untuk mencatat aplikasi Anda. Untuk membuat proyek Xcode dari proyek Unity Anda, ikuti aplikasi macOS membangun langkah. Untuk informasi tentang bagaimana cara mencatat proyek Xcode, lihat dokumentasi Apple pada MacOS Perangkat Lunak Sebelum Distribusi.

Notarization menggunakan alat garis perintah Xcode

Jika Anda tidak bisa memunculkan aplikasi Anda di lingkungan Xcode, atau jika Anda ingin mengontrol notarisasi secara manual, Anda dapat menggunakan alat garis perintah Xcode. Untuk melakukan ini, Anda perlu:

Kode menandatangani aplikasi Anda

Untuk memunculkan aplikasi Anda dengan alat garis perintah Xcode, Anda perlu terlebih dahulu untuk menandai kode aplikasi. Bagian ini menjelaskan cara menandai kode aplikasi Anda menggunakan alat garis perintah Xcode. Untuk informasi tentang penandatangan kode apa dan mengapa Apple membutuhkannya, lihat Code signing.

Signing identity

Unity menambahkan tanda tangan kode untuk setiap mac OS membangunnya menghasilkan. Ini adalah tanda tangan kode sederhana dan tidak mengidentifikasi Anda sebagai pengembang. Untuk mencatat aplikasi, Apple memerlukan tanda tangan kode untuk menyertakan tanda tangan kriptografi yang mengidentifikasi pengembang. Ini disebut identitas penandatangan. Biasanya, Anda menggunakan sertifikat ID Pengembang.

Untuk membuat sertifikat ID Developer baru, buka Buat Sertifikat Baru:

  1. Ikuti petunjuk untuk membuat kunci pribadi dan unggah Certificate Signing Request.
  2. Unduh sertifikat Developer ID Anda. Format file untuk sertifikat ini adalah .cer.
  3. Klik pada sertifikat untuk menambahkannya ke Keychain Anda. Dalam Keychain, itu muncul dengan nama yang diformat seperti: Developer ID Application : XXX (YYY).

identifier aplikasi

Untuk mencatat aplikasi Anda, Apple perlu mengidentifikasinya. Ada dua cara untuk mendapatkan pengidentifikasi aplikasi: dalam Unity, atau dalam information property list file aplikasi yang dibangun.

  • Di Unity:
    1. Edit > Project Settings > Player.
    2. Memperluas bagian Other Settings dan pergi ke Mac App Store Options.
    3. Lihat nilai Bundle Identifier.
  • Dalam file daftar properti informasi:
    1. Di Finder, pergi ke aplikasi bawaan Anda.
    2. Klik kanan pada aplikasi dan pilih Show Package Contents.
    3. Buka Contents dan buka Info.plist.
    4. Kunci yang mewakili pengidentifikasi aplikasi adalah CFBundleIdentifier.

Ketika Anda memiliki pengidentifikasi aplikasi Anda, Anda dapat mendaftarkannya dengan Apple. Untuk melakukan ini:

  1. Masuk ke Developer API dan masuk.
  2. Pilih Certificates, IDs & Profiles.
  3. Pilih Identifiers, dan tambahkan ID bundel Anda.

Entitlements

Entitlements adalah izin atau pembatasan bahwa tanda tangan kode Anda termasuk yang memungkinkan atau mencegah aplikasi Anda mengambil tindakan tertentu. Untuk informasi lebih lanjut, lihat Entitlements.

Untuk mengatur judul untuk aplikasi Anda:

  1. Dalam direktori yang sama dengan aplikasi bawaan Anda, buat file dengan nama yang sama seperti aplikasi Anda dengan ekstensi file .entitlements. Misalnya, jika aplikasi Anda disebut Sampel, buat file yang disebut Sample.entitlements.
  2. Buka file dengan editor teks dan salin konten berikut:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
       <key>com.apple.security.cs.disable-library-validation</key>
       <true/>
       <key>com.apple.security.cs.disable-executable-page-protection</key>
       <true/>
    </dict>
</plist>

Penjelasan ini adalah judul minimum aplikasi macOS perlu memiliki Hardened Runtime. Jika aplikasi Anda membutuhkan lebih banyak judul, tambahkan ke daftar ini.

Code signing

Proses penandaan kode menggunakan baris perintah. Untuk memulai, membuka Terminal dan menavigasi ke direktori yang digunakan. Untuk memastikan bahwa Anda memiliki izin membaca yang diperlukan untuk memproses penandatangan kode, menjalankan perintah berikut di mana "application_name.app" adalah nama aplikasi Anda:

chmod -R a+xr "application_name.app"

Tanda tangan kode menggunakan identitas penandatangan tertentu. Biasanya, ini adalah identitas Penandaan Aplikasi ID Pengembang Anda. Namun, beberapa layanan distribusi digital, seperti Toko Aplikasi Mac memerlukan identitas penandaan yang berbeda. Untuk informasi yang menandatangani identitas layanan distribusi digital tertentu, lihat dokumentasi untuk Layanan distribusi digital.

Untuk menandai kode aplikasi Anda, jalankan perintah berikut di mana:

codesign --deep --force --verify --verbose --timestamp --options runtime --entitlements "application_name.entitlements" --sign "Developer ID Application : XXX (YYY)" "application_name.app"

Perintah ini secara rekursif menavigasi melalui folder bundel aplikasi, tanda-tanda semua file, menambahkan timestamp yang aman, dan menanamkan judul yang telah Anda set ke tanda tangan.

Sitemap Menggunakan opsi --deep mungkin menyebabkan masalah dengan tanda tangan kode Anda. Ini karena:

  • Ini menerapkan pilihan penandatangan kode yang sama dan judul untuk semua kode yang tanda-tanda.

  • Ini hanya menandai file kode yang ditemukan. Jika ada file kode di tempat di mana sistem mengharapkan untuk menemukan data, menggunakan --deep tidak menandatangani file kode ini.

Untuk informasi lebih lanjut tentang opsi --deep dan cara menyelesaikan masalah dengan itu, lihat Sign your code.

Unggah ke Apple untuk notarisasi

Setelah Anda menandai kode aplikasi Anda, Anda perlu mengunggahnya ke Apple untuk notarisasi. Untuk melakukan ini, Apple membutuhkan:

Menekan aplikasi

Apple mengharuskan Anda mengompres aplikasi Anda sebelum Anda mengunggahnya untuk notarisasi. Untuk melakukan ini:

  1. Buka Terminal dan arahkan ke direktori aplikasi.

  2. Jalankan perintah berikut di mana:
    • "application_name.app" adalah aplikasi bawaan Anda.
    • "application_name.zip" adalah nama file terkompresi untuk menghasilkan.
ditto -c -k --sequesterRsrc --keepParent "application_name.app" "application_name.zip" 

Ini mengompresi aplikasi Anda dan output file terkompresi ke direktori yang sama seperti aplikasi Anda.

Menghasilkan aplikasi Login

Untuk mencatat aplikasi, Apple memerlukan kata sandi unik dalam format tertentu. Untuk menghasilkan kata sandi aplikasi, Anda perlu memiliki ID Apple. Jika Anda tidak memiliki satu, pergi ke Kelola Anda Apple ID dan buat satu.

Untuk informasi tentang cara menghasilkan kata sandi aplikasi, lihat Cara menghasilkan kata sandi khusus aplikasi. Kata sandi yang Anda buat menggunakan format berikut: xxxx-xxxx-xxxx-xxxx.

Dapatkan nama singkat penyedia Anda

Nama pendek penyedia adalah label satu pedang yang mengidentifikasi individu atau perusahaan. Apple menggunakan nama singkat penyedia untuk menentukan organisasi mana yang ingin dicatat ketika ID Apple Anda dikaitkan dengan lebih dari satu organisasi. Untuk mendapatkan nama singkat penyedia Anda:

  1. Terminal Terbuka.
  2. Jalankan perintah Xcode berikut di mana:
xcrun iTMSTransporter -m provider -u apple_id -p xxxx-xxxx-xxxx-xxxx

Mulai proses unggah

Untuk Apple untuk mencatat aplikasi Anda, Anda perlu mengunggahnya ke server notarisasi mereka. Untuk melakukan ini:

  1. Buka Terminal dan arahkan ke direktori aplikasi terkompresi berada.
  2. Jalankan perintah berikut di mana:
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

Jika unggah berhasil, Apple menampilkan respons di Terminal yang berisi ID permintaan. Anda dapat menggunakan ID permintaan ini untuk memeriksa status permintaan Anda. Ini berguna karena proses notarisasi mungkin memakan waktu beberapa jam tergantung pada lalu lintas ke layanan. Untuk melakukan ini:

  1. Buka Terminal dan arahkan ke direktori aplikasi terkompresi berada.
  2. Jalankan perintah berikut di mana:
    • request_id adalah ID permintaan yang kembali Apple dari perintah sebelumnya.
    • apple_id adalah ID Apple Anda.
    • xxxx-xxxx-xxxx-xxxx adalah kata sandi aplikasi Anda.
    • provider_short_name adalah penyedia nama singkat Anda.
xcrun altool --notarization-info request_id --username apple_id --password xxxx-xxxx-xxxx-xxxx --asc-provider provider_short_name

Ketika proses notarisasi selesai, Apple mengirimkan email konfirmasi di alamat yang terkait dengan ID Apple Anda. Anda kemudian dapat memverifikasi bahwa notarisasi berhasil. Untuk melakukan ini:

  1. Buka Terminal dan arahkan ke direktori aplikasi.
  2. Jalankan perintah berikut di mana:
    • application_name.app adalah nama aplikasi Anda:
spctl -a -v application_name.app

Jika notarisasi berhasil, pengembalian pesan yang menunjukkan bahwa Apple menerima aplikasi dan menyertakan ID Pengembang Anda.

Menjelajahi aplikasi

Setelah mencatat aplikasi Anda, perangkat apa pun yang berjalan dapat memverifikasi bahwa memiliki tanda tangan kode dan tidak mengandung konten jahat. Namun, perangkat hanya dapat melakukan verifikasi ini jika memiliki koneksi internet. Untuk membuat perangkat dapat memverifikasi aplikasi Anda tanpa koneksi internet, Anda harus menumbuhkan aplikasi. Untuk informasi tentang stapling, lihat Menjelang Tiket ke Distribusi Anda. Untuk menumbuhkan aplikasi Anda,

  1. Buka Terminal dan arahkan ke direktori aplikasi.
  2. Jalankan perintah berikut "ApplicationName.app" adalah nama aplikasi Anda: xcrun stapler staple "ApplicationName.app".

Notarization menggunakan Build Unity Cloud

tidak dapat mencairkan dan menelusuri aplikasi macOS Anda selama proses build. Untuk melakukan ini, Unity membutuhkan:

Tergantung pada platform Anda berkembang, proses untuk beberapa persyaratan ini berbeda. Jika Anda mengembangkan pada perangkat Apple, Anda dapat menggunakan alat garis perintah Xcode untuk mendapatkan informasi dan membuat file yang relevan. Namun, Jika Anda berkembang di Windows atau Linux, Anda tidak memiliki akses ke perangkat perintah Xcode spesifik Apple.

Terlepas dari platform mana yang Anda gunakan, proses untuk mendapatkan Apple ID, password, dan file judul adalah platform-agnostic:

  1. Jika Anda tidak memiliki ID Apple, pergi ke Kelola Anda Apple ID dan buat satu.
  2. Buat kata sandi aplikasi. Untuk informasi tentang cara melakukan ini, lihat Menghasilkan aplikasi Login.
  3. Jika Anda tidak memiliki keanggotaan Apple Developer, mendaftar di Developer API.
  4. Buat file judul untuk aplikasi Anda. Untuk informasi tentang cara melakukan ini, lihat Entitlements.

Setelah Anda menyelesaikan langkah-langkah ini:

Unity Cloud Membangun notarisasi untuk perangkat Apple

Jika Anda mengembangkan pada perangkat Apple, Anda dapat menggunakan alat garis perintah Xcode untuk memenuhi persyaratan yang tercantum dalam Notarization menggunakan Build Unity Cloud. Anda kemudian dapat mengatur Build Unity Cloud untuk mencatat dan menumbuhkan aplikasi Anda sebagai bagian dari proses build. Untuk memenuhi persyaratan:

  1. Ikuti langkah-langkah platform-agnostic di Notarization menggunakan Build Unity Cloud.
  2. Buat sertifikat Developer ID dan tambahkan ke Keychain Anda. Untuk informasi tentang cara melakukan ini, lihat Signing identity.
  3. Dari Keychain, ekspor sertifikat ID pengembang sebagai file dalam format Personal Information Exchange (.p12). Untuk informasi tentang cara melakukan ini, lihat Impor dan ekspor keychain item menggunakan akses Keychain di Mac.
  4. Dapatkan nama singkat penyedia Anda. Untuk informasi tentang cara melakukan ini, lihat Dapatkan nama singkat penyedia Anda.

Setelah memenuhi persyaratan, mengisi dan menyerahkan Unity Cloud Membangun bentuk notarisasi.

Unity Cloud Membangun notarisasi untuk perangkat Windows dan Linux

Jika Anda berkembang di Windows atau Linux tetapi ingin membangun, mencatat, dan menjebak aplikasi Anda untuk macOS, Anda tidak dapat menggunakan alat garis perintah Xcode. Untuk memenuhi persyaratan yang tercantum dalam Notarization menggunakan Build Unity Cloud sehingga Anda dapat mengatur Build Unity Cloud untuk mencatat dan menumbuhkan aplikasi Anda sebagai bagian dari proses build:

  1. Ikuti langkah-langkah platform-agnostic di Notarization menggunakan Build Unity Cloud.
  2. Buat sertifikat Developer ID dan unduh. Untuk informasi tentang cara melakukan ini, lihat Signing identity. Catatan: Langkah terakhir di Signing identity hanya relevan untuk pengguna macOS.
  3. Konversikan sertifikat ID pengembang ke format file PKCS #12 Pertukaran Informasi Pribadi (.p12). Untuk informasi tentang cara melakukan ini, lihat Mengkonversi sertifikat ID pengembang ke file .p12 pada Windows dan Linux.
  4. Dapatkan nama singkat penyedia Anda melalui akun Pengembang Apple Anda. Untuk melakukan ini, pergi ke Rincian Keanggotaan dan temukan Team ID Anda. Anda dapat menggunakan Team ID sebagai nama pendek penyedia.

Setelah memenuhi persyaratan, mengisi dan menyerahkan Unity Cloud Membangun bentuk notarisasi.

Mengkonversi sertifikat ID pengembang ke file .p12 pada Windows dan Linux

File .p12 dibundel sertifikat ID Pengembang Anda dan kunci pribadi. Untuk membuat salah satu dari sertifikat ID Pengembang Anda:

  1. Buka antarmuka baris perintah dan pergi ke direktori yang berisi file sertifikat ID Developer Anda. Jika Anda tidak mengunduh sertifikat ID Pengembang Anda, lihat Signing identity.

  2. Sertifikat ID pengembang menggunakan format file .cer. Konversi file ini ke format file .pem. Untuk melakukan ini, menjalankan perintah berikut di mana:
    • developer_identity.cer adalah file sertifikat ID pengembang untuk mengkonversi.
    • developer_identity.pem adalah nama file dan jenis file untuk output.

    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

    %
  3. Hasilkan kunci pribadi baru. Untuk melakukan ini, menjalankan perintah berikut di mana:
    • mykey.key adalah nama file dan jenis file dari kunci pribadi untuk output.

    openssl genrsa -out mykey.key 2048

    %
  4. Hasilkan file .p12. Untuk melakukan ini, menjalankan perintah berikut di mana:
    • mykey.key adalah file kunci pribadi yang Anda hasilkan dalam langkah 3.
    • developer_identity.pem adalah file .pem yang Anda hasilkan dalam langkah 2.

    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

    %

Mengirimkan bentuk notarisasi Build Unity Cloud

Setelah Anda memenuhi persyaratan yang diuraikan dalam Notarization menggunakan Build Unity Cloud, ikuti langkah-langkah ini untuk setup Unity Cloud Build notarization:

  1. Mengatur proyek Anda untuk menggunakan Build Unity Cloud. Untuk informasi tentang cara melakukan ini, lihat .
  2. Buat target build Mac Desktop baru di Build Cloud.
  3. Kembali ke halaman Config. Halaman ini sekarang termasuk bagian Notarization. Buka bagian ini dan klik EDIT NOTARIZATION.
    The section available on the Config page.
  4. Aktifkan bendera Notarization. Jika Anda sebelumnya telah menyediakan serangkaian kredensial notarisasi untuk Build Unity Cloud, untuk organisasi yang sama, Anda dapat memilih mereka dari Credentials. Jika tidak, pilih Add new provisioning credentials.
    The credentials drop-down.
  5. Memberikan berikut:
  6. Simpan kredensial Anda.
  7. Kembali ke halaman Build History dan mulai membangun target Mac Anda.
  8. Jika build berhasil, Build Unity Cloud berusaha untuk mencatat dan stabil hasilnya.
    • Cloud Build menjalankan perintah codesign dengan bendera berikut: --deep --force --verify --verbose --timestamp --options runtime. Ini tidak mungkin untuk menentukan bendera kustom.
    • Jika Anda ingin melihat output log tambahan dari notarisasi, set variabel lingkungan FASTLANE_NOTARIZE_VERBOSE=true dalam target build Anda Environment Variables.
  9. Setelah Unity Cloud Build builds, notarizes, dan staples proyek Anda, Anda dapat mengunduh file terkompresi yang berisi build.
Membangun aplikasi macOS Anda
Layanan distribusi digital untuk aplikasi macOS