【发布时间】:2013-01-20 21:17:02
【问题描述】:
我有一个 bash 脚本,我想从应用程序的参数开始。 目前我可以生成命令,但我该如何执行呢? 此应用程序仅适用于越狱手机。 有什么解决方案吗?我搜索了很多,但没有找到任何东西。
【问题讨论】:
标签: ios objective-c shell jailbreak
我有一个 bash 脚本,我想从应用程序的参数开始。 目前我可以生成命令,但我该如何执行呢? 此应用程序仅适用于越狱手机。 有什么解决方案吗?我搜索了很多,但没有找到任何东西。
【问题讨论】:
标签: ios objective-c shell jailbreak
如果这是一个越狱应用程序,您可以通过将命令传递给system() function that's part of the OS 或exec 函数之一来运行该命令。
因此,如果您决定将脚本安装在 /Applications/MyApp.app/myscript.sh,那么在您的应用中,您可以使用:
int result = system("/Applications/MyApp.app/myscript.sh argument1 argument2");
您可以按照我的说明将脚本安装在您应用的文件夹中、作为资源、/usr/bin、/bin 或任何您喜欢的位置。
您没有提及您是在/Applications(大多数越狱应用程序都是)还是在正常的/var/mobile/Applications/* 位置安装您的应用程序。
如果上述代码不起作用,请说明您希望在何处安装您的应用。此外,根据您的脚本是否需要root 权限,可能还需要做更多工作。有some complications if you want to run a shell script as root。
【讨论】:
system() 返回错误代码结果。错误代码是什么?您还记得使用chmod 使您的 sh 脚本可执行吗?登录手机并发送ls -al /Applications/MyApp.app/,让我们知道您的脚本上的权限是什么样的。谢谢。
/Applications中。它将在/var/mobile/Applications 下。哪一个?另外,您没有回答我关于脚本权限的问题。您的脚本在部署到您的设备后是否可执行?可以直接从命令行运行吗?
cd 到 /var/mobile/Applications/ 并执行 find . -name MyAppName.app。这将找到您的应用程序的安装位置。然后将整个MyAppName.app 文件夹复制到/Applications。例如,更改到正确的目录后,cp -Rp ./MyAppName.app /Applications/。然后您可能想要卸载原始版本,否则您将看到两个相同的图标。重启,或者重启跳板,或者使用su mobile -c uicache强制跳板看到新应用。完成。