我在现有 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/