Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Surveiller les applications iOS

Dernière mise à jour :Aug 10, 2026

Utilisez les API du SDK iOS ARMS Real User Monitoring (RUM) pour configurer la surveillance, signaler des données personnalisées et suivre les ressources réseau dans vos applications iOS.

Configuration au démarrage

Définir l'endpoint

Définit l'endpoint de votre application. Appelez cette méthode avant start.

@objc
public static func setEndpoint(_ endpoint: String)
Paramètre Description Contraintes Résultat en cas d'échec
endpoint Adresse de l'endpoint La longueur de la chaîne doit être supérieure à 0 et inférieure à 256 L'appel API échoue, le SDK s'arrête

Définir le workspace

Définit le workspace de votre application. Appelez cette méthode avant start.

@objc
public static func setWorkspace(_ workspace: String)
Paramètre Description Contraintes Résultat en cas d'échec
workspace Adresse du workspace La longueur de la chaîne doit être supérieure à 0 et inférieure à 256 L'appel API échoue, l'initialisation du SDK échoue

Démarrer le SDK

Initialise le SDK avec l'ID de service spécifié.

@objc(start:)
public static func start(_ serviceId: String)
Paramètre Description Contraintes Résultat en cas d'échec
serviceId ServiceId ID d'application unique généré par la plateforme Real User Monitoring L'appel API échoue, le SDK s'arrête

Définir un ID d'appareil personnalisé

Définit un ID d'appareil personnalisé qui remplace celui obtenu automatiquement.

@objc
public static func setDeviceID(_ deviceID: String)
Paramètre Description Contraintes Résultat en cas d'échec
deviceID ID d'appareil personnalisé La longueur de la chaîne doit être supérieure à 0 et inférieure à 256, sans caractères spéciaux (seules les lettres, chiffres, deux-points, espaces, tirets bas _, tirets -, points et @ sont pris en charge) L'appel API échoue, ce paramètre est invalide

Définir une version d'application personnalisée

Définit une version d'application personnalisée que le SDK signale au lieu de celle détectée automatiquement.

@objc
public static func setAppVersion(_ appVersion: String)
Paramètre Description Contraintes Résultat en cas d'échec
appVersion Version d'application personnalisée La longueur de la chaîne doit être supérieure à 0 et inférieure à 64 L'appel API échoue, ce paramètre est invalide

Définir le canal de l'application

Définit un ID de canal pour identifier le canal de distribution de votre application.

@objc
public static func setChannelID(_ channelID: String)
Paramètre Description Contraintes Résultat en cas d'échec
channelID ID de canal personnalisé La longueur de la chaîne doit être supérieure à 0 et inférieure à 256 L'appel API échoue, ce paramètre est invalide

Exclure des classes spécifiques

Ajoute un nom de classe à l'ensemble d'exclusion du swizzle afin que les classes correspondantes ignorent l'instrumentation automatique. Utilisez cette méthode pour exclure les classes que vous ne souhaitez pas surveiller ou qui causent des problèmes de compatibilité. Vous pouvez appeler cette méthode plusieurs fois. Le SDK utilise la correspondance de sous-chaîne pour l'exclusion des noms de classe.

Important

Cette méthode doit être appelée avant l'initialisation du SDK. Définissez les mots-clés d'exclusion avec soin pour éviter d'exclure involontairement des classes en raison de la correspondance de sous-chaîne.

// Exclude all classes containing StoreKit2ViewController
[AlibabaCloudRUM excludeClassFromTracking:@"StoreKit2ViewController"];
// Exclude all classes containing BTDemoStoreKit2MixedBridge
[AlibabaCloudRUM excludeClassFromTracking:@"BTDemoStoreKit2MixedBridge"];

Activer ou désactiver des modules

Active ou désactive des modules de collecte de données spécifiques. Les configurations locales ont priorité sur les configurations distantes. Les appels multiples s'accumulent.

Important

Cette méthode doit être appelée avant l'initialisation du SDK. Les configurations locales ont priorité sur les configurations distantes. À utiliser avec précaution.

@objc(disableModule:)
public static func disableModule(_ module: AlibabaCloudModule)

@objc(enableModule:)
public static func enableModule(_ module: AlibabaCloudModule)

@objc(AlibabaCloudModule)
public enum AlibabaCloudModule: Int {
    case crash        = 0
    case network      = 1
    case view         = 2
    case action       = 3
    case webView      = 4
    case longTask     = 5
    case appLaunch    = 6
    case appState     = 7
    case netState     = 8
    case customEvent  = 9
    case customLog    = 10
    case customMetric = 11
}
Paramètre Description Contraintes Résultat en cas d'échec
module Module de collecte à activer ou désactiver Doit être de type AlibabaCloudModule Ce paramètre est invalide

Exemple :

// Disable the network data collection module
[AlibabaCloudRUM disableModule:AlibabaCloudModuleNetwork];

Définir l'environnement de l'application

Spécifie l'environnement de l'application, tel que LOCAL, DAILY ou PROD.

@objc
public static func setEnvironment(_ env: Env)
Paramètre Description Contraintes Résultat en cas d'échec
env Valeur enum de l'environnement. Doit être appelé avant la méthode start Enum Env, la valeur par défaut est PROD : LOCAL, DAILY, PRE, GRAY, PROD, NONE L'appel API échoue, ce paramètre est invalide

Collecte d'instantanés de ressources

Collecte les en-têtes et les informations de payload des requêtes et réponses HTTP. Par défaut, la collecte d'instantanés de ressources est désactivée. Vous devez l'activer explicitement.

Active la collecte d'instantanés de ressources pour la bibliothèque HttpClient en définissant un ResourceSnapshotProvider.

void setResourceSnapshotProvider(ResourceSnapshotProvider? provider)
Important

Le SDK ne collecte aucun en-tête ni donnée de payload par défaut. Vous devez activer explicitement la collecte.

Vous êtes responsable de l'anonymisation des données. Le SDK ne filtre automatiquement aucune information sensible, y compris, mais sans s'y limiter, les mots de passe et les informations personnelles des utilisateurs.

Informations personnalisées

Définir le nom d'utilisateur

Définit un nom d'utilisateur pour associer les données de surveillance aux utilisateurs réels.

@objc
public static func setUserName(_ userID: String)
Paramètre Description Contraintes Résultat en cas d'échec
userID Identifiant du nom d'utilisateur La chaîne peut être nulle ou vide. La longueur doit être inférieure ou égale à 256 caractères, sans caractères spéciaux (seuls les chiffres, lettres, deux-points, espaces, barres obliques, tirets bas, tirets, points et @ sont pris en charge) L'appel API échoue, ce paramètre est invalide

Définir des informations supplémentaires utilisateur personnalisées

Définit des informations utilisateur supplémentaires pour enrichir l'analyse des données au niveau utilisateur.

@objc(setUserExtraInfo:)
public static func setUserExtraInfo(_ extraInfo: [String: AnyObject])
Paramètre Description Contraintes Résultat en cas d'échec
extraInfo Informations supplémentaires utilisateur La mappe peut être nulle ou vide. La représentation JSON doit contenir 7 000 caractères ou moins L'appel API échoue, ce paramètre est invalide

Définir des propriétés globales

Définit des propriétés métier globales personnalisées. Une fois définies, toutes les nouvelles données héritent automatiquement de ces propriétés, permettant une corrélation entre les données de surveillance et les attributs métier.

@objc(setExtraInfo:)
public static func setExtraInfo(_ extraInfo: [String: AnyObject])

@objc(addExtraInfo:)
public static func addExtraInfo(_ extraInfo: [String: AnyObject])
Remarque

L'appel de setExtraInfo efface les propriétés précédemment définies. Pour ajouter de nouvelles propriétés, utilisez plutôt addExtraInfo.

Signaler des exceptions personnalisées

Signale des données d'exception personnalisées pour l'analyse statistique.

@objc(setCustomException:causeBy:errorDump:)
public static func setCustomException(_ exceptionType: String, causeBy: String, errorDump: String)
Paramètre Description Contraintes Résultat en cas d'échec
exceptionType Type d'exception (obligatoire) La longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 256 caractères L'appel API échoue, ce paramètre est invalide
causeBy Cause de l'exception La chaîne peut être nulle ou vide. La longueur doit être inférieure ou égale à 512 caractères ; le surplus est tronqué -
errorDump Détails de l'exception La chaîne peut être nulle ou vide. La longueur doit être inférieure ou égale à 10 000 caractères ; le surplus est tronqué -

Signaler des événements personnalisés

Signale des données d'événements personnalisés pour l'analyse statistique.

Plusieurs versions surchargées sont disponibles pour différents besoins de rapport :

Signature de méthode Paramètres supplémentaires Contraintes
setCustomEvent(_ name: String) Aucun name : la longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 256 caractères
setCustomEvent(_ name: String, group: String?) group : groupe d'événements group : la chaîne doit contenir 256 caractères ou moins ; le surplus est tronqué
setCustomEvent(_ name: String, group: String?, snapshots: String?) group, snapshots : instantané d'événement snapshots : la chaîne doit contenir 7 000 caractères ou moins ; le surplus est tronqué
setCustomEvent(_ name: String, group: String?, value: Double) group, value : valeur d'événement value : type Double
setCustomEvent(_ name: String, group: String?, info: [String: String]?) group, info : informations supplémentaires sur l'événement info : la représentation JSON doit contenir 7 000 caractères ou moins
setCustomEvent(_ name: String, group: String?, snapshots: String?, value: Double) group, snapshots, value Contraintes telles que décrites ci-dessus
setCustomEvent(_ name: String, group: String?, snapshots: String?, info: [String: String]?) group, snapshots, info Contraintes telles que décrites ci-dessus
setCustomEvent(_ name: String, group: String?, value: Double, info: [String: String]?) group, value, info Contraintes telles que décrites ci-dessus
setCustomEvent(_ name: String, group: String?, snapshots: String?, value: Double, info: [String: String]?) group, snapshots, value, info (version avec tous les paramètres) Contraintes telles que décrites ci-dessus

Signaler des journaux personnalisés

Signale des informations de journal personnalisées pour l'analyse statistique.

Signature de méthode Paramètres supplémentaires Contraintes
setCustomLog(_ logInfo: String) Aucun logInfo : la longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 10 000 caractères ; le surplus est tronqué
setCustomLog(_ logInfo: String, name: String?) name : nom du journal name : la longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 256 caractères
setCustomLog(_ logInfo: String, name: String?, snapshots: String?) name, snapshots : instantané du journal snapshots : la chaîne doit contenir 7 000 caractères ou moins ; le surplus est tronqué
setCustomLog(_ logInfo: String, name: String?, snapshots: String?, level: String?, info: [String: String]?) name, snapshots, level : niveau du journal (par défaut : INFO), info : informations supplémentaires du journal info : la représentation JSON partage la limite de longueur avec logInfo ; sinon, l'appel API échoue

Signaler des ressources personnalisées

Signale des données de requête de ressource réseau personnalisées, y compris l'état de la requête, les métriques de performance et les informations de suivi de trace. Deux versions surchargées sont disponibles pour les scénarios de base et avancés.

Scénario de base

@objc(setCustomResource:success:url:method:statusCode:errorMessage:)
public static func setCustomResource(_ type: String, success: Bool, url: String, method: String, statusCode: Int, errorMessage: String?) -> Bool
Paramètre Type Description Contraintes
type String Type de ressource, tel que « js », « media », « api » La longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 64 caractères ; le surplus est tronqué
success Bool Indique si la requête a réussi true pour succès, false pour échec
url String URL complète de la requête La longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 1 024 caractères ; le surplus est tronqué
method String Méthode de requête HTTP, telle que « GET », « POST », « PUT », « DELETE » La longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 24 caractères ; le surplus est tronqué
statusCode Int Code d'état de la réponse HTTP Code d'état HTTP, tel que 200, 404, 500
errorMessage String? Message d'erreur, rempli uniquement lorsque la requête échoue La longueur de la chaîne doit être supérieure à 0 et inférieure ou égale à 256 caractères ; le surplus est tronqué. Peut être nul

Exemple :

// Swift - Successful GET request
let result = AlibabaCloudRUM.setCustomResource(
    "API",
    success: true,
    url: "https://api.example.com/users",
    method: "GET",
    statusCode: 200,
    errorMessage: nil
)

// Swift - Failed POST request
let result2 = AlibabaCloudRUM.setCustomResource(
    "API",
    success: false,
    url: "https://api.example.com/login",
    method: "POST",
    statusCode: 401,
    errorMessage: "Unauthorized access"
)
// Objective-C - Successful GET request
BOOL result = [AlibabaCloudRUM setCustomResource:@"API"
                                         success:YES
                                             url:@"https://api.example.com/users"
                                          method:@"GET"
                                      statusCode:200
                                    errorMessage:nil];

// Objective-C - Failed POST request
BOOL result2 = [AlibabaCloudRUM setCustomResource:@"API"
                                          success:NO
                                              url:@"https://api.example.com/login"
                                           method:@"POST"
                                       statusCode:401
                                     errorMessage:@"Unauthorized access"];

Scénario avancé

Étend la version de base avec des métriques de performance et des configurations de suivi de trace.

@objc(setCustomResource:success:url:method:statusCode:errorMessage:provider:tracing:measure:)
public static func setCustomResource(_ type: String, success: Bool, url: String, method: String, statusCode: Int, errorMessage: String?, provider: String?, tracing: AlibabaCloudTracingContext?, measure: AlibabaCloudResourceMeasure?) -> Bool

En plus des paramètres de base, la version avancée prend en charge :

  • provider : identifiant du fournisseur de services, tel que « CDN »

  • tracing : informations de contexte de suivi de trace (AlibabaCloudTracingContext)

  • measure : métriques de performance des ressources (AlibabaCloudResourceMeasure)

Types auxiliaires

AlibabaCloudTracingContext

Fournit un contexte pour le suivi distribué. Prend en charge les protocoles W3C Trace Context et SkyWalking V3.

  • W3C : protocole standard W3C Trace Context

  • SkywalkingV3 : protocole Apache SkyWalking V3

AlibabaCloudResourceMeasure

Enregistre les métriques de performance des requêtes réseau.

Propriété Type Description
duration NSUInteger Temps total consommé (ms)
size NSUInteger Taille des données de réponse (octets)
connectDuration NSUInteger Temps de connexion TCP (ms)
sslDuration NSUInteger Temps de handshake SSL/TLS (ms)
dnsDuration NSUInteger Temps de résolution DNS (ms)
redirectDuration NSUInteger Temps de redirection (ms)
firstByteDuration NSUInteger Temps jusqu'au premier octet (ms)
downloadDuration NSUInteger Temps de téléchargement (ms)

Notes

  1. Vérifiez la valeur de retour : Nous vous recommandons de vérifier la valeur de retour. Si false est renvoyé, l'appel API a échoué.

  2. Rapport asynchrone : Un appel API réussi (renvoyant true) indique seulement que le SDK a accepté les données. Le rapport réel des données est asynchrone.