折腾:
【未解决】Mac中如何把一个script脚本放到LaunchPad启动台中支持点击图标启动
期间,参考:
去试试,把当前这个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

感觉这个更好:

以及另外一个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,启动功能了。