chmod +x ./scripts/build-ios-framework.sh
./scripts/build-ios-framework.sh
上述命令会执行如下操作:
- 生成 .a 产物
- 通过 uniffi-rs 生成 swift binding 文件 rust_lib.swift
- 生成 xcframework 产物
构建完之后,将 out/rust_lib_framework.xcframework 和 rust_lib.swift(out目录下任意一个 target 下的 rust_lib.swift 均可) 拖入到 iOS 工程中,这样就可以在工程中使用 rust_lib 了。
chmod +x ./scripts/build-android.sh
./scripts/build-android.sh
上述命令会执行如下操作:
- 生成 so 产物
- 通过 uniffi-rs 生成 kotlin binding 文件 uniffi/rust_lib/rust_lib.kt
- 拷贝 so 产物到 Android 工程中
- 拷贝 rust_lib.kt 文件到 Android 工程中
chmod +x ./scripts/build-harmony.sh
./scripts/build-harmony.sh
上述命令会执行如下操作:
- 通过ohos-rs(基于napi-rs) 生成 so 产物 & rust接口声明文件 index.d.ts
- 拷贝 so 产物到 HarmonyOS 工程中
- 拷贝 rust接口声明文件 index.d.ts 到 HarmonyOS 工程 entry/libs/rust_lib 下
- 在鸿蒙工程 entry/libs/rust_lib 目录下生成 oh-package.json5 文件,来告知鸿蒙工程这个是一个 package 且它的入口文件地址
- 往鸿蒙工程 entry/oh-package.json5 中添加依赖, 以让ArkTS可以引用到 librust_lib.so 的index.d.ts。便于符号跳转和代码提示