锁定 iPhone/iPod/iPad,使其只能运行一个应用程序。

58
我们希望能够“锁定”iPhone/iPod/iPad,使用户只能运行我们内部开发的一个应用程序。我猜想我们需要越狱,然后替换(?)默认的Springboard应用程序。
我们可以这样做吗?如果可以,该怎么做?
编辑:iOS 7现在包括一个“应用程序锁定”负载作为设备配置文件的一部分。来自苹果文档的说明:
"通过安装应用程序锁定负载,设备会被锁定到一个单一的应用程序,直到该负载被删除。主页按钮被禁用,设备在唤醒或重新启动后会自动返回到指定的应用程序。"
在此处了解更多信息:
https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf

1
为什么你想要这样做呢?给用户提供一个严重受限的设备很可能会让他们非常不满意。而且,一旦他们想到了一个好理由(他们一定会想到)在设备上安装其他应用(例如邮件、网页浏览等),你的努力就白费了。我建议从长远考虑,最好为你的用户预装应用程序,而不是让设备受限。 - drekka
9
“用户”指的是我们公司的技术人员。我们为他们提供设备以帮助他们完成非常具体的任务,并开发了软件来协助他们。这些不是个人设备,而是公司设备,每天结束时会放置在车间充电。我们不希望技术人员浏览网页、玩游戏、听音乐、发邮件等等。听起来有点像纳粹,我知道……但事实就是这样。 - wpearse
这个答案可能会对你有所帮助(使用内置的限制功能)。 - user467105
1
这是iOS 6的一个功能,可以在不进行hacky尝试的情况下使用。它被称为“引导访问”,请参见我的下面的答案。 - brainray
非常好。一直在寻找这样的东西,适用于我在iOS 5上的3GS手机。该手机仅由一个不懂技术的年长人员用于Skype通话。将设备限制为仅使用Skype可以为用户节省很多麻烦。 - foureight84
8个回答

98
可以将iPad或iPhone设置为“商店演示”模式,这样就可以禁用主页按键和滑动到主页手势。如果您已经在Apple Store中看到过运行智能标识应用程序的iPad,则会知道我在说什么。
实际上,让它起作用非常简单,你只需要从Web服务器上安装一个正确格式的移动配置plist文件即可通过空中方式完成。
要从Web传递您的配置,您只需将iPhone指向包含配置文件的URL。只需在safari中打开.mobileconfig文件的链接即可。如果您没有网络空间,只需使用Dropbox公共文件夹URL或启动Mac Web服务器即可。
此配置文件可能也可以使用IPCU加载,但我没有尝试过。由于使用了IPCU不知道的键,因此该配置文件无法在iPhone Configuration Utility中加载。您可以将其与其他企业配置文件组合在一起使用。
编辑:@cocoanetics指出不需要IPCU即可删除配置文件。但请注意,要使设备恢复正常,您需要执行以下操作:
1.重新启动 2.首先打开设置应用程序-不要打开其他任何内容,否则您将需要再次重新启动 3.设置->通用->配置文件->[您的配置文件]删除它。 4.重新启动
然后您的设备应该恢复正常。
我已经包含了一个示例plist,将禁用主页按钮并将您的设备锁定在应用程序中。
请注意:
一旦安装了此配置文件,设备重新启动时启动的第一个应用程序将是唯一可以运行的应用程序,直到再次重新启动设备为止。这完全禁用了返回主屏幕的能力(除非您的应用程序崩溃),包括辅助触摸可达性。
请注意,在安装配置文件后,您必须重新启动设备(关闭电源,开启电源)才能使其生效。要删除配置文件,请将设备插入IPCU并删除它,然后重新启动设备。一切都会恢复正常。
<?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>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadDescription</key>
            <string>Disables home</string>
            <key>PayloadDisplayName</key>
            <string>Home Button Lock</string>
            <key>PayloadIdentifier</key>
            <string>com.hbkill.kiosk</string>
            <key>PayloadOrganization</key>
            <string>My Org</string>
            <key>PayloadType</key>
            <string>com.apple.defaults.managed</string>
            <key>PayloadUUID</key>
            <string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadContent</key>
            <array>
                <dict>
                    <key>DefaultsDomainName</key>
                    <string>com.apple.springboard</string>
                    <key>DefaultsData</key>
                    <dict>
                    <key>SBStoreDemoAppLock</key>
                    <true/>
                    </dict>
                </dict>
            </array>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Disables Home Button</string>
    <key>PayloadDisplayName</key>
    <string>Home Button Lock</string>
    <key>PayloadIdentifier</key>
    <string>com.hbkill</string>
    <key>PayloadOrganization</key>
    <string>My Org</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

你也许已经不需要这个了,但我想在这里发表我的答案,因为我在试图弄清楚如何做同样的事情时遇到了这个问题。


8
重要提示,您的文件名必须命名为 something.mobileconfig。 我曾经花了一个小时的时间才意识到这一点,非常感谢Rick的发布,这正是我所需要的。 - The Dog
2
您也可以通过设置应用程序删除配置文件,无需使用IPCU。 - Cocoanetics
1
@Bhushan,最新版本的iOS可能已经解决了这个问题。它还取消了主屏幕快捷方式方法。对不起,我以前从未见过这个错误。 - Rick
1
显然,我确实阅读评论,甚至比回答更多! :P - cregox
1
@Ghopper21 是的。事实上,我已经在“生产”中依赖它,通过从崩溃的应用程序跳转到另一个启动器应用程序,然后导致初始应用程序重新启动。 - Rick
显示剩余17条评论

23

iOS 6的一个功能是“有指导的访问(guided access)”,无需使用黑科技即可使用。这个小教程在这里

编辑:如果设备在受限制的用户手中电池用尽,用户可以重新启动设备,并且它将不再使用有指导的访问。然而,如果您选择为设备设置密码,这不应该成为问题。


4

3

2

我同意几小时前的评论:设置 > 通用 > 限制应该可以解决问题。如果用户无法安装任何东西,也无法访问Safari或Mail,则没有理由退出您的应用程序。


0

我找到了一种解决这个主屏锁定状态的方法。

我通过Cydia安装了“后台运行”应用程序,如果您按下主屏幕按钮一秒钟或更长时间,它可以使您的应用程序在后台运行。

现在,当我长按主屏幕按钮时,我就回到了主屏幕。

就是这样。

请注意长按操作。


0

Um- 不确定这是一个答案还是一个评论,但是现在作为问题的一部分的解决方案有一个弱点 - 我们的支持人员使用了这个解决方案,并发现如果你“轻触电源按钮以软关机,然后在开机时按住主页按钮并滑动解锁。有时iPad会启动到主页,否则XXAPPLCATIONXX将挂起,然后跳出到主页。不管怎样,X都能够在没有通行证的情况下访问主页。


这是使用了引导访问模式,还是配置文件? - wpearse
正确。正如Rick在他的回答中所指出的,所有的配置文件只是禁用主页按钮。此外,iPad在首次启动时始终会启动到主屏幕上 ;) (无论iPad是否安装了配置文件)。 - wpearse

0

阻止设备访问互联网(Wi-Fi上的MAC过滤器可以解决问题)。任何其他与互联网无关的问题(音乐、游戏等)应该已经可以通过当前的IT基础设施解决(除非你的开发人员在工作时玩游戏和听MP3)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接