Как использовать API «addPlan» для включения профиля e-sim на устройстве iOS - PullRequest
0 голосов
/ 04 декабря 2018

После поиска везде я обнаружил, что есть способ добавить eSIM в iPhone, используя следующий API

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 Framework

Будет полезна любая помощь

После проверки других приложений я обнаружил, что GigSky делает то же самое, кто-нибудь знает, как они работают?

ОБНОВЛЕНИЕ:

На данный момент я обнаружил проверку URL запроса прав ниже

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

Я запросил, но яблоко не отвечает.

1 Ответ

0 голосов
/ 17 декабря 2018

Этот API доступен только для операторов.Вам нужно специальное разрешение от Apple, чтобы иметь возможность вызывать его в своем приложении, в противном случае вы получите упомянутую ошибку.

Просто чтобы уточнить кое-что о eSIM;Есть несколько способов добавить eSIM на устройство:

  • . Самый простой способ, который в настоящее время внедряют большинство операторов, - это сканирование QR-кода из настроек устройства, что не требует каких-либо разработок на носителе.приложение.
  • Другой способ - установить профиль eSIM с помощью приложения-носителя, что можно сделать только со специальным разрешением, предоставленным Apple.Это право позволяет вам вызывать CTCellularPlanProvisioning.addPlan(with: ) API, который вы указали в своем вопросе
...