我正在为客户开发企业iPhone应用程序,手头的问题是客户信息将显示在手机上。我的客户担心可以使用 iPhone 屏幕捕获功能(主页 + 电源按钮)捕获信息,然后通过电子邮件发送或从手机同步。有什么办法可以禁用屏幕截图功能吗?这可以通过编程方式完成还是可以通过配置文件来完成?
I'm working on an enterprise iPhone application for a client, the issue at hand is customer information will show up on the phone. My client is worried that the information could be caught using the iphone screen capture feature (home + power button), then emailed or synced from the phone. Is there any way to disable the screen capture feature? Can this be done programatically or is is possible through a configuration profile?
发布评论
评论(5)
如果您的客户可以保留手机的所有权,他们可以使用iPhone 配置实用程序。请确保您不会将这些手机交给该组织之外的任何人,否则您将违反与 Apple 签订的企业法律协议。
if your customer could retain the ownership of a handset, they can restrict Screen Capture feature using iPhone Configuration Utility. Make sure you don't give these phones to any one outside of this organization, otherwise you are in violation of your Enterprise legal agreement with Apple.
由于这是针对企业应用程序的,也许您可以在所有内容之上放置一个透明的覆盖视图,当它检测到该层被要求渲染屏幕截图时,它会变得不透明(也许通过查找堆栈跟踪?)
您可以尝试在每个可能的视图和图层绘制方法中设置调试点,并查看屏幕截图是否触发任何内容。
Since this is for an enterprise app, perhaps you could put a transparent overlay view atop everything, that in a drawRect went opaque when it detected the layer was being asked to render for a screen shot (perhaps by looking back up the stack trace?)
You might try setting debug points in every possible view and layer drawing methods, and see if anything is triggered by a screenshot.
可以为通过 iPhone OS 配置实用程序管理的 iPad/iPhone 启用/禁用屏幕捕获。请参阅第 33 页,网址为 http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf 其中显示:
** 允许屏幕捕获:关闭此选项时,用户无法保存屏幕截图
显示屏的屏幕截图。*
换句话说,在“客户”拥有 iPad(或要求 IT 配置员工拥有的设备)的企业部署中,可以在设备级别抑制屏幕捕获。
还可以检测是否发生屏幕捕获并记录下来(以便经理可以进行友好访问)。
不可能在程序控制下抑制屏幕捕获。苹果更喜欢严格控制,不情愿地向企业让步。它对开发者来说并没有带来太多收益。 (你喜欢在苹果种植园当佃农吗?)
说真的,控制屏幕捕获是有充分理由的。在教育领域,我们希望使用 iPad 作为安全的测试设备。在有人监考的测试环境中,监考人员可以确保学生没有相机或便条纸来带走试题。因此,测试项目安全性的主要剩余风险是屏幕截图。如果你无法抑制它,学生可以快速捕捉他们遇到的每个测试问题并将其通过电子邮件发送给他们的好友(或将其发布到网上或将其出售给考试准备公司)。
对于在不受控制的条件下使用的随机消费类 iPad,开发人员不具备此功能。这是休息时间:-)。
Screen capture can be enabled/disabled for iPads/iPhones that are managed via the iPhone OS Configuration Utility. See page 33 at http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf where it says:
** Allow screen capture: When this option is turned off, users are unable to save a
screenshot of the display.*
In other words, in enterprise deployments where the "customer" owns the iPads (or requires employee-owned devices to be configured by IT) screen capture can be suppressed at a device level.
It's also possible to detect if screen capture has happened and to record this (so perhaps a manager can pay a friendly visit).
It is not possible to suppress screen capture under program control. Apple prefers to exercise tight control and grudgingly yields a bit to enterprises. It doesn't yield much to developers. (How do you like being a sharecropper on Apple's plantations?)
Seriously, there are good reasons to control screen capture. In the education space, we'd like to use iPads as secure testing devices. In a proctored test environment, the proctor can make sure a student doesn't have a camera or notepapers to carry away test questions. Therefore the major remaining risk to test item security is the screen capture. If you couldn't suppress it, students could quickly snap every test question they encounter and email them to their buddies (or post them online or sell them to a test-prep company).
For random consumer iPads used under uncontrolled conditions, developers don't have this capability. Them's the breaks :-).
不,没有。用户始终能够执行此功能。
No, there isn't. The user is always able to perform this function.
是的,您至少可以通过两种方式做到这一点。巴尔的摩的互联网测试系统 (ITS) 商店中有一个 iPad 测试应用程序,有趣的是它是“PEARSON NNAT2 -Stanford 10 - OLSATS”,这是一款 Pearson 应用程序,可用于参加这三个测试中的任何一个。请参阅 https://itunes.apple.com/ us/app/pearson-nnat2-stanford10-olsat8/id546817211?mt=8 -- 它是免费的,您可以下载 它。
如果您只是要求用户在启动应用程序后和继续操作之前将设备置于引导访问模式,则可以使用 UIAccessibilityIsGuidedAccessEnabled() 阻止用户使用“打印屏幕”或切换到任何其他任务。 Examsoft 是使用这种方法的供应商。
这些功能通常是测试发布者和评估交付供应商所关心的;我有一篇博客文章和 ITS 方法的屏幕截图,以及模拟 Examsoft 方法的代码,此处:http://mindstormtools.com/2013/02/23/ipads-for-assessment-test-delivery-profile/ 和 http://mindstormtools.com/2013/02/20/ipads-for-assessment-guided-access/
Yes, you can do this in at least two ways. Internet Testing Systems (ITS) of Baltimore has an iPad testing app in the store, interestingly it is "PEARSON NNAT2 -Stanford 10 - OLSATS", a Pearson app that can be used to take any of these three tests. see https://itunes.apple.com/us/app/pearson-nnat2-stanford10-olsat8/id546817211?mt=8 -- it is free and you can download it.
If you simply require your user to put the device into Guided Access mode after starting the app and before proceeding, using UIAccessibilityIsGuidedAccessEnabled(), you can then prevent the user from using "print screen" -- OR from switching to any other task. Examsoft is a vendor that uses this approach.
These features are generally of concern to test publishers and assessment delivery vendors; I have a blog post and screen shots the ITS approach, and code to emulate the Examsoft approach, here: http://mindstormtools.com/2013/02/23/ipads-for-assessment-test-delivery-profile/ and http://mindstormtools.com/2013/02/20/ipads-for-assessment-guided-access/