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

标签 ios provisioning-profile

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

最佳答案

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

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

if (askServerIfUserIsBlocked()) {
  alert("You can no longer use this app.");
  exit(0);
}

这在测试版中很常见,例如,如果有更新的测试版可供测试,您可能会强制所有用户进行更新。无法从应用程序中唯一识别每个测试人员,Apple 不允许应用程序访问个人信息。但是,您始终可以要求用户在他们第一次启动应用程序时输入他们的姓名或电子邮件地址,并检查服务器是否允许他们使用它。

但是,如果您想要绝对安全,那是不可能的。任何拥有您的应用副本的用户都可以修改它。

如果配置证书被吊销,他们可以使用不同的开发者证书对其进行签名。如果有一些代码在启动过程中终止了应用程序,他们可以修改二进制文件以添加 || false 到 if 语句。

一旦该软件在由其他人控制的设备上运行,您将无法再控制他们对您的应用程序执行的操作。

编辑:

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

关于ios - 有没有办法限制临时或调试 iOS 构建仅在特定时间范围内运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151660/

相关文章:

ios - 在 XCode 8 中切换到新 iPhone 后的 Provisioning Profile 问题

ios - 配置门户,付费成员(member)?

ios - 无法验证代码签名 WatchKit

ios - 分组表格 View 显示不同部分的相同行值

ios - 使用 sdwebimage 在 tableview 中动态图像高度

ios - 使用团队供应配置文件的临时分发

ios - 设备是否必须包含在配置文件中,以便其所有者可以成为 Testflight beta 测试人员?

android - 框架 'shared.framework' 缺少此目标 : arm64. Xcode 12.0 kotlin 1.4.10 所需的一个或多个架构

ios - 作为 subview 添加到 Collection View 单元格时, ScrollView 中的内容不可见

ios - 如何只为右侧添加阴影?