Menerbitkan aplikasi Mac Catalyst untuk distribusi di luar Mac App Store
Alternatif untuk mendistribusikan app Mac Catalyst melalui Mac App Store adalah mendistribusikannya di luar Mac App Store. Dengan pendekatan ini, aplikasi Mac Catalyst Anda dapat dihosting di lokasi yang Anda pilih untuk diunduh. Anggota Program Pengembang Apple dan Program Perusahaan Pengembang Apple dapat menggunakan pendekatan distribusi ini.
Mendistribusikan aplikasi Mac Catalyst mengharuskan aplikasi disediakan menggunakan profil provisi. Profil provisi adalah file yang berisi informasi penandatanganan kode, serta identitas aplikasi dan mekanisme distribusi yang dimaksudkan.
Untuk mendistribusikan aplikasi Catalyst Mac UI .NET Multi-platform (.NET MAUI) di luar Mac App Store, Anda harus membangun profil provisi distribusi khusus untuk itu. Profil ini memungkinkan aplikasi ditandatangani secara digital untuk rilis sehingga dapat diinstal di Mac. Profil provisi distribusi berisi ID Aplikasi dan sertifikat aplikasi ID pengembang. Anda harus membuat sertifikat aplikasi ID pengembang untuk mengidentifikasi diri Anda atau organisasi Anda, jika Anda belum memilikinya. Selain itu, Anda harus membuat sertifikat penginstal ID pengembang untuk menandatangani paket alat penginstal aplikasi Anda.
Proses untuk menyediakan aplikasi .NET MAUI Mac Catalyst untuk distribusi di luar Mac App Store adalah sebagai berikut:
- Buat dua permintaan penandatanganan sertifikat. Untuk informasi selengkapnya, lihat Membuat permintaan penandatanganan sertifikat.
- Buat sertifikat aplikasi ID pengembang. Untuk informasi selengkapnya, lihat Membuat sertifikat aplikasi ID pengembang.
- Buat sertifikat penginstal ID pengembang. Untuk informasi selengkapnya, lihat Membuat sertifikat penginstal ID pengembang.
- Membuat ID Aplikasi. Untuk informasi selengkapnya, lihat Membuat ID Aplikasi.
- Buat profil provisi. Untuk informasi selengkapnya, lihat Membuat profil provisi.
- Unduh profil provisi Anda. Untuk informasi selengkapnya, lihat Mengunduh profil provisi Anda di Xcode.
Penting
Artikel ini memperlihatkan provisi untuk distribusi di luar Mac App Store menggunakan Akun Pengembang Apple yang merupakan bagian dari Program Pengembang Apple. Ini juga dapat digunakan untuk Akun Pengembang Apple yang merupakan bagian dari Program Perusahaan Pengembang Apple, karena langkah-langkah yang diperlukan sebagian besar identik.
Kemudian, setelah provisi selesai, Anda harus menyiapkan aplikasi untuk menerbitkan, menerbitkannya, dan memberi notarisasi dengan proses berikut:
- Secara opsional tambahkan pemberian izin ke aplikasi Anda. Untuk informasi selengkapnya, lihat Menambahkan pemberian izin.
- Perbarui file Info.plist aplikasi. Untuk informasi selengkapnya, lihat Memperbarui Info.plist.
- Nonaktifkan verifikasi tanda tangan kode untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Menonaktifkan verifikasi tanda tangan kode.
- Terbitkan aplikasi Anda menggunakan baris perintah. Untuk informasi selengkapnya, lihat Menerbitkan menggunakan baris perintah.
- Beri notarisasi aplikasi Anda. Untuk informasi selengkapnya, lihat Memberi notarisasi aplikasi Anda.
Buat permintaan penandatanganan sertifikat
Sebelum membuat sertifikat distribusi, Anda harus terlebih dahulu membuat permintaan penandatanganan sertifikat (CSR) di Akses Rantai Kunci di Mac:
Di Mac Anda, luncurkan Akses Rantai Kunci.
Di Akses Rantai Kunci, pilih item menu Asisten > Sertifikat Akses > Rantai Kunci Minta Sertifikat dari Otoritas Sertifikat... .
Dalam dialog Asisten Sertifikat, masukkan alamat email di bidang Alamat Email Pengguna.
Dalam dialog Asisten Sertifikat, masukkan nama untuk kunci di bidang Nama Umum.
Dalam dialog Asisten Sertifikat, biarkan bidang Alamat Email CA kosong.
Dalam dialog Asisten Sertifikat, pilih tombol radio Disimpan ke disk dan pilih Lanjutkan:
Simpan permintaan penandatanganan sertifikat ke lokasi yang diketahui.
Dalam dialog Asisten Sertifikat, pilih tombol Selesai.
Tutup Akses Rantai Kunci.
Ulangi proses ini untuk membuat permintaan penandatanganan sertifikat kedua. CSR pertama akan digunakan untuk membuat sertifikat aplikasi ID pengembang. Yang kedua akan digunakan untuk membuat sertifikat penginstal ID pengembang.
Penting
Anda tidak dapat menggunakan permintaan penandatanganan sertifikat yang sama untuk membuat sertifikat aplikasi ID pengembang dan sertifikat penginstal ID pengembang.
Membuat sertifikat aplikasi ID pengembang
CSR memungkinkan Anda membuat sertifikat ID pengembang, yang mengonfirmasi identitas Anda. Sertifikat ID pengembang harus dibuat menggunakan ID Apple untuk Akun Pengembang Apple Anda:
Di browser web, masuk ke Akun Pengembang Apple Anda.
Di Akun Pengembang Apple Anda, pilih tab Sertifikat, ID , & Profil .
Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tombol + untuk membuat sertifikat baru.
Pada halaman Buat Sertifikat Baru, pilih tombol radio Aplikasi ID Pengembang sebelum memilih tombol Lanjutkan :
Pada halaman Buat Sertifikat Baru, pilih tombol radio Sub-CA G2, lalu pilih Pilih File:
Dalam dialog Pilih File untuk Diunggah, pilih file permintaan sertifikat pertama yang sebelumnya Anda buat (file dengan
.certSigningRequest
ekstensi file) lalu pilih Unggah.Pada halaman Buat Sertifikat Baru, pilih tombol Lanjutkan :
Pada halaman Unduh Sertifikat Anda, pilih tombol Unduh :
File sertifikat (file dengan
.cer
ekstensi) akan diunduh ke lokasi yang Anda pilih.Di Mac Anda, klik dua kali file sertifikat yang diunduh untuk menginstal sertifikat ke rantai kunci Anda. Sertifikat muncul dalam kategori Sertifikat Saya di Akses Rantai Kunci, dan dimulai dengan Aplikasi ID Pengembang:
Catatan
Catat nama sertifikat lengkap di Akses Rantai Kunci. Ini akan diperlukan saat menandatangani aplikasi Anda.
Membuat sertifikat penginstal ID pengembang
CSR memungkinkan Anda membuat sertifikat penginstal ID pengembang, yang diperlukan untuk menandatangani paket penginstal aplikasi Anda. Sertifikat penginstal harus dibuat menggunakan ID Apple untuk Akun Pengembang Apple Anda:
Di Akun Pengembang Apple Anda, pilih tab Sertifikat, ID , & Profil .
Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tombol + untuk membuat sertifikat baru.
Pada halaman Buat Sertifikat Baru, pilih tombol radio Penginstal ID Pengembang sebelum memilih tombol Lanjutkan :
Pada halaman Buat Sertifikat Baru, pilih tombol radio Sub-CA G2, lalu pilih Pilih File:
Dalam dialog Pilih File untuk Diunggah, pilih file permintaan sertifikat kedua yang sebelumnya Anda buat (file dengan
.certSigningRequest
ekstensi file) lalu pilih Unggah.Pada halaman Buat Sertifikat Baru, pilih tombol Lanjutkan :
Pada halaman Unduh Sertifikat Anda, pilih tombol Unduh :
File sertifikat (file dengan
.cer
ekstensi) akan diunduh ke lokasi yang Anda pilih.Di Mac Anda, klik dua kali file sertifikat yang diunduh untuk menginstal sertifikat ke rantai kunci Anda. Sertifikat muncul di kategori Sertifikat Saya di Akses Rantai Kunci, dan dimulai dengan Penginstal ID Pengembang:
Catatan
Catat nama sertifikat lengkap di Akses Rantai Kunci. Ini akan diperlukan saat menandatangani aplikasi Anda.
Membuat profil distribusi
Profil provisi distribusi memungkinkan aplikasi .NET MAUI Mac Catalyst Anda ditandatangani secara digital untuk rilis, sehingga dapat diinstal di Mac lain. Profil provisi untuk distribusi di luar Mac App Store berisi ID Aplikasi dan sertifikat aplikasi ID pengembang.
Membuat ID Aplikasi
ID Aplikasi diperlukan untuk mengidentifikasi aplikasi yang Anda distribusikan. ID Aplikasi mirip dengan string REVERSE-DNS, yang secara unik mengidentifikasi aplikasi, dan harus identik dengan pengidentifikasi bundel untuk aplikasi Anda. Anda dapat menggunakan ID Aplikasi yang sama dengan yang Anda gunakan saat menyebarkan aplikasi ke perangkat untuk pengujian.
Ada dua jenis ID Aplikasi:
- Kartubebas. ID Aplikasi wildcard memungkinkan Anda menggunakan satu ID Aplikasi untuk mencocokkan beberapa aplikasi, dan biasanya mengambil formulir
com.domainname.*
. ID Aplikasi wildcard dapat digunakan untuk mendistribusikan beberapa aplikasi, dan harus digunakan untuk aplikasi yang tidak mengaktifkan kemampuan khusus aplikasi. - Eksplisit. ID Aplikasi eksplisit unik untuk satu aplikasi, dan biasanya mengambil formulir
com.domainname.myid
. ID Aplikasi eksplisit memungkinkan distribusi satu aplikasi, dengan pengidentifikasi bundel yang cocok. ID Aplikasi Eksplisit biasanya digunakan untuk aplikasi yang mengaktifkan kemampuan khusus aplikasi seperti Apple Pay, atau Game Center. Untuk informasi selengkapnya tentang kemampuan, lihat Kemampuan.
Untuk membuat ID Aplikasi baru:
Di Akun Pengembang Apple Anda, navigasikan ke Sertifikat, ID , & Profil.
Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tab Pengidentifikasi .
Pada halaman Pengidentifikasi , pilih tombol + untuk membuat ID Aplikasi baru.
Pada halaman Daftarkan pengidentifikasi baru, pilih tombol radio ID Aplikasi sebelum memilih tombol Lanjutkan :
Pada halaman Daftarkan pengidentifikasi baru, pilih Aplikasi sebelum memilih tombol Lanjutkan :
Pada halaman Daftarkan ID Aplikasi, masukkan deskripsi, dan pilih tombol radio Id Bundel Eksplisit atau Wildcard . Kemudian, masukkan ID Bundel untuk aplikasi Anda dalam format DS terbalik:
Penting
ID Bundel yang Anda masukkan harus sesuai dengan pengidentifikasi Bundel dalam file Info.plist di proyek aplikasi Anda.
Pengidentifikasi bundel untuk aplikasi .NET MAUI disimpan dalam file proyek sebagai properti ID Aplikasi:
- Di Visual Studio, di Penjelajah Solusi klik kanan pada proyek aplikasi .NET MAUI Anda dan pilih Properti. Kemudian, navigasikan ke tab Umum Bersama > MAUI. Bidang ID Aplikasi mencantumkan pengidentifikasi bundel.
- Di Visual Studio untuk Mac, di Jendela Solusi, klik kanan proyek aplikasi .NET MAUI Anda dan pilih Properti. Kemudian, di jendela Properti Proyek, pilih tab Buat > Info Aplikasi. Bidang ID Aplikasi mencantumkan pengidentifikasi bundel.
Ketika nilai bidang ID Aplikasi diperbarui, nilai pengidentifikasi Bundel di Info.plist akan diperbarui secara otomatis.
Pada halaman Daftarkan ID Aplikasi, pilih kemampuan apa pun yang digunakan aplikasi. Kemampuan apa pun harus dikonfigurasi baik di halaman ini maupun di file Entitlements.plist di proyek aplikasi Anda. Untuk informasi selengkapnya, lihat Kapabilitas dan Pemberian Izin.
Pada halaman Daftarkan ID Aplikasi, pilih tombol Lanjutkan .
Pada halaman Konfirmasi ID Aplikasi Anda, pilih tombol Daftar .
Membuat profil penyebaran
Setelah ID Aplikasi dibuat, Anda harus membuat profil provisi distribusi. Profil ini memungkinkan aplikasi ditandatangani secara digital untuk rilis sehingga dapat diinstal di Mac.
Untuk membuat profil provisi untuk distribusi di luar Mac App Store:
Di halaman Sertifikat, Pengidentifikasi , & Profil Akun Pengembang Apple Anda, pilih tab Profil .
Di tab Profil , klik tombol + untuk membuat profil baru.
Di halaman Daftarkan Profil Provisi Baru, pilih tombol radio ID Pengembang sebelum mengklik tombol Lanjutkan :
Di halaman Buat Profil Provisi, pilih tombol radio Katalis Mac. Kemudian, di menu drop-down ID Aplikasi, pilih ID Aplikasi yang sebelumnya Anda buat sebelum mengklik tombol Lanjutkan :
Di halaman Buat Profil Provisi, pilih tombol radio yang sesuai dengan sertifikat distribusi Anda sebelum mengklik tombol Lanjutkan :
Di halaman Buat Profil Provisi, masukkan nama untuk profil provisi sebelum mengklik tombol Hasilkan :
Catatan
Catat nama profil provisi, karena akan diperlukan saat menandatangani aplikasi Anda.
Di halaman Buat Profil Provisi, klik tombol Unduh secara opsional untuk mengunduh profil provisi Anda.
Catatan
Anda tidak perlu mengunduh profil provisi Anda sekarang. Sebagai gantinya, Anda akan melakukan ini di Xcode.
Unduh profil provisi Anda di Xcode
Setelah membuat profil provisi di Akun Pengembang Apple, Xcode dapat mengunduhnya sehingga tersedia untuk menandatangani aplikasi Anda:
Di Mac Anda, luncurkan Xcode.
Di Xcode, pilih item menu Preferensi Xcode > ... .
Dalam dialog Preferensi, pilih tab Akun.
Di tab Akun , klik tombol + untuk menambahkan Akun Pengembang Apple Anda ke Xcode:
Di popup jenis akun, pilih ID Apple lalu klik tombol Lanjutkan :
Di popup masuk, masukkan ID Apple Anda dan klik tombol Berikutnya .
Di popup masuk, masukkan kata sandi ID Apple Anda dan klik tombol Berikutnya :
Di tab Akun , klik tombol Kelola Sertifikat... untuk memastikan bahwa sertifikat distribusi Anda telah diunduh.
Di tab Akun , klik tombol Unduh Profil Manual untuk mengunduh profil provisi Anda:
Tunggu hingga unduhan selesai lalu tutup Xcode.
Menambahkan hak
App Sandbox Apple membatasi akses ke sumber daya sistem dan data pengguna di app Mac, untuk berisi kerusakan jika aplikasi disusupi. Ini dapat diaktifkan secara opsional untuk app Mac Catalyst yang didistribusikan di luar Mac App Store.
Ini dapat dicapai dengan menambahkan file Entitlements.plist ke folder Platforms/MacCatalyst proyek aplikasi .NET MAUI Anda:
<?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.app-sandbox</key>
<true/>
</dict>
</plist>
Penetapan Kotak Pasir Aplikasi didefinisikan menggunakan com.apple.security.app-sandbox
kunci, jenis boolean
. Untuk informasi tentang App Sandbox, lihat Melindungi data pengguna dengan App Sandbox di developer.apple.com. Untuk informasi tentang pemberian izin Kotak Pasir Aplikasi, lihat Pemberian Izin Kotak Pasir Aplikasi.
Jika aplikasi Anda membuka koneksi jaringan keluar, Anda juga harus menambahkan com.apple.security.network.client
kunci, jenis boolean
, ke file Entitlements.plist Anda:
<?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.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
Untuk informasi tentang pemberian izin koneksi jaringan keluar, lihat com.apple.security.network.client di developer.apple.com.
Perbarui Info.plist
Sebelum memublikasikan aplikasi, Anda harus memperbarui file Info.plist dengan informasi tambahan.
Tentukan idiom antarmuka pengguna
App Mac Catalyst dapat berjalan di idiom antarmuka pengguna iPad atau Mac:
- idiom antarmuka pengguna iPad memberi tahu macOS untuk menskalakan antarmuka pengguna aplikasi agar sesuai dengan lingkungan layar Mac sambil mempertahankan tampilan seperti iPad.
- Idiom antarmuka pengguna Mac tidak menskalakan antarmuka pengguna aplikasi agar sesuai dengan lingkungan tampilan Mac. Beberapa kontrol mengubah ukuran dan tampilannya, dan berinteraksi dengan mereka terasa identik dengan berinteraksi dengan
AppKit
kontrol.
Secara default, aplikasi .NET MAUI Mac Catalyst menggunakan idiom antarmuka pengguna iPad. Jika ini adalah perilaku yang Anda inginkan, pastikan bahwa file Info.plist aplikasi hanya menentukan 2 sebagai nilai UIDeviceFamily
kunci:
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
Untuk mengadopsi idiom antarmuka pengguna Mac, perbarui file Info.plist aplikasi untuk menentukan 6 sebagai nilai UIDeviceFamily
kunci:
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
Untuk informasi selengkapnya tentang idiom antarmuka pengguna Mac Catalyst, lihat Menentukan idiom UI untuk app Mac Catalyst Anda.
Mengatur bahasa dan wilayah default untuk aplikasi
Atur CFBundleDevelopmentRegion
kunci di Info.plist aplikasi Anda ke string
yang mewakili wilayah pengembangan asli pelokalan:
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
Nilai kunci harus menjadi pendesain bahasa, dengan pendesain wilayah opsional. Untuk informasi selengkapnya, lihat CFBundleDevelopmentRegion di developer.apple.com.
Mengatur kunci hak cipta
Atur NSHumanReadableCopyright
kunci di Info.plist aplikasi Anda ke string
yang mewakili pemberitahuan hak cipta yang dapat dibaca manusia untuk aplikasi Anda:
<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>
Untuk informasi selengkapnya, lihat NSHumanReadableCopyright di developer.apple.com.
Mendeklarasikan penggunaan enkripsi aplikasi Anda
Jika aplikasi Anda menggunakan enkripsi, dan Anda berencana untuk mendistribusikannya di luar Amerika Serikat atau Kanada, aplikasi tersebut tunduk pada persyaratan kepatuhan ekspor AS. Anda dapat memberikan informasi tentang penggunaan enkripsi aplikasi anda dalam file Info.plist-nya.
Ini dicapai dengan menambahkan ITSAppUsesNonExemptEncryption
kunci ke Info.plist aplikasi Anda dengan boolean
nilai yang menunjukkan apakah aplikasi Anda menggunakan enkripsi:
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
Untuk informasi selengkapnya, lihat Mematuhi Peraturan Ekspor Enkripsi tentang developer.apple.com.
Menonaktifkan verifikasi tanda tangan kode
Saat ini, ketika Anda mencoba menerbitkan aplikasi .NET MAUI Mac Catalyst untuk distribusi di luar Mac App Store, asalkan Anda telah memenuhi persyaratan provisi, Anda akan menerima kesalahan tentang codesign
keluar dengan kode 3:
/usr/local/share/dotnet/packs/Microsoft.MacCatalyst.Sdk/16.2.1040/tools/msbuild/iOS/Xamarin.Shared.targets(1930,3): error MSB6006: "codesign" exited with code 3. [/Users/davidbritch/Projects/MyMauiApp/MyMauiApp/MyMauiApp.csproj::TargetFramework=net8.0-maccatalyst]
Saat codesign
berhasil menandatangani aplikasi Anda, _CodesignVerify
target gagal memverifikasi tanda tangan kode:
test-requirement: code failed to satisfy specified code requirement(s)
Karena kegagalan ini, file .pkg tidak diproduksi.
Oleh karena itu, saat ini perlu untuk menambahkan target build berikut ke akhir file proyek Anda untuk menonaktifkan verifikasi tanda tangan kode:
<Project Sdk="Microsoft.NET.Sdk">
...
<Target Name="_SkipCodesignVerify" BeforeTargets="_CodesignVerify" AfterTargets="_CodesignAppBundle">
<PropertyGroup>
<_RequireCodeSigning>false</_RequireCodeSigning>
</PropertyGroup>
</Target>
</Project>
Menerbitkan menggunakan baris perintah
Untuk menerbitkan app Mac Catalyst Anda dari baris perintah di Mac, buka terminal dan buka folder untuk proyek aplikasi .NET MAUI Anda. Jalankan dotnet publish
perintah , menyediakan parameter berikut:
Parameter | Value |
---|---|
-f atau --framework |
Kerangka kerja target, yaitu net8.0-maccatalyst . |
-c atau --configuration |
Konfigurasi build, yaitu Release . |
-p:MtouchLink |
Mode tautan untuk proyek, yang dapat berupa None , , SdkOnly atau Full . |
-p:CreatePackage |
Atur ke true sehingga paket (.pkg) dibuat untuk aplikasi di akhir build. |
-p:EnableCodeSigning |
Atur ke true sehingga penandatanganan kode diaktifkan. |
-p:EnablePackageSigning |
Atur ke true agar paket yang dibuat ditandatangani. |
-p:CodesignKey |
Nama kunci penandatanganan kode. Atur ke nama sertifikat distribusi Anda, seperti yang ditampilkan di Akses Rantai Kunci. |
-p:CodesignProvision |
Profil provisi yang akan digunakan saat menandatangani bundel aplikasi. |
-p:CodesignEntitlements |
Jalur ke file pemberian izin yang menentukan pemberian izin yang diperlukan aplikasi. Atur ke Platforms\MacCatalyst\Entitlements.plist . |
-p:PackageSigningKey |
Kunci penandatanganan paket yang akan digunakan saat menandatangani paket. Atur ke nama sertifikat penginstal Anda, seperti yang ditampilkan di Akses Rantai Kunci. |
-p:RuntimeIdentifier |
Pengidentifikasi runtime (RID) untuk proyek. Rilis build aplikasi .NET MAUI Mac Catalyst secara default untuk menggunakan maccatalyst-x64 dan maccatalyst-arm64 sebagai pengidentifikasi runtime, untuk mendukung aplikasi universal. Untuk hanya mendukung satu arsitektur, tentukan maccatalyst-x64 atau maccatalyst-arm64 . |
-p:UseHardenedRuntime |
Atur ke true untuk mengaktifkan runtime yang diperkeras, yang diperlukan untuk app Mac Catalyst yang didistribusikan di luar Mac App Store. |
Peringatan
Mencoba menerbitkan solusi .NET MAUI akan mengakibatkan dotnet publish
perintah yang mencoba menerbitkan setiap proyek dalam solusi satu per satu, yang dapat menyebabkan masalah ketika Anda telah menambahkan jenis proyek lain ke solusi Anda. Oleh karena itu, dotnet publish
perintah harus dicakup ke proyek aplikasi .NET MAUI Anda.
Parameter build tambahan dapat ditentukan pada baris perintah, jika tidak disediakan dalam <PropertyGroup>
file proyek Anda. Tabel berikut mencantumkan beberapa parameter umum:
Parameter | Value |
---|---|
-p:ApplicationTitle |
Nama yang terlihat pengguna untuk aplikasi. |
-p:ApplicationId |
Pengidentifikasi unik untuk aplikasi, seperti com.companyname.mymauiapp . |
-p:ApplicationVersion |
Versi build yang mengidentifikasi iterasi aplikasi. |
-p:ApplicationDisplayVersion |
Nomor versi aplikasi. |
-p:RuntimeIdentifier |
Pengidentifikasi runtime (RID) untuk proyek. Rilis build aplikasi .NET MAUI Mac Catalyst secara default untuk menggunakan maccatalyst-x64 dan maccatalyst-arm64 sebagai pengidentifikasi runtime, untuk mendukung aplikasi universal. Untuk hanya mendukung satu arsitektur, tentukan maccatalyst-x64 atau maccatalyst-arm64 . |
Untuk daftar lengkap properti build, lihat Properti file proyek.
Penting
Nilai untuk semua parameter ini tidak harus disediakan pada baris perintah. Mereka juga dapat disediakan dalam file proyek. Ketika parameter disediakan pada baris perintah dan dalam file proyek, parameter baris perintah lebih diutamakan. Untuk informasi selengkapnya tentang menyediakan properti build di file proyek Anda, lihat Menentukan properti build di file proyek Anda.
Misalnya, gunakan perintah berikut untuk membangun dan menandatangani .pkg di Mac, untuk distribusi di luar Mac App Store:
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Developer ID Application: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Non-App Store)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="Developer ID Installer: John Smith (AY2GDE9QM7)" -p:UseHardenedRuntime=true
Catatan
Di .NET 8, dotnet publish
perintah default ke Release
konfigurasi. Oleh karena itu, konfigurasi build dapat dihilangkan dari baris perintah.
Menerbitkan build, tanda, dan mengemas aplikasi, lalu menyalin .pkg ke folder bin/Release/net8.0-maccatalyst/publish/ . Jika Anda menerbitkan aplikasi hanya menggunakan satu arsitektur, aplikasi akan diterbitkan ke folder bin/Release/net8.0-maccatalyst/{architecture}/publish/ .
Selama proses penandatanganan, mungkin perlu memasukkan kata sandi masuk Anda dan mengizinkan codesign
dan productbuild
menjalankan:
Untuk informasi selengkapnya tentang perintah, lihat penerbitan dotnet publish
dotnet.
Menentukan properti build dalam file proyek Anda
Alternatif untuk menentukan parameter build pada baris perintah adalah menentukannya dalam file proyek Anda dalam <PropertyGroup>
. Tabel berikut ini mencantumkan beberapa properti build umum:
Properti | Nilai |
---|---|
<ApplicationTitle> |
Nama yang terlihat pengguna untuk aplikasi. |
<ApplicationId> |
Pengidentifikasi unik untuk aplikasi, seperti com.companyname.mymauiapp . |
<ApplicationVersion> |
Versi build yang mengidentifikasi iterasi aplikasi. |
<ApplicationDisplayVersion> |
Nomor versi aplikasi. |
<CodesignKey> |
Nama kunci penandatanganan kode. Atur ke nama sertifikat distribusi Anda, seperti yang ditampilkan di Akses Rantai Kunci. |
<CodesignEntitlements> |
Jalur ke file pemberian izin yang menentukan pemberian izin yang diperlukan aplikasi. Atur ke Platforms\MacCatalyst\Entitlements.plist . |
<CodesignProvision> |
Profil provisi yang akan digunakan saat menandatangani bundel aplikasi. |
<CreatePackage> |
Atur ke true sehingga paket (.pkg) dibuat untuk aplikasi di akhir build. |
<EnableCodeSigning> |
Atur ke true sehingga penandatanganan kode diaktifkan. |
<EnablePackageSigning> |
Atur ke true agar paket yang dibuat ditandatangani. |
<MtouchLink> |
Mode tautan untuk proyek, yang dapat berupa None , , SdkOnly atau Full . |
<PackageSigningKey> |
Kunci penandatanganan paket yang akan digunakan saat menandatangani paket. Atur ke nama sertifikat penginstal Anda, seperti yang ditampilkan di Akses Rantai Kunci. |
<RuntimeIdentifier> |
Pengidentifikasi runtime (RID) untuk proyek. Rilis build aplikasi .NET MAUI Mac Catalyst secara default untuk menggunakan maccatalyst-x64 dan maccatalyst-arm64 sebagai pengidentifikasi runtime, untuk mendukung aplikasi universal. Untuk hanya mendukung satu arsitektur, tentukan maccatalyst-x64 atau maccatalyst-arm64 . |
<UseHardenedRuntime> |
Atur ke true untuk mengaktifkan runtime yang diperkeras, yang diperlukan untuk app Mac Catalyst yang didistribusikan di luar Mac App Store. |
Untuk daftar lengkap properti build, lihat Properti file proyek.
Penting
Nilai untuk properti build ini tidak harus disediakan dalam file proyek. Mereka juga dapat disediakan di baris perintah saat Anda menerbitkan aplikasi. Ini memungkinkan Anda menghilangkan nilai tertentu dari file proyek Anda.
Contoh berikut menunjukkan grup properti umum untuk membangun dan menandatangani app Mac Catalyst Anda untuk didistribusikan di luar Mac App Store:
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Developer ID Application: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp (Non-App Store)</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<PackageSigningKey>Developer ID Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
<UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>
Contoh <PropertyGroup>
ini menambahkan pemeriksaan kondisi, mencegah pengaturan diproses kecuali pemeriksaan kondisi berlalu. Pemeriksaan kondisi mencari dua item:
- Konfigurasi build diatur ke
Release
. - Kerangka kerja target diatur ke sesuatu yang berisi teks
net8.0-maccatalyst
. - Platform diatur ke
AnyCPU
.
Jika salah satu kondisi ini gagal, pengaturan tidak diproses. Lebih penting lagi, <CodesignKey>
pengaturan , <CodesignProvision>
, dan <PackageSigningKey>
tidak diatur, mencegah aplikasi ditandatangani.
Setelah menambahkan grup properti di atas, aplikasi dapat diterbitkan dari baris perintah di Mac dengan membuka terminal dan menavigasi ke folder untuk proyek aplikasi .NET MAUI Anda. Kemudian, jalankan perintah berikut:
dotnet build -f net8.0-maccatalyst -c Release
Catatan
Di .NET 8, dotnet publish
perintah default ke Release
konfigurasi. Oleh karena itu, konfigurasi build dapat dihilangkan dari baris perintah.
Menerbitkan build, tanda, dan mengemas aplikasi, lalu menyalin .pkg ke folder bin/Release/net8.0-maccatalyst/publish/ .
Beri notarisasi aplikasi Anda
macOS menyertakan teknologi yang disebut Gatekeeper, yang membantu memastikan bahwa hanya perangkat lunak tepercaya yang berjalan di Mac. Saat pengguna mengunduh dan membuka paket alat penginstal, atau aplikasi, Gatekeeper memverifikasi bahwa perangkat lunak berasal dari pengembang yang diidentifikasi. Ini dilakukan dengan memeriksa sertifikat ID Pengembang, dan memeriksa bahwa perangkat lunak dinamai oleh Apple agar bebas dari konten berbahaya yang diketahui dan belum diubah. Oleh karena itu, setelah memprovisikan dan menerbitkan aplikasi, Anda harus mengirimkannya ke Apple untuk disahkan. Layanan notaris Apple secara otomatis memindai aplikasi yang ditandatangani ID pengembang Anda dan melakukan pemeriksaan keamanan. Ketika notarisasi berhasil, perangkat lunak Anda diberi tiket untuk memberi tahu Gatekeeper bahwa perangkat lunak tersebut telah disahkan.
Aplikasi dapat dikirimkan ke layanan notaris Apple dengan notarytool
alat baris perintah:
xcrun notarytool submit {my_package_filename} --wait --apple-id {my_apple_id} --password {my_app_specific_password} --team-id {my_team_id}
Contoh penggunaan notarytool
alat untuk menandatangani file .NET MAUI Mac Catalyst .pkg ditunjukkan di bawah ini:
xcrun notarytool submit MyMauiApp-1.0.pkg --wait --apple-id johm.smith@provider.com --password fqtk-cprr-gqdt-bvyo --team-id AY2GDE9QM7
wait
Bendera memberi tahu untuk keluar hanya setelah layanan notaris notarytool
selesai memproses pengiriman, oleh karena itu menghapus kebutuhan untuk melakukan polling layanan untuk statusnya. Argumen apple-id
, password
, dan team-id
digunakan untuk menyediakan kredensial Koneksi App Store Anda. Karena App Store Koneksi memerlukan autentikasi dua faktor, Anda harus membuat kata sandi khusus aplikasi untuk notarytool
. Untuk informasi tentang membuat kata sandi khusus app, lihat Masuk ke app dengan ID Apple Anda menggunakan kata sandi khusus app di developer.apple.com.
Setelah Anda mengirimkan app ke Apple, proses notarisasi biasanya memakan waktu kurang dari satu jam.
Catatan
Notarisasi selesai untuk sebagian besar aplikasi dalam waktu 5 menit. Untuk informasi tentang menghindari waktu respons yang lama dari layanan notaris, lihat Menghindari waktu respons notarisasi yang lama dan batas ukuran pada developer.apple.com.
Asalkan notarisasi berhasil, layanan notaris menghasilkan tiket untuk paket alat penginstal yang ditandatangani dan bundel aplikasi di dalamnya.
Untuk informasi selengkapnya tentang notarisasi, lihat Memberi notarisasi perangkat lunak macOS sebelum distribusi. Untuk pendekatan lain dalam mengirimkan aplikasi Anda ke layanan notaris Apple, lihat Mengunggah aplikasi Anda ke layanan notarisasi di developer.apple.com. Untuk informasi tentang mengatasi masalah notarisasi umum, lihat Menyelesaikan masalah notarisasi umum.
Staple tiket ke aplikasi Anda
Notarisasi menghasilkan tiket untuk paket alat penginstal yang ditandatangani dan bundel aplikasi di dalamnya, yang memberi tahu Gatekeeper bahwa aplikasi Anda disahkan. Setelah notarisasi selesai, saat pengguna mencoba menjalankan aplikasi Anda di macOS 10.14 atau yang lebih baru, Gatekeeper menemukan tiket secara online.
Setelah notarisasi berhasil, Anda harus melampirkan tiket ke aplikasi Anda menggunakan alat ini stapler
. Ini memastikan bahwa Gatekeeper dapat menemukan tiket bahkan ketika koneksi jaringan tidak tersedia. Jalankan perintah berikut untuk melampirkan tiket ke .pkg Anda:
xcrun stapler staple {filename}.pkg
Alat ini stapler
mengambil tiket dan melampirkannya ke paket alat penginstal. Anda akan menerima pesan yang memberi tahu Anda bahwa tindakan staple dan validasi berfungsi, asalkan stapling berhasil.
Memvalidasi notarisasi
Jika Anda ingin memvalidasi notarisasi, Anda dapat melakukannya dengan perintah berikut:
xcrun stapler validate mypackage.pkg
Mendistribusikan aplikasi Anda
.pkg yang ditandatangani dan diberi notarisasi dapat didistribusikan dengan aman di luar Mac App Store di lokasi yang Anda pilih, seperti server web.
Untuk informasi tentang membuka app dengan aman di Mac, lihat Membuka app dengan aman di Mac Anda di support.apple.com.
Baca juga
- Menyiapkan aplikasi Anda untuk didistribusikan di developer.apple.com
- Runtime diperkeras pada developer.apple.com
- Menyesuaikan alur kerja notarisasi pada developer.apple.com
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk