返回

Flutter混编项目集成Shorebird热更新秘籍:iOS开发必备

iOS

用 Shorebird 解锁 Flutter 混编项目的热更新魔法

简介

对于 Flutter 开发者来说,频繁的应用商店审核流程是一个挥之不去的痛点。每次修改代码都需要漫长的等待,这大大阻碍了开发效率。

但现在,Shorebird 热更新闪亮登场,让你的更新发布变得轻而易举!无需再等待应用商店的批准,你可以直接将修改推送到用户设备,瞬间搞定!

集成 Shorebird 热更新

1. 集成插件

  • 在 Flutter 项目中安装 Shorebird 插件:flutter pub add shorebird
  • 将 Shorebird.framework 添加到 iOS 项目中。

2. iOS 端实现

  • 在 AppDelegate.m 中导入 Shorebird 头文件。
  • 实现以下方法:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [Shorebird enableLog:YES];
  [Shorebird enableUpdating];
  [Shorebird enableLowBatteryMode];
  return YES;
}

3. Flutter 端初始化

  • 在 Flutter 代码中导入 Shorebird 插件。
  • 初始化 Shorebird 插件:Shorebird.instance.initialize();

补丁验证

补丁验证是热更新的关键环节,确保只有经过验证的补丁才能应用。推荐使用更安全的 RSA 算法:

1. 生成 RSA 公私钥

2. 嵌入公钥到应用

3. 使用私钥签名补丁

4. 在应用中验证补丁签名

常见问题

1. 为什么我的补丁无法验证?

  • 确认使用的算法和公私钥匹配。
  • 检查补丁是否未被篡改。

2. 为什么应用安装补丁后崩溃?

  • 检查补丁代码是否无误。
  • 确保补丁与应用版本兼容。

结论

Shorebird 热更新释放了 Flutter 混编项目的更新潜力,极大地缩短了迭代周期。使用上述步骤和建议,你可以轻松集成 Shorebird,让你的应用时刻保持最新状态!

代码示例

初始化 Shorebird

// AppDelegate.m (iOS)
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [Shorebird enableLog:YES];
  [Shorebird enableUpdating];
  [Shorebird enableLowBatteryMode];
  return YES;
}

// main.dart (Flutter)
import 'package:shorebird/shorebird.dart';

void main() {
  runApp(MyApp());
  Shorebird.instance.initialize();
}

补丁验证

// ShorebirdRSAValidator.swift (iOS)
class ShorebirdRSAValidator: ShorebirdPatchValidator {
  override func validatePatch(patch: ShorebirdPatch, completion: @escaping (ShorebirdPatchValidationResult) -> Void) {
    // ... RSA 验证逻辑 ...
  }
}

使用 Shorebird

// main.dart (Flutter)
import 'package:shorebird/shorebird.dart';

void main() {
  runApp(MyApp());
  Shorebird.instance.initialize();
  Shorebird.instance.addPatchValidator(ShorebirdRSAValidator());
  Shorebird.instance.checkForUpdates();
}