【问题标题】:CoreTelephony eSIM functions not working on deviceCoreTelephony eSIM 功能在设备上不起作用
【发布时间】: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 使用分发配置文件,但结果相同。

关于我做错了什么有什么想法吗?

【问题讨论】:

  • 我也遇到了同样的问题,有更新吗?
  • 你有没有解决这个问题?我也有同样的问题

标签: ios swift xcode provisioning-profile core-telephony


【解决方案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 中。

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2014-11-24
      • 2020-05-09
      相关资源
      最近更新 更多