Que fait appmigrationkit ?
Transférez des données d'application vers ou depuis d'autres plateformes avec AppMigrationKit. Utilisez-le lors de l'implémentation d'une migration unique orchestrée par le système entre iOS et Android ou une autre plateforme, de la création d'une AppMigrationExtension, de l'empaquetage de ressources transportables avec ResourcesArchiver, de l'importation de ressources sur l'appareil de destination, du signalement de la progression de l'importation, de la gestion des erreurs de migration et du nettoyage des groupes d'applications, de la vérification de MigrationStatus, ou du test du code de migration avec AppMigrationTester.
Composants clés
- AppMigrationExtension: Extension personnalisée pour définir la logique de migration.
- ResourcesArchiver: Outil pour empaqueter les ressources à transférer.
- AppMigrationTester: Utilitaire de test unitaire pour valider le code de migration.
- MigrationStatus: Énumération indiquant l'état actuel de la migration.
Utilisation de base
import AppMigrationKit
// Initialiser l'extension de migration
let extension = MyAppMigrationExtension()
AppMigrationManager.shared.register(extension: extension)
// Empaqueter les ressources
let archiver = ResourcesArchiver()
try archiver.archive(resources: myData)
// Démarrer la migration
AppMigrationManager.shared.startMigration(from: .iOS, to: .android)
Gestion des erreurs
AppMigrationManager.shared.onError = { error in
switch error {
case .importFailed(let reason):
print("Échec d'importation : \(reason)")
case .cleanupNeeded:
AppMigrationManager.shared.cleanupAppGroup()
default:
print("Erreur inconnue")
}
}
Suivi de progression
AppMigrationManager.shared.onProgress = { progress in
print("Progression : \(progress * 100)%")
}
Vérification du statut
let status = AppMigrationManager.shared.currentStatus
if status == .completed {
print("Migration terminée avec succès")
}
Tests unitaires
import XCTest
@testable import AppMigrationKit
class MyMigrationTests: XCTestCase {
func testMigrationFlow() {
let tester = AppMigrationTester()
tester.simulateMigration(from: .iOS, to: .android)
XCTAssertTrue(tester.didCompleteSuccessfully)
}
}
Notes importantes
- Assurez-vous que les deux plateformes prennent en charge
AppMigrationKit. - Les ressources doivent être sérialisables avec
ResourcesArchiver. - Après la migration, nettoyez les groupes d'applications pour libérer de l'espace.
- Utilisez toujours
MigrationStatuspour vérifier le succès avant de supprimer les données source.