You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中创建保密库供其他项目调用(不暴露源码)

实现方案:将Flutter子应用作为保密库供父应用调用

1. 创建并配置子应用(保密库)

首先创建一个Flutter模块作为你的保密子应用:

flutter create --template module secret_child

在子应用中编写需要暴露的API,比如在lib/secret_api.dart中:

library secret_child;

class SecretService {
  String fetchSecretContent() {
    // 这里是你的保密业务逻辑
    return "Confidential data from child module";
  }

  int calculateSecretValue(int input) {
    return input * 42; // 示例保密计算逻辑
  }
}

2. 编译子应用为平台专属二进制文件

在子应用根目录执行编译命令,生成无需源码即可使用的平台二进制:

针对Android生成AAR

flutter build aar --no-debug --no-profile

编译完成后,AAR文件会生成在build/outputs/aar/目录下,通常命名为secret_child-release.aar。

针对iOS生成XCFramework

flutter build ios-framework --no-debug --no-profile

编译完成后,XCFramework文件会生成在build/ios/framework/目录下,包括Flutter.xcframework和App.xcframework(后者是子应用代码编译后的产物)。

3. 父应用集成二进制文件

Android端集成

  1. 将生成的secret_child-release.aar复制到父应用的android/app/libs/目录下(无libs目录则创建)。
  2. 修改父应用的android/app/build.gradle文件,添加本地依赖:
dependencies {
    // 其他依赖...
    implementation files('libs/secret_child-release.aar')
}
  1. 在父应用的Flutter代码中调用子应用API:
import 'package:secret_child/secret_api.dart';

void useSecretService() {
  final service = SecretService();
  print(service.fetchSecretContent());
  print(service.calculateSecretValue(10));
}

iOS端集成

  1. 将生成的App.xcframework和Flutter.xcframework复制到父应用的ios/Frameworks/目录下(无Frameworks目录则创建)。
  2. 打开父应用的iOS项目(ios/Runner.xcworkspace),右键点击Runner项目 → Add Files to "Runner",选择复制的两个xcframework文件,勾选"Copy items if needed"和"Create groups"。
  3. 修改父应用的ios/Podfile:
flutter_application_path = '.'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  install_all_flutter_pods(flutter_application_path)
  # 添加对子应用framework的引用
  pod 'App', :path => './Frameworks/App.xcframework'
end
  1. 执行pod install更新依赖,之后在父应用Flutter代码中调用子应用API的方式同Android端。

关键说明

  • 此方案无需暴露子应用源码,父应用仅依赖编译后的二进制文件。
  • 无需上传至pub.dev或引用外部路径依赖,二进制文件直接嵌入父应用项目。
  • 若需跨平台支持,需分别生成对应平台的二进制文件并完成集成。

内容的提问来源于stack exchange,提问作者Surajit Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:30:17