CoreTelephony eSIM 功能在设备上不起作用
Posted
技术标签:
【中文标题】CoreTelephony eSIM 功能在设备上不起作用【英文标题】:CoreTelephony eSIM functions not working on device 【发布时间】:2020-02-26 01:28:18 【问题描述】:在现有的 ios 运营商应用程序中实施 eSIM 时遇到了一些问题。
设置
该应用程序已收到我的public-cellular-plan
权利
了解是让我访问 eSIM 功能的权利
CoreTelephony 的。
我已经在应用的目标中导入了CoreTelephony框架:General > Frameworks, Libraries, and Embedded Content
,标记为Do not Embed
,与CoreData等其他框架相同。
我已经在调用import CoreTelephony
的类中导入了库
我正在 iPhone XR 上通过 Xcode 运行具有正确配置文件的开发版本,它有一个活动的数据计划,所以我确定它支持它。
问题
假设有了这一切,我现在应该可以访问像 supportsCellularPlan
这样的 eSIM 功能,但不幸的是它似乎不起作用:
let provisioning = CTCellularPlanProvisioning()
let supportsESIM = provisioning.supportsCellularPlan()
print("\(supportsESIM)")
// This prints false but should be true as the XR supports eSIM
我也尝试通过 TestFlight 使用分发配置文件,但结果相同。
关于我做错了什么有什么想法吗?
【问题讨论】:
我也遇到了同样的问题,有更新吗? 你有没有解决这个问题?我也有同样的问题 【参考方案1】:所以...经过多次尝试,一个错误我能够解决这个小问题。
关于 supportsCellularPlan()
有 2 件事需要了解(当然还有 eSIM 权利)。
第一: 您需要启用 WiFi 才能使其工作,因为它似乎需要与 Apple 连接以进行一些检查。
第二:
它要求在您的info.plist
中正确输入CarrierDescriptors
,因为它是运营商绑定的。
一旦你有了它,它应该会按预期工作。
【讨论】:
如果我们相遇,我欠你一杯啤酒 我会记住的 ;) 什么是 CarrierDescriptors。你能分享一下我们需要放在 info.plist @Thomas 中的示例 CarrierDescriptors 吗 @nareshkolindala CarrierDescriptors 是您的运营商提供的唯一代码字典,用于在网络上识别它们。您应该与他们核实这些代码。 @Thomas 能否请您举个例子,它应该在 info.plist 中查看什么?【参考方案2】:CarrierDescriptors 示例:
<key>CarrierDescriptors</key>
<array>
<dict>
<key>MCC</key> //Mobile country code
<string>’mnc value’</string>
<key>MNC</key> // Mobile network code
<string>’mnc value’</string>
</dict>
</array>
【讨论】:
【参考方案3】:您可以在此处找到正确的 MCC/MNC 值:https://www.mcc-mnc.com 顺便说一句,它也适用于我,例如当只有随机值“xxx”时。 但它必须在 plist 中。
【讨论】:
以上是关于CoreTelephony eSIM 功能在设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
天源财富:OPPO携手泰雷兹,全球首发支持5G SA的eSIM功能
天源财富:OPPO携手泰雷兹,全球首发支持5G SA的eSIM功能
天源财富:OPPO携手泰雷兹,全球首发支持5G SA的eSIM功能