Windows اور Mac پر Python ڈیسک ٹاپ ایپس کی تقسیم

Python کراس پلیٹ فارم ہے۔ آپ ایک بار کوڈ لکھتے ہیں اور اسے کہیں بھی چلا سکتے ہیں۔

لیکن اس کوڈ کو تقسیم کرنا ایک الگ کہانی ہے۔ Windows اور macOS کے لیے پائپ لائن (pipeline) مکمل طور پر الگ ہے۔ آپ کو ہر سسٹم کے لیے مختلف ٹولز اور مختلف قواعد کو سنبھالنا ہوگا۔

ریلیز کے عمل کی تفصیلات درج ذیل ہیں:

Mac پائپ لائن • Build: x86_64 آرکیٹیکچر کے ساتھ PyInstaller استعمال کریں۔ • Format: ایک .app بنڈل اور پھر ایک .dmg فائل بنائیں۔ • Signing: Developer ID سرٹیفکیٹ کے ساتھ codesign استعمال کریں۔ • Validation: اپنے ایپ کو Notarization کے لیے Apple کو جمع کروائیں۔

Windows پائپ لائن • Build: PyInstaller استعمال کریں۔ • Format: .exe انسٹالر بنانے کے لیے Inno Setup استعمال کریں۔ • Signing: کلاؤڈ پر مبنی سائننگ کے لیے eSigner CSC استعمال کریں۔ • Validation: Microsoft SmartScreen سسٹم میں ساکھ (reputation) بنائیں۔

عام غلطیاں

Mac آرکیٹیکچر اگر آپ Apple Silicon Mac پر بلڈ کرتے ہیں، تو آپ کے بائنریز (binaries) صرف ARM64 پر کام کر سکتے ہیں۔ اس کا مطلب ہے کہ وہ Intel Macs پر کام نہیں کریں گے۔ اس بات کو یقینی بنانے کے لیے کہ آپ کی ایپ دونوں قسم کے Macs پر چلے، ہمیشہ اپنے بلڈ کو x86_64 آرکیٹیکچر کے ذریعے چلائیں۔

Mac سائننگ سادہ سائننگ اکثر Hardened Runtime کے ساتھ ناکام ہو جاتی ہے۔ آپ کو اپنے ایپ بنڈل کے اندر موجود ہر Mach-O بائنری کو تلاش کرنا ہوگا اور انہیں اندر سے باہر کی طرف ایک ایک کر کے سائن کرنا ہوگا۔

Mac Notarization Notarization میں کئی دن لگ سکتے ہیں۔ یہ اکثر کوئی تکنیکی خرابی نہیں ہوتی۔ اپنے Apple Developer اکاؤنٹ میں چیک کریں کہ کہیں کوئی ٹیکس فارم یا بینکنگ معلومات تو ادھوری نہیں ہے۔ یہ انتظامی مسائل اکثر آپ کی ریلیز کو روک دیتے ہیں۔

Windows انسٹالیشن اپنی ایپ کو user mode میں انسٹال کرنے کے لیے Inno Setup استعمال کریں۔ یہ ایپ کو سسٹم فولڈر کے بجائے صارف (user) کے فولڈر میں انسٹال کرتا ہے۔ یہ صارفین کو ایڈمن حقوق کے بغیر آپ کا سافٹ ویئر انسٹال کرنے کی اجازت دیتا ہے۔ اس سے بہت سے سپورٹ ٹکٹس سے بچا جا سکتا ہے۔

Windows سائننگ روایتی سائننگ کے لیے فزیکل USB ٹوکن کی ضرورت ہوتی ہے۔ یہ آٹومیشن کو مشکل بنا دیتا ہے۔ اپنی فائلوں کو براہ راست اپنے اسکرپٹس سے سائن کرنے کے لیے eSigner CSC جیسی کلاؤڈ سائننگ سروسز استعمال کریں۔

ورژننگ کا مسئلہ آپ کو تمام فائلوں میں ورژن نمبر ہم آہنگ (synchronized) رکھنے ہوں گے۔ اگر آپ کا Python کوڈ، انسٹالر اسکرپٹ اور ویب سرور مختلف ورژن نمبر استعمال کرتے ہیں، تو آپ کے اپ ڈیٹ چیک فیل ہو جائیں گے۔

پائپ لائن کو ایک بار بنا لیں۔ اسے سیٹ اپ کرنے میں وقت لگتا ہے۔ لیکن ایک بار جب یہ کام کرنے لگے، تو آپ 30 منٹ میں نئی ریلیز بھیج سکتے ہیں۔

Source: https://dev.to/susumun/distributing-a-python-desktop-app-on-windows-and-mac-the-full-release-pipeline-1n4