最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Mac中把一个shell script命令行脚本制作成一个app应用

Mac crifan 2023浏览 0评论
折腾:
【未解决】Mac中如何把一个script脚本放到LaunchPad启动台中支持点击图标启动
期间,参考:
macos – Calling a bash script from the launchpad – Stack Overflow
macos – How do I add an icon to launchpad in os x mountain lion that will launch a java .jar? – Stack Overflow
去试试,把当前这个JadxGUI的shell script,制作成一个app程序。
以希望可以让app出现在LaunchPad中。
把制作app的脚本内容:
#!/usr/bin/env bash


APPNAME=${2:-$(basename "${1}" '.sh')};
DIR="${APPNAME}.app/Contents/MacOS";


if [ -a "${APPNAME}.app" ]; then
    echo "${PWD}/${APPNAME}.app already exists :(";
    exit 1;
fi;


mkdir -p "${DIR}";
cp "${1}" "${DIR}/${APPNAME}";
chmod +x "${DIR}/${APPNAME}";


echo "${PWD}/$APPNAME.app";
保存为appify
再去加上权限,放到系统目录中:
➜  Downloads chmod +x appify
➜  Downloads ll appify
-rwxr-xr-x@ 1 crifan  staff   303B  4  3 14:20 appify
➜  Downloads cp appify /usr/local/bin
然后去制作自己的app
➜  bin ll
total 56
-rwxr-xr-x@ 1 crifan  staff   101B  4  3 13:55 JadxGUI
➜  bin which appify
/usr/local/bin/appify
➜  bin appify JadxGUI "JadxGUI"
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/JadxGUI.app
➜  bin ll
total 56
-rwxr-xr-x@ 1 crifan  staff   101B  4  3 13:55 JadxGUI
drwxr-xr-x  3 crifan  staff    96B  4  3 14:23 JadxGUI.app
显示包内容
然后再去添加图标
先去弄个图标(或者从别的app中拷贝Command+C出来一个)
jadx icon
Propose an icon for jadx · Issue #268 · skylot/jadx
-》
Another logo/icon proposal · Issue #420 · skylot/jadx
感觉这个更好:
以及另外一个logo:
右键,显示简介
然后选中左上角的图标:
然后去Command+V粘贴
即可粘贴出logo图标:
然后再去把这个JadxGUI放到 应用程序 中:
看看LaunchPad中是否自动出现:
结果没有
双击启动 结果虽然能启动,但是无法正常运行
然后回去再看最开始的:
JadxGUI.app
去双击运行,也是:
虽然可以运行,但是实际上无法正常工作
代码不显示。
而JadxGUI命令行本身是能正常运行的:
都删除掉,重新制作一遍,且验证最开始制作出的app是否work
➜  bin rm -rf JadxGUI.app
➜  bin ll
total 56
-rwxr-xr-x@ 1 crifan  staff   101B  4  3 13:55 JadxGUI.sh
➜  bin appify JadxGUI.sh "JadxGUI"
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/JadxGUI.app
➜  bin ll
total 56
drwxr-xr-x  3 crifan  staff    96B  4  3 14:42 JadxGUI.app
-rwxr-xr-x@ 1 crifan  staff   101B  4  3 13:55 JadxGUI.sh
经过尝试发现:
需要把原先的shell脚本中的最后的参数”$@”去掉(同时后缀改成了.sh,貌似这点没影响):
➜  bin cat JadxGUI.sh
#!/bin/bash
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui
再去制作出app:
➜  bin appify JadxGUI.sh "JadxGUI"
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/JadxGUI.app
➜  bin ll
total 56
drwxr-xr-x  3 crifan  staff    96B  4  3 14:44 JadxGUI.app
-rwxr-xr-x@ 1 crifan  staff    96B  4  3 14:43 JadxGUI.sh
然后运行app:
JadxGUI.app
就可以正常工作了:
-》此处,再去替换logo图标:
再去拷贝到应用程序中:
双击运行
也是可以正常运行的了:
【总结】
此处,是可以通过:
/Users/crifan/Downloads/appify
#!/usr/bin/env bash


APPNAME=${2:-$(basename "${1}" '.sh')};
DIR="${APPNAME}.app/Contents/MacOS";


if [ -a "${APPNAME}.app" ]; then
    echo "${PWD}/${APPNAME}.app already exists :(";
    exit 1;
fi;


mkdir -p "${DIR}";
cp "${1}" "${DIR}/${APPNAME}";
chmod +x "${DIR}/${APPNAME}";


echo "${PWD}/$APPNAME.app";
保存为appify,然后拷贝到系统目录:
➜  Downloads cp appify /usr/local/bin
然后,先确保自己要被制作成的shell脚本是正常的。
此处,不能是之前加了参数的:
➜  bin cat JadxGUI
#!/bin/bash
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui "$@"
而是(同时改了后缀为.sh):
➜  bin cat JadxGUI.sh
#!/bin/bash
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui
然后再去制作app:
➜  bin appify JadxGUI.sh "JadxGUI"
/Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/JadxGUI.app
➜  bin ll
total 56
drwxr-xr-x  3 crifan  staff    96B  4  3 14:44 JadxGUI.app
-rwxr-xr-x@ 1 crifan  staff    96B  4  3 14:43 JadxGUI.sh
双击app,确保能正常运行,实现你要的功能。
然后【可选】再去添加图标:
先找个图标/图片-》Command+C拷贝到Mac的系统剪贴板中-》右键此处的app:JadxGUI.app -》显示简介-》点击左上角图标-》Command+V粘贴
即可添加图标。
然后把(带了图标的)app,拷贝放到 应用程序中-》以后即可去应用程序中,双击该app,启动功能了。

转载请注明:在路上 » 【已解决】Mac中把一个shell script命令行脚本制作成一个app应用

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.201 seconds, using 22.04MB memory