【问题标题】:iOS: Ad Hoc Distribution valid periodiOS:Ad Hoc Distribution 有效期
【发布时间】:2017-08-02 16:57:46
【问题描述】:

是否有任何方法可以在编译期间设置特定日期,使使用 ad-hoc 分发编译的应用程序将过期并且一段时间后无法运行?

【问题讨论】:

标签: ios ad-hoc-distribution


【解决方案1】:

配置文件和证书不能这样工作。如果您需要限制对应用的访问您必须通过代码来完成

请注意,越狱设备可能会绕过您的验证。 此外,如果您使用设备日期来限制访问,更改了设备时间和日期的用户将能够访问。

【讨论】:

    【解决方案2】:

    只是你不能对带有编译或运行时间的配置文件做任何事情。这只是 iOS 应用程序的手动操作。您需要根据您的要求进行安排,例如何时使用开发以及何时使用 ad-hoc 或分发。编译器不包含有关配置文件的任何知识。

    【讨论】:

      【解决方案3】:

      编译器不“知道”用于创建和签署二进制文件的配置文件。这一步在构建过程中走得太远了。

      您能做的最好的事情是撤销临时分发证书(不是配置文件)。

      【讨论】:

      • 如果我错了,请纠正我.. 你吊销证书,而不是个人资料?吊销证书会阻止新安装,但以前的安装仍然有效?
      【解决方案4】:

      我发现一个简单的解决方法很有用。 硬编码您的到期日期,并在每次加载应用时将其与当前日期进行比较:

      NSDate* todaysDate = [NSDate Date];
      NSDate* expirationDate = [NSDate dateFromString: expirationStr];
      
      if([todaysDate laterDate:expirationDate] == todaysDate){
          [self performSegueWithIdentifier:@"segueToExpirationVC" sender:self];
      }
      

      在我的 initialViewController 的 viewDidLoad 中,我检查当前日期是否超过了我为应用设置的“到期日期”。如果是,那么我对没有按钮的视图控制器执行 segue 以脱离 VC。在此 ViewController 上,您可以显示一条类似“此应用程序的测试版已过期”的消息。我经常还会对此 ViewController 进行调查,以询问我的 beta 测试人员使用该应用程序的体验。

      这实际上使应用程序无法使用,因为在您设置的到期日期它将转换为无法离开的视图控制器。

      注意:如果满足相同的日期比较条件,您可以通过以编程方式更改初始视图控制器来执行类似的操作。

      【讨论】:

      • 这没有回答 OP 问题,即如何在代码中读取临时配置文件的到期日期。
      • @ajmccall 正如我上面所说,这是一种解决方法,可提供他正在寻找的相同功能。 “是否有任何方法可以在编译期间设置特定日期,使用临时分发编译的应用程序将过期并且无法在一段时间后运行?”这种方法通过转换到一旦满足特定日期要求就不能离开的 vc 有效地将应用设置为过期。
      • @ajmccall 此外,OP 没有询问“如何读取临时配置文件的到期日期”。我相信它确实回答了他的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多