文章阅读页通栏

开源区块链钱包CASHBOX技术编译教程(一)

来源: SCRYINFO 作者:Jayce
1. 全局代理,必要条件 2. 环境准备(window) Android studio 链接:http://www.android-studio.org/ Flutter 链接:https://flutterchina.club/get-started/install/ Rust 链接:https......
1. 全局代理,必要条件

2. 环境准备(window)

Android studio 链接:http://www.android-studio.org/
Flutter 链接:https://flutterchina.club/get-started/install/
Rust 链接:https://www.rust-lang.org/zh-CN/tools/install
Java 链接:https://www.java.com/ES/download/
Ndk链接:https://developer.android.com/ndk/downloads
Msvc以及相应的英文语言包。请使用Microsoft C++ Build Tools

(https://visualstudio.microsoft.com/zh-hant/visual-cpp-build-tools/)进行下载。打开勾选如下选项

Vcpkg.链接:https://github.com/microsoft/vcpkg

3. 环境变量

ANDROID_NDK 值为ndk所在目录。

path环境变量中配置flutter,cargo,vcpkg,java。

4. 取下cashbox代码库。
https://github.com/scryinfo/cashbox

5. 以上条件准备完成后开始编译过程编译动态库部分。可以参考

https://github.com/scryinfo/cashbox/blob/master/bc/device_app_lib/readme.md

Windows具体步骤如下:

rustup target add aarch64-linux-android armv7-linux-androideabi
rustup toolchain install x86_64-pc-windows-msvc
rustup default msvc

注:如果此时找不到msvc,请使用rustup toolchain list查看全名,替换到命令中重新执行

vcpkg integrate install
vcpkg install sqlite3:x64-windows-static
vcpkg install sqlite3:x64-windows

Cd 到cashbox\bc\device_app_lib\script目录下运行

build_aarch64-linux-android.bat文件进行动态库的编译。

(1)若在此过程中出现 linker:“cc”not find 问题。请前往cargo所在目录下新建文件config,无后缀。

Config文件中的内容如下:

[target.aarch64-linux-android]
linker="C:\\Users\\jayce\\Downloads\\android-ndk-r21b\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\aarch64-linux-android28-clang.cmd"
ar="C:\\Users\\jayce\\Downloads\\android-ndk-r21b\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\aarch64-linux-android-ar.exe"  

目录根据你的ndk所在目录进行相应调整。保存再次运行bat文件完成编译。

若在编译过程出现ed25519_dalek相关库的问题,请修改bc\下的cargo.lock文件。找到ed25519_dalek的依赖修改如下内容。

version = "1.0.0-pre.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a"
dependencies = [
 "curve25519-dalek 2.1.0",
 "ed25519",
 "rand 0.7.3",
 "serde",
 "sha2 0.8.2",
 "zeroize 1.1.0",
]

因7月17日版本改动,且1.0.0-pre.3与1.0.0-pre.4不兼容导致,将上述内容修改如下。

version = "1.0.0-pre.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2"
dependencies = [
 "clear_on_drop",
 "curve25519-dalek 2.1.0",
 "rand 0.7.3",
 "sha2 0.8.2",
]

修改上述bat文件。

编译apk,具体步骤如下

修改cashbox\app\lib\global_config\vendor_config.dart中的key和value.替换为你自己服务器的接口地址。各个接口详情介绍参见(未完成)。

由于apk签名问题,请修改cashbox\app\android\app\build.gradle的部分内容如下

修改后可生成未签名apk,若要重新签名请参见
https://github.com/scryinfo/cashbox/blob/master/app/README.md

运行flutter build apk即可,生成的apk目录如下:
cashbox\app\build\app\outputs\apk\release\app-release-unsigned.apk

关键词: 区块链钱包  CASHBOX  
0/300