【问题标题】:Running shell script using Xcode with arguments on ios在 ios 上使用带有参数的 Xcode 运行 shell 脚本
【发布时间】:2013-01-20 21:17:02
【问题描述】:

我有一个 bash 脚本,我想从应用程序的参数开始。 目前我可以生成命令,但我该如何执行呢? 此应用程序仅适用于越狱手机。 有什么解决方案吗?我搜索了很多,但没有找到任何东西。

【问题讨论】:

    标签: ios objective-c shell jailbreak


    【解决方案1】:

    如果这是一个越狱应用程序,您可以通过将命令传递给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。

    【讨论】:

    • 所以,该应用程序作为普通应用程序安装,并且在 /Application/MyApp.app/ 脚本不需要 root 我尝试使用 system() 但它没有工作
    • 出了什么问题? system() 返回错误代码结果。错误代码是什么?您还记得使用chmod 使您的 sh 脚本可执行吗?登录手机并发送ls -al /Applications/MyApp.app/,让我们知道您的脚本上的权限是什么样的。谢谢。
    • 脚本是从cydia下载的,作为一个库,可以到处执行,系统返回32512
    • 您的第一条评论不太清楚。如果您将应用程序安装为普通应用程序,那么它将不在/Applications中。它将在/var/mobile/Applications 下。哪一个?另外,您没有回答我关于脚本权限的问题。您的脚本在部署到您的设备后是否可执行?可以直接从命令行运行吗?
    • 有很多方法可以做到这一点。如果您有终端/shell 访问权限,则可以通过 ssh 进入您的设备。 cd 到 /var/mobile/Applications/ 并执行 find . -name MyAppName.app。这将找到您的应用程序的安装位置。然后将整个MyAppName.app 文件夹复制到/Applications。例如,更改到正确的目录后,cp -Rp ./MyAppName.app /Applications/。然后您可能想要卸载原始版本,否则您将看到两个相同的图标。重启,或者重启跳板,或者使用su mobile -c uicache强制跳板看到新应用。完成。
    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2015-10-15
    • 2011-10-09
    • 2016-12-18
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多