我有一个代码
system("reboot")
reboot
命令可以在终端中使用,但即使我以 root 用户身份运行应用程序,该操作仍然被拒绝。有人发现了有效的解决方法吗?或者能否简要解释一下 SBSetting 的重启方式,这让我很好奇?
reboot
命令可以在终端中使用,但是即使我以 root 用户身份运行应用程序,该操作仍然被拒绝。有人找到了可行的解决方法吗?或者能否简要解释一下 SBSetting 的重启方式,这让我很好奇?
我有一个代码
system("reboot")
reboot
命令可以在终端中使用,但即使我以 root 用户身份运行应用程序,该操作仍然被拒绝。有人发现了有效的解决方法吗?或者能否简要解释一下 SBSetting 的重启方式,这让我很好奇?
reboot
命令可以在终端中使用,但是即使我以 root 用户身份运行应用程序,该操作仍然被拒绝。有人找到了可行的解决方法吗?或者能否简要解释一下 SBSetting 的重启方式,这让我很好奇?
我终于找到了一种在不越狱iOS设备的情况下以编程方式重新启动iOS设备的方法!!! 用于重新启动iOS设备的命令行工具称为libimobiledevice:
http://krypted.com/mac-os-x/use-libimobiledevice-to-view-ios-logs/
这真是太棒了。在安装过程中,我遇到了一个问题,就是尝试安装以下行:
brew install -v --devel --fresh automake autoconf libtool wget libimobiledevice
brew install -v --fresh automake autoconf libtool wget libimobiledevice
idevicediagnostics restart
idevicesyslog
appium
,那么它会同时安装idevicediagnostics
(尽管不一定是最新版本)。 - Ohad Schneidercom.mycompany.reboot
然后在您的应用程序中,您可以执行以下代码:
#import <notify.h>
notify_post("com.mycompany.reboot");
#!/bin/sh
reboot
notify_post()
以编程方式实现了重新启动(或任何其他需要root访问权限的操作)。./var/mobile/Library/SBSettings/Commands/com.mycompany.reboot
文件和目录结构。或者,你可以将com.mycompany.reboot脚本放置在你的应用程序根目录下(包括Info.plist、Default.png等文件),并使用DEBIAN/postinst脚本将/Applications/MyAppName.app/com.mycompany.reboot复制到/var/mobile/Library/SBSettings/Commands。两种方法都可以。 - Nate对于一些人来说,这个答案可能有点取巧,但我没有找到更好的解决办法,可以重启未越狱的iOS设备,所以我在这里回答:
为了从命令行重新启动设备,我需要做一些准备工作:
此时,您已经拥有一个可执行上述步骤的应用程序文件。我倾向于让iTunes保持打开状态,因为它始终会连接iOS设备并准备好被访问。当iTunes关闭并重新启动时,设备需要时间与iTunes完全连接,这往往会破坏Automator应用程序的流畅性。
此时,我可以进入终端,转到应用程序文件的位置,并运行以下命令[示例]:
open automator.app (将'automator.app'替换为您的文件名)
如果您和我一样,在jenkins中运行此命令,您需要运行以下命令:
由于某种原因,Automator应用程序需要休眠时间才能完成所有记录的操作。
另外,我相信您也可以编写一个AppleScript来完成所有这些操作,但我不喜欢AppleScript,所以选择了简单的方式!
你尝试过使用NSTask
吗: 从Cocoa应用程序执行终端命令
NSTask
是可用的,但它是私有的。你只需要在项目中自己包含头文件(生成的或从其他地方复制的)。我知道OP当时没有指定这是为越狱手机而言的,但我留下我的评论是为了其他可能从NSTask
中受益的人们。 - Nate如果应用程序在其沙盒中运行,则不可能实现此操作。在越狱手机上,您可能能够执行重新启动shell命令。