𝗠𝗲𝗻𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘀𝗶𝗸𝗮𝗻 𝗔𝗽𝗹𝗶𝗸𝗮𝘀𝗶 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 𝗣𝘆𝘁𝗵𝗼𝗻 𝗱𝗶 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝗱𝗮𝗻 𝗠𝗮𝗰
Python bersifat lintas platform. Anda cukup menulis kode satu kali dan menjalankannya di mana saja.
Namun, mendistribusikan kode tersebut adalah hal yang berbeda. Pipeline untuk Windows dan macOS sepenuhnya terpisah. Anda harus menangani alat dan aturan yang berbeda untuk setiap sistem.
Berikut adalah rincian proses rilisnya:
Pipeline Mac • Build: Gunakan PyInstaller dengan arsitektur x86_64. • Format: Buat bundle .app dan kemudian file .dmg. • Signing: Gunakan codesign dengan sertifikat Developer ID. • Validasi: Kirim aplikasi Anda ke Apple untuk Notarization.
Pipeline Windows • Build: Gunakan PyInstaller. • Format: Gunakan Inno Setup untuk membuat installer .exe. • Signing: Gunakan eSigner CSC untuk penandatanganan berbasis cloud. • Validasi: Bangun reputasi di sistem Microsoft SmartScreen.
Kendala Umum
Arsitektur Mac Jika Anda melakukan build di Mac Apple Silicon, biner Anda mungkin hanya berfungsi di ARM64. Ini berarti biner tersebut akan gagal di Mac Intel. Selalu jalankan build Anda melalui arsitektur x86_64 untuk memastikan aplikasi Anda berjalan di kedua jenis Mac tersebut.
Penandatanganan Mac Penandatanganan sederhana sering kali gagal dengan Hardened Runtime. Anda harus menemukan setiap biner Mach-O di dalam bundle aplikasi Anda dan menandatanganinya satu per satu dari bagian dalam ke luar.
Notarization Mac Notarization dapat tertunda selama berhari-hari. Ini sering kali bukan bug teknis. Periksa akun Apple Developer Anda untuk melihat apakah ada formulir pajak atau informasi perbankan yang kurang. Masalah administratif ini sering kali menghambat rilis Anda.
Instalasi Windows Gunakan Inno Setup untuk menginstal aplikasi Anda dalam user mode. Ini akan menginstal aplikasi ke folder pengguna, bukan ke folder sistem. Hal ini memungkinkan pengguna untuk menginstal perangkat lunak Anda tanpa hak akses admin. Ini dapat mencegah banyak tiket dukungan.
Penandatanganan Windows Penandatanganan tradisional memerlukan token USB fisik. Hal ini membuat otomatisasi menjadi sulit. Gunakan layanan penandatanganan cloud seperti eSigner CSC untuk menandatangani file Anda langsung dari skrip Anda.
Masalah Versi Anda harus menjaga agar nomor versi tetap sinkron di semua file. Jika kode Python, skrip installer, dan server web Anda menggunakan nomor versi yang berbeda, pemeriksaan pembaruan Anda akan gagal.
Bangun pipeline satu kali. Memang butuh waktu untuk menyiapkannya. Namun setelah berhasil, Anda dapat merilis versi baru dalam 30 menit.