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

CoreTelephony eSIM functions not working on device

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

设置

问题
据推测,我现在应该可以使用 supportsCellularPlan 等 eSIM 功能,但不幸的是它似乎不起作用:

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 进行一些检查。

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

完成后,它应该会按预期工作。

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>

您可以在此处找到正确的 MCC/MNC 值:https://www.mcc-mnc.com 顺便说一句,出于某种原因,它也适用于我,例如,当只有随机值“xxx”时。 但它需要在 plist 中。