كيفية إنشاء ملف مضغوط بنفس تنسيق عنصر القائمة "الضغط" في Finder؟
-
01-07-2019 - |
سؤال
في نظام التشغيل Mac OS X، يمكنك إنشاء أرشيف مضغوط من Finder عن طريق تحديد بعض الملفات واختيار "ضغط" من القائمة السياقية أو قائمة "ملف".لسوء الحظ، الملف الناتج ليس مطابقًا للأرشيف الذي تم إنشاؤه بواسطة ملف zip
الأمر (مع الخيارات الافتراضية).
هذا التمييز مهم لخدمة واحدة على الأقل تديرها شركة Apple، والتي تفشل في قبول الأرشيفات التي تم إنشاؤها باستخدام zip
يأمر.إن الاضطرار إلى إنشاء أرشيفات يدويًا يمنعني من أتمتة عملية إنشاء الإصدار بشكل كامل.
كيف يمكنني إنشاء أرشيف مضغوط بالتنسيق الصحيح داخل برنامج Shell النصي؟
يحرر:منذ أن كتبت هذا السؤال منذ فترة طويلة، اكتشفت أن الفرق الرئيسي بين ditto
و zip
هي كيفية تعاملهم مع الروابط الرمزية:نظرًا لأن توقيع التعليمات البرمجية داخل حزمة التطبيق يحتوي على رابط رمزي، فيجب الاحتفاظ به كرابط وعدم تخزينه كملف عادي. ditto
يفعل هذا بشكل افتراضي، ولكن zip
لا (الخيار -y
مطلوب).
المحلول
استخدم أداة سطر الأوامر كما سبق كما يلي:
ditto -ck --rsrc --sequesterRsrc folder file.zip
انظر كما سبق صفحة الرجل للمزيد من.
نصائح أخرى
لدي برنامج نصي روبي يجعل iPhone App Store يصمم لي، ولكن الملفات المضغوطة التي كان ينشئها لن يتم قبولها بواسطة iTunes Connect.تم قبولها إذا استخدمت وظيفة "الضغط" الخاصة بـ Finder.
لقد اقتربت إجابة ميلينومي بالنسبة لي، ولكن هذا الأمر هو ما نجح في النهاية.قبل iTunes Connect الإصدار الخاص بي، وتمت الموافقة على التطبيق ويمكن تنزيله دون أي مشكلة، لذلك تم اختباره.
ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip
يقول الرجل كما سبق:
The command: ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip will create a PKZip archive similarly to the Finder's Compress functionality.
إشعار --keepParent
الفكرة موجودة في علامة "الأتمتة".
أنشئ إجراءً في Automator.app يستخدم إجراء "إنشاء أرشيف"، واستدعاه من سطر الأوامر (راجع "automator").