我们将在macOS上进行Rust App跨平台开发,以下的设置都是基于macOS。
Rust 提供了友好的开发工具链,我们只需要先安装rustup
, 通过rustup
便可完成Rust 语言开发环境的安装和配置。
PayBy 需要兼容32位iOS系统,而Rust从1.42开始不再支持iOS 32位架构,所以我们选择安装1.41.0 版本。
安装完成后,可以检查当前生效的Rust编译器版本:
Cargo是Rust的包管理器,类似于Java的Maven,Gradle等。使用下面等命令安装:
为了让Rust编译器编译出适合在Android和iOS上使用的库,需要添加相应的targets
支持。rustup
能够帮我们搞定。另外还需要为不同平台添加相应的工具链支持。
确保正确安装了 Android NDK tools,并且设置好了NDK_HOME
系统环境变量。
有了正确的NDK_HOME
后,我们只需要安装cargo-ndk
, 就可以让Rust查找到
正确的NDK链接器,并在Rust和Android NDK之间进行正确的转换,最终产出Android
平台上可用的NDK 库。
我们只需要使用Cargo 就可以方便安装 cargo-ndk
:
为了生成iOS项目需要的头文件,需要安装 cbindgen
:
为了自动生成universal库文件,需要安装cargo-lipo
:
我们的目标是,核心业务逻辑使用Rust编写,节约工作量,并保持业务逻辑的一致性; 在核心业务逻辑之上,通过薄薄的一层绑定,适配到 iOS和Android。
所以我们的项目结构可以划分为:
当然,各个核心逻辑是可以单独构成项目,通过Rust的crate
机制集成。
为了方便构建,避免重复命令,分别编写 android_build.sh
:
以及 ios_build.sh
:
至此,Rust App 跨平台开发基本的设置就完成了,接下来我们就可以愉快地进行Rust开发了。