A crossplatform veil light wallet written with dart/flutter.
Releases for other platforms can be found here
Development versions can be downloaded from github actions
* Private keys stored with flutter_secure_storage, next encryption methods used to secure data:
- CryptProtectData or Windows Credentials API on Windows (encrypted data stored at
%APPDATA%/org.veilproject/veil-wallet/flutter_secure_storage.dat
) - Keychain on MacOS
- libsecret on Linux
- Keychain on iOS
- EncryptedSharedPreferences on Android
- visual studio 2022 with c++ support
- required libs
sudo apt update
sudo apt install libsecret-1-dev clang pkg-config ninja-build libgtk-3-dev cmake
- it's highly recommended to NOT install flutter via snap
zsh
terminal recommended- homebrew
- cocoapods (can be installed via homebrew)
brew install cocoapods
- rust + cargo (do NOT install via homebrew)
- Xcode
- Xcode Command Line Tools
xcode-select --install
- iOS simulator for Xcode
- JDK 19 (FYI: google play release builds are made with openjdk 21 under windows platform)
- SDK
- NDK
- or install both sdk and ndk via Android studio
Project developed with VS Code
Before building it's important to download submodules
git submodule update --init --recursive
Also see requirements for veil_light_plugin
You may find solutions for common problems here: flutter-notes.md
# release
flutter build windows --release
# release
flutter build macos --release
# after that you may open project in Xcode (./macos/Runner.xcworkspace)
# release
flutter build linux --release
# release
flutter build ios --release --no-codesign
# after that you may open project in Xcode (./ios/Runner.xcworkspace)
# debug on device
flutter run -d <device_id>
# release build in aab format
flutter build appbundle --release
# release build in apk format
flutter build apk --release
Updating veil_light_plugin
dependency
git submodule update --remote --merge
Viewing logs:
flutter logs
To generate icons for platforms use:
dart run flutter_launcher_icons
You may also look at generator config flutter_launcher_icons.yaml
App uses arb format for localization. User locale detected automatically on app start.
To add new locale you should create file:
./lib/l10n/app_<lang_code>.arb
You can use ./lib/l10n/app_en.arb or ./lib/l10n/app_ru.arb as a template
* app_en.arb contain some metadata which is not required for other languages, you may safely remove it (see app_ru.arb for example)