Bagikan melalui


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:

  1. Buat dua permintaan penandatanganan sertifikat. Untuk informasi selengkapnya, lihat Membuat permintaan penandatanganan sertifikat.
  2. Buat sertifikat aplikasi ID pengembang. Untuk informasi selengkapnya, lihat Membuat sertifikat aplikasi ID pengembang.
  3. Buat sertifikat penginstal ID pengembang. Untuk informasi selengkapnya, lihat Membuat sertifikat penginstal ID pengembang.
  4. Membuat ID Aplikasi. Untuk informasi selengkapnya, lihat Membuat ID Aplikasi.
  5. Buat profil provisi. Untuk informasi selengkapnya, lihat Membuat profil provisi.
  6. 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:

  1. Secara opsional tambahkan pemberian izin ke aplikasi Anda. Untuk informasi selengkapnya, lihat Menambahkan pemberian izin.
  2. Perbarui file Info.plist aplikasi. Untuk informasi selengkapnya, lihat Memperbarui Info.plist.
  3. Nonaktifkan verifikasi tanda tangan kode untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Menonaktifkan verifikasi tanda tangan kode.
  4. Terbitkan aplikasi Anda menggunakan baris perintah. Untuk informasi selengkapnya, lihat Menerbitkan menggunakan baris perintah.
  5. 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:

  1. Di Mac Anda, luncurkan Akses Rantai Kunci.

  2. Di Akses Rantai Kunci, pilih item menu Asisten > Sertifikat Akses > Rantai Kunci Minta Sertifikat dari Otoritas Sertifikat... .

  3. Dalam dialog Asisten Sertifikat, masukkan alamat email di bidang Alamat Email Pengguna.

  4. Dalam dialog Asisten Sertifikat, masukkan nama untuk kunci di bidang Nama Umum.

  5. Dalam dialog Asisten Sertifikat, biarkan bidang Alamat Email CA kosong.

  6. Dalam dialog Asisten Sertifikat, pilih tombol radio Disimpan ke disk dan pilih Lanjutkan:

    Certificate assistant dialog.

  7. Simpan permintaan penandatanganan sertifikat ke lokasi yang diketahui.

  8. Dalam dialog Asisten Sertifikat, pilih tombol Selesai.

  9. 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:

  1. Di browser web, masuk ke Akun Pengembang Apple Anda.

  2. Di Akun Pengembang Apple Anda, pilih tab Sertifikat, ID , & Profil .

  3. Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tombol + untuk membuat sertifikat baru.

  4. Pada halaman Buat Sertifikat Baru, pilih tombol radio Aplikasi ID Pengembang sebelum memilih tombol Lanjutkan :

    Create a Developer ID Application certificate.

  5. Pada halaman Buat Sertifikat Baru, pilih tombol radio Sub-CA G2, lalu pilih Pilih File:

    Upload your certificate signing request for a Developer ID Application certificate.

  6. Dalam dialog Pilih File untuk Diunggah, pilih file permintaan sertifikat pertama yang sebelumnya Anda buat (file dengan .certSigningRequest ekstensi file) lalu pilih Unggah.

  7. Pada halaman Buat Sertifikat Baru, pilih tombol Lanjutkan :

    Continue to generate your distribution certificate.

  8. Pada halaman Unduh Sertifikat Anda, pilih tombol Unduh :

    Download your Developer ID Application certificate.

    File sertifikat (file dengan .cer ekstensi) akan diunduh ke lokasi yang Anda pilih.

  9. 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:

    Keychain Access showing Developer ID Application certificate.

    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:

  1. Di Akun Pengembang Apple Anda, pilih tab Sertifikat, ID , & Profil .

  2. Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tombol + untuk membuat sertifikat baru.

  3. Pada halaman Buat Sertifikat Baru, pilih tombol radio Penginstal ID Pengembang sebelum memilih tombol Lanjutkan :

    Create a Developer ID Installer certificate.

  4. Pada halaman Buat Sertifikat Baru, pilih tombol radio Sub-CA G2, lalu pilih Pilih File:

    Upload your certificate signing request for a Developer ID Installer certificate.

  5. Dalam dialog Pilih File untuk Diunggah, pilih file permintaan sertifikat kedua yang sebelumnya Anda buat (file dengan .certSigningRequest ekstensi file) lalu pilih Unggah.

  6. Pada halaman Buat Sertifikat Baru, pilih tombol Lanjutkan :

    Continue to generate your installer certificate.

  7. Pada halaman Unduh Sertifikat Anda, pilih tombol Unduh :

    Download your distribution certificate.

    File sertifikat (file dengan .cer ekstensi) akan diunduh ke lokasi yang Anda pilih.

  8. 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:

    Keychain Access showing installer certificate.

    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:

  1. Di Akun Pengembang Apple Anda, navigasikan ke Sertifikat, ID , & Profil.

  2. Pada halaman Sertifikat, Pengidentifikasi & Profil , pilih tab Pengidentifikasi .

  3. Pada halaman Pengidentifikasi , pilih tombol + untuk membuat ID Aplikasi baru.

  4. Pada halaman Daftarkan pengidentifikasi baru, pilih tombol radio ID Aplikasi sebelum memilih tombol Lanjutkan :

    Create an App ID.

  5. Pada halaman Daftarkan pengidentifikasi baru, pilih Aplikasi sebelum memilih tombol Lanjutkan :

    Register an App ID.

  6. 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:

    Specify the bundle identifier for the app.

    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.

  7. 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.

  8. Pada halaman Daftarkan ID Aplikasi, pilih tombol Lanjutkan .

  9. 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:

  1. Di halaman Sertifikat, Pengidentifikasi , & Profil Akun Pengembang Apple Anda, pilih tab Profil .

  2. Di tab Profil , klik tombol + untuk membuat profil baru.

  3. Di halaman Daftarkan Profil Provisi Baru, pilih tombol radio ID Pengembang sebelum mengklik tombol Lanjutkan :

    Register a provisioning profile distribution outside the App Store.

  4. 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 :

    Select your App ID.

  5. Di halaman Buat Profil Provisi, pilih tombol radio yang sesuai dengan sertifikat distribusi Anda sebelum mengklik tombol Lanjutkan :

    Select your distribution certificate.

  6. Di halaman Buat Profil Provisi, masukkan nama untuk profil provisi sebelum mengklik tombol Hasilkan :

    Generate the provisioning profile.

    Catatan

    Catat nama profil provisi, karena akan diperlukan saat menandatangani aplikasi Anda.

  7. 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:

  1. Di Mac Anda, luncurkan Xcode.

  2. Di Xcode, pilih item menu Preferensi Xcode > ... .

  3. Dalam dialog Preferensi, pilih tab Akun.

  4. Di tab Akun , klik tombol + untuk menambahkan Akun Pengembang Apple Anda ke Xcode:

    Xcode Accounts dialog in preferences.

  5. Di popup jenis akun, pilih ID Apple lalu klik tombol Lanjutkan :

    Xcode select the type of account you'd like to add popup.

  6. Di popup masuk, masukkan ID Apple Anda dan klik tombol Berikutnya .

  7. Di popup masuk, masukkan kata sandi ID Apple Anda dan klik tombol Berikutnya :

    Xcode Apple account sign-in.

  8. Di tab Akun , klik tombol Kelola Sertifikat... untuk memastikan bahwa sertifikat distribusi Anda telah diunduh.

  9. Di tab Akun , klik tombol Unduh Profil Manual untuk mengunduh profil provisi Anda:

    Xcode Apple Developer Program account details.

  10. 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.

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, , SdkOnlyatau 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:

Allow codesign to sign your app on your Mac.Allow productbuild to sign your app on your Mac.

Untuk informasi selengkapnya tentang perintah, lihat penerbitan dotnet publishdotnet.

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, , SdkOnlyatau 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:

  1. Konfigurasi build diatur ke Release.
  2. Kerangka kerja target diatur ke sesuatu yang berisi teks net8.0-maccatalyst.
  3. 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