ios - CoreTelephony eSIM 功能无法在设备上运行

标签 ios swift xcode provisioning-profile core-telephony

我在现有 iOS 运营商应用程序中实现 eSIM 时遇到了一些问题。

设置

  • 该应用已收到我的 public-cellular-plan 权利 了解是我有权访问 eSIM 功能 CoreTelephony 的。
  • 我已在应用的目标中导入了 CoreTelephony 框架:常规 > 框架、库和嵌入式内容,该框架被标记为请勿嵌入,与其他框架相同像 CoreData 之类的。
  • 我已在进行调用的类中导入了库import CoreTelephony
  • 我正在 iPhone XR 上通过 Xcode 使用正确的配置文件运行开发版本,该设备具有事件的数据计划,因此我确信它支持它。

问题
据说有了这一切,我现在应该可以访问 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() 有两件事需要了解(当然,除了 eSIM 权利之外)。

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

第二:
它要求在 info.plist 中正确输入 CarrierDescriptors,因为它与运营商绑定(bind)。

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

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

相关文章:

iphone - 警告 : ld: warning: unexpected srelocation type 9 while building on device

ios - 如何在前一个完整的情况下,依次调用多个函数

ios - Xcode 6.0 Swift,出现错误 : can't evoke'! =' with an argument list

arrays - 如何将第二个 viewcontroller 文本字段值传递给第一个 viewcontroller 数组并在 swift4 中点击按钮时关闭

ios - 使用 TableView 或 CollectionView 时的 Swift、Slim Controller 代码

ios - 如何在 iPhoneSimulator 中识别 iOS 8 和 iOS 9 模拟器?

iOS NSXMLParser - 一致地从 XML 标签派生图像源 URL

Swift 的映射函数

ios - 如何将 NSExceptionDomains 添加到 xcode 版本 7.0.1 的 plist?

iOS应用程序: How to localize the app name (for Australia English) displayed on the device?