使用在IOS上启动的重新启动应用程序

Joe*_*man 5 launchd jailbreak ipad ios

我在博物馆展览中使用一些iPad,运行由其他人开发的应用程序。即使我们已经覆盖了“主页”按钮,我仍然发现该应用偶尔会崩溃,从而使用户停留在“主页”屏幕上。他们可以从这里访问其他未经授权的应用程序。

博物馆不反对将iPad越狱,如果这样做能够为我们提供所需的解决方案,那么我一直在研究使用带有KeepAlive标签的launchd并将.plist文件放入/ Library / LaunchAgents目录中的想法。防止应用崩溃时防止其关闭或重新生成

到目前为止,我已经成功地使其能够与iPad随附的默认应用程序以及Cydia安装的应用程序一起使用,但是我无法使它重新启动所需的应用程序。我已经从/ User / Applications目录以及/ Applications进行了尝试,有人建议这样做可能会有所作为,但没有任何乐趣。有人可以提出可能的解决方案,还是我在浪费时间?我从下面的plist文件中插入了XML。

   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.MVFieldguide.launchd</string>
<key>ProgramArguments</key>
    <array>
    <string>/Applications/Field Guide 2010.app/Field Guide 2010</string>
    </array>

<key>RunAtLoad</key>
    <true/>

<key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <true/>
    </dict>
Run Code Online (Sandbox Code Playgroud)

edc*_*591 3

这不起作用,因为 App Store 应用程序不保存在“应用程序”文件夹中。我可以想到两个选择。

  1. 在 Cydia 中安装 AppLinks。这将创建每个 App Store 应用程序的符号链接并将它们放入 /var/mobile/AppLinks 中。然后在你的 plist 文件中将应用程序的路径设置为

    /var/mobile/AppLinks/Field Guide 2010/Field Guide 2010

  2. 您可以从 Xcode 获取 ipa 并提取 .app 捆绑包,而不是按照传统方式将应用程序安装到 iPad 上。然后手动将其安装到 /Applications/ 中,您将能够按照您的方式使用 launchd plist。

我推荐第一个选项,因为它允许您更新应用程序,而无需手动将 .app 捆绑包放入“应用程序”文件夹中。使用第一个选项根本不会改变您更新应用程序的工作流程。

另外,请注意,如果您这样做,则必须在更新应用程序之前删除 plist 以退出它,因为我认为您无法在应用程序运行时更新它。