如何使用API “addPlan”在iOS设备中启用e-sim配置文件

问题描述 投票:8回答:1

在搜索到处后,我发现有一种方法可以使用以下API在iPhone中添加eSIM

func addPlan(with: CTCellularPlanProvisioningRequest, completionHandler: (CTCellularPlanProvisioningAddPlanResult) -> Void)

我不知道为什么但是完成处理程序没有返回CTCellularPlanProvisioningAddPlanResult的结果只是打印以下错误。

Domain=NSCocoaErrorDomain Code=4099 "The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo=
{NSDebugDescription=The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated.

我想知道这个API是如何工作的,你可以在下面看到我的代码

let ctpr = CTCellularPlanProvisioningRequest()
ctpr.address = "SMDP+"
ctpr.confirmationCode = ""
ctpr.eid = ""
ctpr.iccid = ""

let ctcp =  CTCellularPlanProvisioning()
ctcp.addPlan(with: ctpr) { (result) in
    print(result)
}

我正在使用CoreTelephony框架

任何帮助,将不胜感激

在检查其他应用程序后,我发现GigSky正在做同样的事情,有谁知道他们在做什么?

更新:

截至目前,我在下面找到了权利请求URL检查

https://developer.apple.com//contact/request/esim-access-entitlement

我要求,但苹果没有回应。

ios swift entitlements cellular-network core-telephony
1个回答
2
投票

此API仅适用于运营商。您需要Apple提供的特殊权利才能在您的应用程序中调用它,否则您将收到您提到的错误。

只是为了澄清一些关于eSIM的内容;有几种方法可以将eSIM添加到设备:

  • 现在大多数运营商正在实施的最简单的方法是从设备设置扫描QR码,这不需要在运营商的应用程序上进行任何开发工作。
  • 另一种方法是使用运营商应用程序安装eSIM配置文件,这只能通过Apple提供的特殊权利来完成。权利允许您调用您在问题中提到的CTCellularPlanProvisioning.addPlan(with: ) API
© www.soinside.com 2019 - 2024. All rights reserved.