Bagikan melalui


Menerbitkan aplikasi iOS menggunakan baris perintah

Untuk menerbitkan aplikasi Anda dari baris perintah di Mac, buka terminal dan navigasikan ke folder untuk proyek aplikasi .NET Multi-platform App UI (.NET MAUI) Anda. Jalankan dotnet publish perintah , menyediakan parameter berikut:

Parameter Nilai
-f atau --framework Kerangka kerja target, yaitu net8.0-ios.
-c atau --configuration Konfigurasi build, yaitu Release.

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 Nilai
-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. Gunakan ios-arm64.
-p:ArchiveOnBuild Nilai boolean yang menunjukkan apakah akan menghasilkan arsip aplikasi. Gunakan true untuk menghasilkan .ipa.
-p:CodesignKey Nama kunci penandatanganan kode.
-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.

Untuk daftar lengkap properti build, lihat Properti file proyek.

Penting

Nilai untuk 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 .ipa di Mac:

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:RuntimeIdentifier=ios-arm64 -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp"

Catatan

Di .NET 8, dotnet publish perintah default ke Release konfigurasi. Oleh karena itu, konfigurasi build dapat dihilangkan dari baris perintah. Selain itu, dotnet publish perintah juga default ke ios-arm64 RuntimeIdentifier. Oleh karena itu, RuntimeIdentifier juga dapat dihilangkan dari baris perintah.

Menerbitkan membangun dan menandatangani aplikasi, lalu menyalin .ipa ke folder bin/Release/net8.0-ios/ios-arm64/publish/ . Saluran distribusi untuk aplikasi ditentukan dalam sertifikat distribusi yang terkandung dalam profil provisi. Untuk informasi tentang membuat profil provisi untuk saluran distribusi yang berbeda, lihat Menerbitkan aplikasi iOS untuk distribusi App Store, Menerbitkan aplikasi iOS untuk distribusi ad-hoc, dan Menerbitkan aplikasi iOS untuk distribusi internal.

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.
<RuntimeIdentifier> Pengidentifikasi runtime (RID) untuk proyek. Gunakan ios-arm64.
<ArchiveOnBuild> Nilai boolean yang menunjukkan apakah akan menghasilkan arsip aplikasi. Gunakan true untuk menghasilkan .ipa.
<CodesignKey> Nama kunci penandatanganan kode.
<CodesignProvision> Profil provisi yang akan digunakan saat menandatangani bundel aplikasi.
<CodesignEntitlements> Jalur ke file pemberian izin yang menentukan pemberian izin yang diperlukan aplikasi.

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 khas untuk membangun dan menandatangani aplikasi iOS Anda dengan profil provisinya:

<PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'Release'">
  <CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp</CodesignProvision>
  <ArchiveOnBuild>true</ArchiveOnBuild>
</PropertyGroup>

Contoh <PropertyGroup> ini menambahkan pemeriksaan kondisi, mencegah pengaturan diproses kecuali pemeriksaan kondisi berlalu. Pemeriksaan kondisi mencari dua item:

  1. Kerangka kerja target diatur ke sesuatu yang berisi teks -ios.
  2. Konfigurasi build diatur ke Release.

Jika salah satu kondisi ini gagal, pengaturan tidak diproses. Lebih penting lagi, <CodesignKey> pengaturan dan <CodesignProvision> tidak diatur, mencegah aplikasi ditandatangani.

Menerbitkan aplikasi iOS dari Windows

Membangun aplikasi iOS asli menggunakan .NET MAUI memerlukan akses ke alat build Apple, yang hanya berjalan di Mac. Karena itu, Visual Studio 2022 harus terhubung ke Mac yang dapat diakses jaringan untuk membangun aplikasi .NET MAUI iOS. Untuk informasi selengkapnya, lihat Memasangkan ke Mac untuk pengembangan iOS.

Catatan

Pertama kali Pair to Mac masuk ke host build Mac dari Visual Studio 2022, ia mengatur kunci SSH. Dengan kunci ini, login di masa mendatang tidak akan memerlukan nama pengguna atau kata sandi.

Untuk menerbitkan aplikasi Anda dari baris perintah di Windows, buka terminal dan navigasikan ke folder untuk proyek aplikasi .NET MAUI Anda. Jalankan dotnet publish perintah , menyediakan parameter baris perintah yang sama, atau properti build di file proyek Anda, yang akan Anda berikan saat menerbitkan dari Mac. Selain itu, Anda harus memberikan parameter baris perintah berikut:

Parameter Nilai
-p:ServerAddress Alamat IP host build Mac Anda.
-p:ServerUser Nama pengguna yang akan digunakan saat masuk ke host build Mac Anda. Gunakan nama pengguna sistem Anda daripada nama lengkap Anda.
-p:ServerPassword Kata sandi untuk nama pengguna yang digunakan untuk masuk ke host build Mac Anda.
-p:TcpPort Port TCP yang digunakan untuk berkomunikasi dengan host build Mac Anda, yaitu 58181.
-p:_DotNetRootRemoteDirectory Folder di host build Mac Anda yang berisi .NET SDK. Gunakan /Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/.

Penting

Nilai untuk parameter ini juga dapat disediakan dalam file proyek sebagai properti build. Namun, nilai untuk <ServerAddress>, <ServerUser>, <ServerPassword>, dan <_DotNetRootRemoteDirectory> biasanya akan disediakan pada baris perintah karena alasan keamanan.

Misalnya, gunakan perintah berikut untuk membangun dan menandatangani .ipa dari Windows:

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:RuntimeIdentifier=ios-arm64 -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:ServerAddress={macOS build host IP address} -p:ServerUser={macOS username} -p:ServerPassword={macOS password} -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/

Catatan

Di .NET 8, dotnet publish perintah default ke Release konfigurasi. Oleh karena itu, konfigurasi build dapat dihilangkan dari baris perintah. Selain itu, dotnet publish perintah juga default ke ios-arm64 RuntimeIdentifier. Oleh karena itu, RuntimeIdentifier juga dapat dihilangkan dari baris perintah.

Catatan

ServerPassword Jika parameter dihilangkan dari pemanggilan build baris perintah, Pair to Mac mencoba masuk ke host build Mac menggunakan kunci SSH yang disimpan.

Menerbitkan membangun dan menandatangani aplikasi, lalu menyalin .ipa ke folder bin\Release\net8.0-ios\ios-arm64\publish di komputer Windows Anda. Saluran distribusi untuk aplikasi ditentukan dalam sertifikat distribusi yang terkandung dalam profil provisi. Untuk informasi tentang membuat profil provisi distribusi untuk saluran distribusi yang berbeda, lihat Menerbitkan aplikasi iOS untuk distribusi App Store, Menerbitkan aplikasi iOS untuk distribusi ad-hoc, dan Menerbitkan aplikasi iOS untuk distribusi internal

Selama proses penerbitan, mungkin perlu untuk memungkinkan codesign untuk berjalan di Mac yang dipasangkan:

Izinkan codesign untuk menandatangani app anda di Mac yang dipasangkan.

Memecahkan masalah build jarak jauh

RuntimeIdentifier Jika tidak ditentukan saat membangun dari jarak jauh dari baris perintah di Windows, arsitektur komputer Windows akan digunakan. Ini terjadi karena RuntimeIdentifier harus diatur lebih awal dalam proses build, sebelum build dapat terhubung ke Mac untuk memperoleh arsitekturnya.

RuntimeIdentifier Jika tidak ditentukan saat membangun dari jarak jauh menggunakan Visual Studio di Windows, IDE akan mendeteksi arsitektur Mac jarak jauh dan mengaturnya. Mengambil alih default dapat dicapai dengan mengatur $(ForceSimulatorX64ArchitectureInIDE) properti build:

<PropertyGroup Condition="'$(Configuration)' == 'Release' And '$(TargetFramework)' == 'net8.0-ios'">
    <ForceSimulatorX64ArchitectureInIDE>true</ForceSimulatorX64ArchitectureInIDE>
</PropertyGroup>

Mendistribusikan aplikasi

File .ipa dapat didistribusikan dengan salah satu pendekatan berikut:

  • App ad-hoc dapat didistribusikan menggunakan Apple Configurator. Untuk informasi selengkapnya, lihat Panduan pengguna Apple Configurator di support.apple.com. |
  • Aplikasi App Store dapat diunggah ke App Store melalui aplikasi seperti Transporter. Ini akan mengharuskan Anda membuat catatan untuk aplikasi di App Store Connect, dan untuk membuat kata sandi khusus aplikasi. Untuk informasi selengkapnya, lihat Membuat rekaman app di developer.apple.com, dan Masuk ke app dengan ID Apple Anda menggunakan kata sandi khusus app di support.apple.com.
  • Aplikasi internal dapat didistribusikan melalui situs web yang aman, atau melalui Mobile Manajemen Perangkat (MDM). Kedua pendekatan ini mengharuskan aplikasi untuk disiapkan untuk distribusi, yang mencakup persiapan manifes. Untuk informasi selengkapnya, lihat Mendistribusikan app internal milik ke perangkat Apple di support.apple.com.