CoreTelephony eSIM 功能在设备上不起作用

Tho*_*mas 6 xcode ios provisioning-profile core-telephony swift

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

设置

  • 该应用程序已收到public-cellular-plan我理解的权利,该权利允许我访问 CoreTelephony 的 eSIM 功能。
  • 我在应用程序的目标中导入了 CoreTelephony 框架:General > Frameworks, Libraries, and Embedded Content标记为Do not Embed,与 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
Run Code Online (Sandbox Code Playgroud)

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

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

Tho*_*mas 5

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

有两件事需要了解supportsCellularPlan()(当然,除了拥有 eSIM 权利之外)。

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

第二:
它需要CarrierDescriptors在您的正确输入,info.plist因为它是承运人绑定的。

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