MTMigration 0.0.5

MTMigration 0.0.5

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2015年3月

Adam KirkParker Wightman 维护。



  • 作者:
  • Parker Wightman

管理 iOS 应用程序版本更新时需要一次性运行的代码块。这可以是数据规范化例程、"这个版本的新功能" 屏幕,或者是错误修复。

安装

MTMigration 可以通过两种方式之一进行安装

  • pod "MTMigration" 添加到您的 Podfile 中,如有必要,使用:#import <MTMigration/MTMigration.h> 导入。
  • MTMigration.{h,m} 添加到您的项目中,如有必要,使用:#import "MTMigration.h" 导入。

用法

如果您需要一个每当应用程序版本更改时运行的结构,请将该结构传递给 applicationUpdateBlock: 方法。

[MTMigration applicationUpdateBlock:^{
    [metrics resetStats];
}];

如果一个结构是特定于版本的,请使用 migrateToVersion:block:,MTMigration 将确保该代码块仅针对该版本运行一次。

[MTMigration migrateToVersion:@"1.1" block:^{
    [newness presentNewness];
}];

您应该在应用程序代理或类似位置运行此代码。

还有并行方法 migrateToBuild:block:

因为 MTMigration 检查您的 *-info.plist 文件中的实际版本号,并跟踪上次迁移,所以它会迁移所有未迁移的结构。例如,假设您有以下迁移

[MTMigration migrateToVersion:@"0.9" block:^{
    // Some 0.9 stuff
}];

[MTMigration migrateToVersion:@"1.0" block:^{
    // Some 1.0 stuff
}];

如果一个用户处于 0.8 版本,跳过 0.9 并升级到 1.0,则将运行 0.91.0 结构。

为了调试/测试目的,您可以调用 reset 来清除 MTMigration 记忆中的最后一次迁移,从而使所有迁移从开始运行

[MTMigration reset];

注意

MTMigration 假设版本号以合理的方式进行递增,即 1.0.1 -> 1.0.21.1 -> 1.2 等。

大于您应用程序中指定版本的版本号不会运行。例如,如果您的 *-info.plist 文件指定 1.2 作为应用程序的版本号,并且您尝试迁移到 1.3,则迁移将不会运行。

结构在运行迁移的线程上执行。应相应考虑后台/前台情况。

贡献

此库未处理一些更复杂的迁移情况,如果您在自己的应用程序中发现了一些复杂用例,请添加并提交拉取请求。务必添加测试用例。

贡献者