我在将eSIM实现到现有的iOS运营商应用程序时遇到了一些麻烦。

设置

  • 该应用程序已收到public-cellular-plan权利,我
    了解的是使我可以使用eSIM功能的权利
    的CoreTelephony。
  • 我已经在应用程序的目标中导入了CoreTelephony框架:General > Frameworks, Libraries, and Embedded Content,它被标记为Do not Embed,与诸如CoreData之类的其他框架相同。
  • 我已经在调用import CoreTelephony
  • 的类中导入了库
  • 我正在iPhone XR上通过Xcode运行具有正确配置文件的开发版本,该版本的数据计划处于 Activity 状态,因此我确定它支持它。

  • 问题
    假设所有这些,我现在应该可以访问eSIM函数,例如supportsCellularPlan,但不幸的是,它似乎不起作用:
    let provisioning = CTCellularPlanProvisioning()
    let supportsESIM = provisioning.supportsCellularPlan()
    
    print("\(supportsESIM)")
    // This prints false but should be true as the XR supports eSIM
    

    我也尝试通过TestFlight使用分发配置文件,但结果相同。

    关于我在做什么错的任何想法吗?

    最佳答案

    所以...经过大量的尝试后,一个错误我能够解决这个小问题。

    关于supportsCellularPlan()有2件事要知道(当然还有eSIM权利)。

    第一的:
    您需要启用WiFi才能使其正常工作,因为它似乎需要与Apple连接才能进行某些检查。

    第二:
    由于它是运营商绑定(bind)的,因此需要在您的CarrierDescriptors中正确输入info.plist

    一旦有了它,它应该会按预期工作。

    关于ios - CoreTelephony eSIM功能在设备上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58630606/

    10-11 19:46