有没有办法将临时或调试iOS构建限制为仅在特定时间范围内运行?

有没有办法将临时或调试iOS构建限制为仅在特定时间范围内运行?,ios,provisioning-profile,Ios,Provisioning Profile,对于iOS应用程序,是否有方法限制临时或调试构建在特定时间范围内运行,或在我们需要时撤销其使用?是否有可能使特定设备在需要时无法运行应用程序?资源调配配置文件在一年后过期。您可以撤销配置文件背后的私钥,但这将为所有用户禁用由该密钥签名的所有应用。您不能为特定用户执行此操作 在应用程序的源代码中,您可以执行以下操作: if (askServerIfUserIsBlocked()) { alert("You can no longer use this app."); exit(0); }

对于iOS应用程序,是否有方法限制临时或调试构建在特定时间范围内运行,或在我们需要时撤销其使用?是否有可能使特定设备在需要时无法运行应用程序?

资源调配配置文件在一年后过期。您可以撤销配置文件背后的私钥,但这将为所有用户禁用由该密钥签名的所有应用。您不能为特定用户执行此操作

在应用程序的源代码中,您可以执行以下操作:

if (askServerIfUserIsBlocked()) {
  alert("You can no longer use this app.");
  exit(0);
}
这在beta版中相当常见,例如,如果有更新的beta版可供测试,您可能会强制所有用户更新。无法从应用程序中唯一识别每个测试人员,苹果不允许应用程序访问个人信息。但是,您可以在用户首次启动应用程序时要求用户输入其姓名或电子邮件地址,并与服务器核实是否允许用户使用该应用程序

然而,如果你想要绝对的安全,不-这是不可能的。任何拥有你的应用副本的用户都可以修改它

如果设置证书被吊销,他们可以使用其他开发人员证书对其进行签名。如果有一些代码在启动过程中途终止了应用程序,他们可以修改二进制代码,将
| | false
添加到If语句中

一旦软件在其他人控制的设备上运行,你就无法再控制他们对你的应用程序的操作

编辑:


此外,苹果在上周的WWDC上对临时/调试部署做了许多改进。我还没有查看课程视频,但你应该。可能有新的选项可用。

谢谢-非常有用。一旦你撤销了私钥,它将立即使应用程序无法运行?下次设备要求苹果提供撤销密钥列表时,它将停止工作。我不确定这要花多长时间,也许几天。但是它相当快。