SDK iOS
Vue d’ensemble
Le SDK iOS natif de AR Clip VPS localise les utilisateurs dans vos cartes VPS grâce au suivi ARKit. Le XCFramework est compatible avec UIKit, RealityKit et SwiftUI. Suivez le déroulé Immersal : prérequis, installation, autorisations puis initialisation du service.
Prérequis
- iOS 12.0 ou version ultérieure
- Xcode 12+ avec Swift 5
- Appareil compatible ARKit (le simulateur n’est pas pris en charge)
Options d’installation
Via Swift Package Manager
- Dans Xcode, ouvrez File → Add Packages….
- Entrez
https://github.com/WebAR-Studio/was-vps-ios.git. - Sélectionnez la branche ou le tag souhaité puis ajoutez le package à votre cible.
Intégration manuelle
- Clonez le dépôt :
git clone https://github.com/WebAR-Studio/was-vps-ios.git - Glissez
WASVPS.xcframeworkdans votre projet. - Dans General → Frameworks, Libraries, and Embedded Content, vérifiez que le framework est bien intégré.
Configurer les autorisations
Ajoutez les textes d’usage caméra et localisation dans Info.plist pour déclencher les invites système.
<key>NSCameraUsageDescription</key>
<string>L’app nécessite la caméra pour afficher du contenu en réalité augmentée.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>L’app utilise votre position pour placer précisément le contenu AR.</string>
<key>NSLocationTemporaryUsageDescriptionDictionary</key>
<dict>
<key>VPSLocalization</key>
<string>Active une localisation précise pour des expériences AR fiables.</string>
</dict>
Initialiser le VPS
VPSBuilder.initializeVPS crée une instance de VPSService. Passez l’ARSession, votre API key et les Location ID.
Besoin d’une API key ? Vous pouvez l’obtenir sur arclip.design ou en écrivant à support@arclip.design / support@arclip.design.
import ARKit
import WASVPS
final class VPSDemoController: UIViewController, ARSCNViewDelegate {
@IBOutlet private weak var sceneView: ARSCNView!
private var configuration: ARWorldTrackingConfiguration?
private var vps: VPSService?
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
sceneView.scene = SCNScene()
configuration = VPSBuilder.getDefaultConfiguration()
VPSBuilder.initializeVPS(
arSession: sceneView.session,
apiKey: "your-api-key",
locationIds: ["your-location-id"],
url: "https://api.arclip.app/vps/api/v3",
gpsUsage: false,
delegate: self
) { service in
self.vps = service
self.vps?.start()
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let configuration { sceneView.session.run(configuration) }
}
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
vps?.frameUpdated()
}
}
extension VPSDemoController: VPSServiceDelegate {
func positionVPS(pos: ResponseVPSPhoto) {
print("Localized pose:", pos)
}
func error(err: NSError) {
print("VPS error:", err)
}
func sending(requestData: UploadVPSPhoto?) {
print("Sending localization request…")
}
}
Arrêtez le service dans sessionWasInterrupted et relancez-le dans sessionInterruptionEnded.
RealityKit
En RealityKit, transférez chaque frame via ARSessionDelegate :
func session(_ session: ARSession, didUpdate frame: ARFrame) {
vps?.frameUpdated()
}
Les méthodes de cycle de vie (start, stop, clearCustomLocPos) restent identiques à SceneKit.
SwiftUI
Encapsulez ARSCNView ou ARView dans un UIViewRepresentable/UIViewControllerRepresentable. Stockez VPSService dans un ViewModel et déclenchez start()/stop() depuis les contrôles SwiftUI.
Contrôles avancés
setCustomLocPosForFirstRequestdéfinit une pose connue avant la première requête.- Le paramètre
urldeinitializeVPSpermet de cibler un autre endpoint (par défauthttps://api.arclip.app/vps/api/v3). - Activez
gpsUsagepour inclure les coordonnées de l’appareil dans les requêtes.
Dépannage
VPSBuilder.getDefaultConfiguration()renvoienil? L’appareil ne supporte pas ARKit.- Pas de callbacks ? Vérifiez que
frameUpdated()est appelé à chaque frame et que l’API key et les Location ID sont valides. - Jetez un œil au dossier
/examplespour des implémentations complètes UIKit, RealityKit et SwiftUI.