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:
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.
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:
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.
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:
.cer
.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.
Ketika Anda memiliki pengidentifikasi aplikasi Anda, Anda dapat mendaftarkannya dengan Apple. Untuk melakukan ini:
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:
.entitlements
. Misalnya, jika aplikasi Anda disebut Sampel, buat file yang disebut Sample.entitlements
.<?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.
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:
"application_name.app"
adalah aplikasi bawaan Anda."Developer ID Application : XXX (YYY)"
adalah menandatangani identitas Anda.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.
Setelah Anda menandai kode aplikasi Anda, Anda perlu mengunggahnya ke Apple untuk notarisasi. Untuk melakukan ini, Apple membutuhkan:
Apple mengharuskan Anda mengompres aplikasi Anda sebelum Anda mengunggahnya untuk notarisasi. Untuk melakukan ini:
Buka Terminal dan arahkan ke direktori aplikasi.
"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.
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
.
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:
apple_id
adalah ID Apple Anda.xxxx-xxxx-xxxx-xxxx
adalah kata sandi aplikasi Anda.xcrun iTMSTransporter -m provider -u apple_id -p xxxx-xxxx-xxxx-xxxx
Untuk Apple untuk mencatat aplikasi Anda, Anda perlu mengunggahnya ke server notarisasi mereka. Untuk melakukan ini:
apple_id
adalah ID Apple Anda.xxxx-xxxx-xxxx-xxxx
adalah kata sandi aplikasi Anda.provider_short_name
adalah penyedia nama singkat Anda.application_bundle_id
adalah identifier aplikasi aplikasi.application_name.zip
adalah aplikasi terkompresi.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:
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:
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.
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,
"ApplicationName.app"
adalah nama aplikasi Anda: xcrun stapler staple "ApplicationName.app"
.tidak dapat mencairkan dan menelusuri aplikasi macOS Anda selama proses build. Untuk melakukan ini, Unity membutuhkan:
.p12
.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:
Setelah Anda menyelesaikan langkah-langkah ini:
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:
.p12
). Untuk informasi tentang cara melakukan ini, lihat Impor dan ekspor keychain item menggunakan akses Keychain di Mac.Setelah memenuhi persyaratan, mengisi dan menyerahkan Unity Cloud Membangun bentuk notarisasi.
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:
Setelah memenuhi persyaratan, mengisi dan menyerahkan Unity Cloud Membangun bentuk notarisasi.
File .p12
dibundel sertifikat ID Pengembang Anda dan kunci pribadi. Untuk membuat salah satu dari sertifikat ID Pengembang Anda:
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.
.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
mykey.key
adalah nama file dan jenis file dari kunci pribadi untuk output.openssl genrsa -out mykey.key 2048
.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
Setelah Anda memenuhi persyaratan yang diuraikan dalam Notarization menggunakan Build Unity Cloud, ikuti langkah-langkah ini untuk setup Unity Cloud Build notarization:
.p12
yang Anda buat di kedua Unity Cloud Membangun notarisasi untuk perangkat Apple atau Unity Cloud Membangun notarisasi untuk perangkat Windows dan Linux, tergantung pada platform Anda..p12
.codesign
dengan bendera berikut: --deep --force --verify --verbose --timestamp --options runtime
. Ini tidak mungkin untuk menentukan bendera kustom.FASTLANE_NOTARIZE_VERBOSE=true
dalam target build Anda Environment Variables.