flutter_libtdjson
A flutter plugin for TDLib JSON interface, ffi binding.
Lib versions
package | td version |
---|---|
0.2.1 | 1.8.31 (Android, iOS, macOS) |
0.2.0 | 1.8.30 (Android, iOS, macOS) |
0.1.4 | 1.8.1 (Android, iOS, macOS) |
0.1.3 | 1.7.9 (Android, iOS, macOS) |
0.1.2 | 1.7.0 (Android), latest (iOS, macOS) |
Supported architectures
Make sure you are using supported one
Platform | Architecture | |
---|---|---|
Android | armeabi-v7a | ✅ |
arm64-v8a | ✅ | |
Android emulator | x86 | ✅ |
x86_64 | ✅ | |
iOS | armv7 | ❌ |
armv7s | ❌ | |
arm64 | ⛔ | |
iOS simulator | i386 | ❌ |
x86_64 | ⛔ | |
arm64 (M1) | ⛔ | |
macOS | i386 | ❌ |
x86_64 | ✅ | |
arm64 (M1) | ✅ |
Installation
-
Update
pubspec.yaml
:dependencies: libtdjson: ^0.2.1
-
If you want to build android, you have to add envs for github maven, see
./android/build.gradle
export GITHUB_ACTOR=<username> export GITHUB_TOKEN=<personal access token>
-
If you want to set
tdlibParameters.database_directory
outside work dir, make sure you request the storage permission, e.q.android/app/src/main/AndroidManifest.xml
<manifest> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <manifest/>
-
If you want to build macos, have to set network permission in
./macos/Runner/*.entitlements
files<dict> <key>com.apple.security.network.client</key> <true/> </dict>
Dev memo
Bump TDLib version
-
Bump the td version of android-libtdjson
-
Bump the android dependency version in
./android/build.gradle
-
Run
./example
for androidcd ./example flutter run -d emulator-5554
-
Bump the td version of ios-libtdjson
-
Bump the macos dependency version in
./macos/libtdjson.podspec
(s.dependency) -
Run
./example
for macoscd ./example/macos pod update flutter_libtdjson cd .. flutter run -d macos
-
Bump the ios dependency version in
./ios/libtdjson.podspec
-
Run
./example
for ios simulatorcd ./example/ios pod update flutter_libtdjson cd .. flutter run --debug # link .dylib to search path, e.q: # ln -s $(pwd)/build/ios/Debug-iphonesimulator/XCFrameworkIntermediates/flutter_libtdjson/libtdjson.dylib ~/Library/Developer/CoreSimulator/Devices/FD63D560-544B-4B18-8F2F-03B093156DE2/data/Containers/Bundle/Application/004B7B3D-4665-4217-A9C7-2D2193107E80/Runner.app/Frameworks/libtdjson.dylib # Reload with `R`
-
Bump the package version in
./pubspec.yaml
-
Add changelog for new version in
./CHANGELOG.md
-
Bump version info in
./README.md
-
Git commit (message example:
bump td to vx.x.x
) -
Git add tag (
git tag v?.?.?
, the tag version should be same as the version in pubspec.yaml) -
Push with tags (
git push && git push --tags
) -
Wait for CI task
Manually publish
dart pub publish
# credentials file on macos
cat ~/Library/Application\ Support/dart/pub-credentials.json
TODO
iOS with dylib
. There are .dylib files in build/ios/Debug-iphonesimulator/XCFrameworkIntermediates, but still...