web-dev-qa-db-fra.com

(Intégration eSIM iOS) Comment utiliser l'API restreinte "addPlan" pour activer le profil e-sim dans un appareil iOS

Après avoir cherché partout, j'ai trouvé qu'il y avait un moyen d'ajouter eSIM dans iPhone en utilisant l'API suivante

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

Je ne sais pas pourquoi mais le gestionnaire d'achèvement ne retourne pas le résultat de CTCellularPlanProvisioningAddPlanResult imprimant simplement l'erreur suivante.

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.

Je veux savoir comment fonctionne cette API, vous pouvez voir mon code ci-dessous

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

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

J'utilise le framework CoreTelephony

Toute aide serait appréciée

Après avoir vérifié d'autres applications, j'ai constaté que GigSky faisait de même, quelqu'un sait comment ils font?

MISE À JOUR:

À partir de maintenant, j'ai trouvé la vérification de l'URL de la demande d'autorisation ci-dessous

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

J'ai demandé mais Apple ne répond pas.

9
Nick

Cette API n'est disponible que pour les opérateurs. Vous avez besoin d'un droit spécial de Apple pour pouvoir l'appeler dans votre application, sinon vous obtiendrez l'erreur que vous avez mentionnée.

Juste pour clarifier quelque chose sur les eSIM; il existe plusieurs façons d'ajouter eSIM à l'appareil:

  • la manière la plus simple que la plupart des opérateurs implémentent maintenant consiste à scanner un code QR à partir des paramètres de l'appareil, ce qui ne nécessite aucun travail de développement sur l'application de l'opérateur.
  • L'autre façon consiste à installer le profil eSIM à l'aide de l'application de l'opérateur, ce qui ne peut être fait qu'avec un droit spécial fourni par Apple. Le droit vous permet d'appeler CTCellularPlanProvisioning.addPlan(with: ) API que vous avez mentionnée dans votre question
2
Krimboss