Як зробити Mac OS X .app зі скриптом оболонки?


12

Я спробував дотримуватися кількох навчальних посібників, але я отримую це: Помилка PowerPC

Як я можу це виправити? Я додав у info.plist (я просто скопіював і вставив файл іншого додатка та змінив декілька речей.)

Також я chmod +x myAppробив сценарій виконуваним.

PS Я використовую El Capitan


Ми не можемо здогадатися, що ви зробили до отримання повідомлення про помилку. Які підручники ви виконували, після якого кроку ви застрягли?
nohillside

1
Я створив папку під назвою myApp.app, потім підпапку під назвою Contents, потім MacOS, потім скрипт оболонки myApp, який містить #!/bin/bash ; say "Hi" ; exit 0(З кожною командою в різних рядках і без крапки з комою).
Спалах Кота

1
Баш-скрипт, у якому він встановлений набір бітів, не обов'язково розміщувати в пакеті для виконання, просто двічі клацніть його, якщо просто в Finder або запустіть його з Terminal. Якщо ви дійсно хочете пакет програм, то створіть його за допомогою AppleScript або Automator, остання з яких проста. Додайте сценарій Run Shell Script і помістіть у ньому свій код.
користувач3439894

@ user3439894 Я спробував автоматизатор у описаному вами способі перед публікацією цього повідомлення, але додаток не працюватиме на цільовому комп'ютері.
Спалах Кота

@ user3439894 Ну чомусь я не можу редагувати свій попередній коментар. Помилка була чимось на зразок "Цей додаток не підтримується на цьому комп'ютері".
Спалах Кота

Відповіді:


21

Що ж, минуло років, коли я використовую цей простий трюк, щоб мати скрипти bash у застосуванні (і насправді насправді не розумію, чому всі люди намагаються настільки складні рішення, як створення папок "Зміст", info.plist або використовувати Automator або Platypus тощо. . ????): Створіть папку під назвою "YourApplication.app". Помістіть ваш файл скриптів bash прямо в цю папку так, як найкраще підходить вам (Finder, термінал тощо). Сценарій bash повинен бути виконуваним, звичайно, (використовуйте chmod + x, якщо вам потрібно). Немає необхідності в інших папках або файлах (поки вам не потрібно буде викликати інші сценарії або виконувану програму з вашого сценарію, звичайно). Прихильність полягає в тому, щоб назвати ваш скрипт точно таким же ім'ям, як папка програми, але без розширення. У випадку, описаному тут, файл сценарію повинен бути названий "YourApplication". Це все ! Він працює на Mac OS x від Snow Leopard до Mavericks. Якщо хтось може спробувати новіші версії ОС і скажіть мені.

Примітка . Сценарій повинен бути розміром не менше 28 байт, інакше він не буде виконаний. Він може бути прокладений порожніми рядками для досягнення мінімального розміру. Також перший рядок сценарію повинен бути шебангом; наприклад #!/bin/bashабо #!/bin/perl.


Спробуйте додати ще кілька рядків, це дає вам повідомлення, яке ви мали, якщо у вашому сценарії недостатньо рядків.
П’єр Лагард

Я відредагував вашу відповідь, щоб включити критичну інформацію, яка не вистачає, і внесла її у відповідь.
користувач3439894

ОК, дякую за виправлення та оновлення ... Я використовую це з занадто довго і забув про необхідність 28 байт ... У мене, звичайно, немає жодного маленького сценарію: D
П'єр Лагард

1
Я щойно тестував це під macOS Sierra, і він також працює там.
користувач3439894

1
@FlareCat Насправді я щойно перевірив і, мабуть, зробить будь-який шебанг із наявним перекладачем (спробував perl). Якщо ви спробували інші мови, просто скажіть;).
П’єр Лагард

7

Якщо це простий скрипт оболонки, то вам не потрібно загортати його в пакет програм; ви можете двічі клацнути сам сценарій. Однак ви не зможете мати користувальницьку піктограму чи інші подібні речі.

Я думаю, що там є кілька помічників, які можуть обробляти прості сценарії, але єдиний, з яким я маю досвід, - це Platypus, який дозволяє змусити сценарії оболонки / python / perl / ruby ​​/ тощо виконуватись як звичайні програми з піктограмами, я / O перенаправлення тощо.


Платинос виглядає добре, але було б чудово знати, як це зробити вручну.
Спалах Кота

1
Випробуваний з Платипусом, працює саме так, як я хотів! Дякую за пропозицію.
Спалах Кота

1

У мене немає репутації коментувати відповідь bjb, але ви можете додавати власні піктограми до скриптів .sh. Ви просто перетягніть зображення на піктограму в інформації про отримання файлу. Я думаю, що це має бути png, і ви можете отримати непрозорість роботи.


Ласкаво просимо до "Запитайте різних". Добре включати частину іншої відповіді з кредитом, щоб зробити свою відповідь самостійною. Або редагування публікації.
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.