วิธีสร้างแอป Mac OS X ด้วยเชลล์สคริปต์


12

ฉันลองทำตามบทช่วยสอนสองสามข้อ แต่ฉันได้รับสิ่งนี้: ข้อผิดพลาด PowerPC

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ฉันเพิ่มไว้ใน info.plist (ฉันเพิ่งคัดลอกและวางไฟล์ของแอปอื่นและเปลี่ยนแปลงไปสองสามอย่าง)

นอกจากนี้ฉันchmod +x myAppยังใช้เพื่อให้สคริปต์ทำงานได้

ป.ล. ฉันกำลังใช้ El Capitan


เราไม่สามารถเดาสิ่งที่คุณทำก่อนได้รับข้อความแสดงข้อผิดพลาด บทเรียนใดที่คุณทำตามหลังจากขั้นตอนใดที่คุณติดอยู่?
nohillside

1
ฉันสร้างโฟลเดอร์ชื่อ myApp.app จากนั้นโฟลเดอร์ย่อยชื่อ Contents จากนั้น MacOS จากนั้นจะเป็นเชลล์สคริปต์ myApp ที่มี#!/bin/bash ; say "Hi" ; exit 0(ด้วยคำสั่งแต่ละคำสั่งในบรรทัดที่ต่างกันและไม่มีเครื่องหมายอัฒภาค)
Flare Cat

1
สคริปต์ทุบตีที่มีชุดเรียกใช้บิตไม่จำเป็นต้องอยู่ในชุดข้อมูลเพื่อดำเนินการให้ดับเบิลคลิกง่าย ๆ เพียงแค่อยู่ใน Finder หรือเรียกใช้จากเทอร์มินัล หากคุณต้องการกลุ่มแอปพลิเคชันจริงๆให้สร้างโดยใช้ AppleScript หรือ Automator ซึ่งเป็นเรื่องง่าย เพิ่มแอ็คชัน Run Shell Script และวางโค้ดของคุณ
user3439894

@ user3439894 ฉันลอง Automater ในวิธีที่คุณอธิบายก่อนโพสต์สิ่งนี้ แต่แอพจะไม่ทำงานบนคอมพิวเตอร์เป้าหมาย
Flare Cat

@ user3439894 ด้วยเหตุผลบางอย่างฉันไม่สามารถแก้ไขความคิดเห็นก่อนหน้าของฉัน ข้อผิดพลาดเป็นสิ่งที่ต้องการ 'คอมพิวเตอร์ประเภทนี้ไม่รองรับแอปพลิเคชันนี้'
Flare Cat

คำตอบ:


21

เป็นเวลาหลายปีแล้วที่ฉันใช้เคล็ดลับง่ายๆนี้เพื่อให้มีสคริปต์ทุบตีในแอปพลิเคชัน (และจริงๆไม่เข้าใจว่าทำไมทุกคนลองแก้ปัญหาที่ซับซ้อนเช่นการสร้างโฟลเดอร์ "เนื้อหา", info.plist หรือใช้ Automator หรือ Platypus หรือ .. . ????): สร้างโฟลเดอร์ชื่อ "YourApplication.app" วางไฟล์สคริปต์ bash ของคุณลงในโฟลเดอร์นี้ในแบบที่เหมาะกับคุณที่สุด (ตัวค้นหาเทอร์มินัล ฯลฯ ) สคริปต์ทุบตีจะต้องสามารถใช้งานได้แน่นอน (ใช้ chmod + x หากคุณต้องการ) ไม่จำเป็นสำหรับโฟลเดอร์หรือไฟล์อื่น ๆ (จนกว่าคุณจะต้องเรียกสคริปต์อื่นหรือไฟล์ที่เรียกใช้งานได้จากภายในสคริปต์ของคุณ) เคล็ดลับคือการตั้งชื่อสคริปต์ของคุณด้วยชื่อเดียวกับโฟลเดอร์แอปพลิเคชัน แต่ไม่มีนามสกุล ในกรณีที่อธิบายไว้ที่นี่ไฟล์สคริปต์จะต้องมีชื่อว่า "YourApplication" นั่นคือทั้งหมด! มันใช้งานได้บน Mac os x ตั้งแต่ Snow Leopard ถึง Mavericks หากใครสามารถลองเวอร์ชั่น OS ที่ใหม่กว่าและบอกฉัน

หมายเหตุ: สคริปต์ต้องมีอย่างน้อย 28 ไบต์ในขนาดมิฉะนั้นจะไม่ได้ดำเนินการ มันอาจจะเต็มไปด้วยเส้นว่างเพื่อให้ได้ขนาดขั้นต่ำ นอกจากนี้บรรทัดแรกของสคริปต์จะต้องเป็น Shebang เช่นหรือ#!/bin/bash#!/bin/perl


ลองเพิ่มอีกบรรทัดมันจะช่วยให้คุณได้รับข้อความถ้ามีบรรทัดไม่เพียงพอในสคริปต์ของคุณ
Pierre Lagarde

ฉันได้แก้ไขคำตอบของคุณเพื่อรวมข้อมูลที่ขาดหายไปที่สำคัญและได้รับการโหวต
user3439894

ตกลงขอบคุณสำหรับการแก้ไขและ upvoting ... ฉันใช้มันมานานแล้วและลืมเกี่ยวกับความต้องการ 28 ไบต์ ... ฉันไม่มีสคริปต์ที่แน่นอน: D
Pierre Lagarde

1
ฉันเพิ่งทดสอบสิ่งนี้ภายใต้ macOS Sierra และใช้งานได้เช่นกัน
user3439894

1
@FlareCat ที่จริงแล้วฉันเพิ่งตรวจสอบและฉันเดา shebang ใด ๆ ที่มีล่ามที่มีอยู่จะทำ (ลองด้วย Perl) หากคุณลองภาษาอื่นเพียงแค่บอก;)
Pierre Lagarde

7

หากเป็นสคริปต์เชลล์แบบง่ายคุณไม่จำเป็นต้องห่อไว้ในบันเดิลแอปพลิเคชัน คุณสามารถดับเบิลคลิกที่สคริปต์ อย่างไรก็ตามคุณจะไม่สามารถมีไอคอนที่กำหนดเองหรือสิ่งอื่น ๆ เช่นนั้นได้

ฉันคิดว่ามีผู้ช่วยเหลือไม่กี่รายที่สามารถห่อสคริปต์แบบง่าย ๆ ได้ แต่สิ่งเดียวที่ฉันมีประสบการณ์คือPlatypusซึ่งช่วยให้คุณสร้างสคริปต์ shell / python / perl / ruby ​​/ etc ได้เหมือนแอปพลิเคชันทั่วไปที่มีไอคอน I / การเปลี่ยนเส้นทาง O เป็นต้น


ตุ่นปากเป็ดดูดี แต่มันก็เป็นการดีที่จะรู้ว่าต้องทำอย่างไรด้วยตนเอง
Flare Cat

1
ผ่านการทดสอบตุ่นปากเป็ดทำงานอย่างที่ฉันต้องการ! ขอบคุณสำหรับคำแนะนำ
Flare Cat

1

ฉันไม่มีชื่อเสียงที่จะแสดงความคิดเห็นต่อคำตอบของ bjb แต่คุณสามารถเพิ่มไอคอนที่กำหนดเองลงในสคริปต์. sh คุณเพียงลากรูปภาพไปที่ไอคอนในข้อมูลรับไฟล์ ฉันคิดว่ามันต้องเป็น png และคุณสามารถทำงานได้อย่างทึบ


ยินดีต้อนรับสู่ถามที่แตกต่างกัน การรวมบางส่วนของคำตอบเข้าด้วยเครดิตเพื่อให้คำตอบของคุณโดดเดี่ยว หรือแก้ไขโพสต์
bmike
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.