تکنقطه v0.5.2
◉ Flow — تکنقطه · v0.5.2
نصب روی همهی گوشیها · Installs on every Android phone
اگر هنگام نصب پیام «بسته مشکل دارد» یا "There was a problem parsing the package" میگرفتی — این نسخه دقیقاً همان را حل میکند.
If installing ever failed with "There was a problem parsing the package", this release fixes exactly that.
🇮🇷 فارسی
📥 نصب در ۳ قدم
۱. کدام فایل را دانلود کنم؟
| فایل | برای چه کسی | حجم |
|---|---|---|
taknoghte-v0.5.2-universal.apk ⭐ |
اگر مطمئن نیستی، همین را بگیر. روی همهی گوشیها نصب میشود. | ~۵۵ MB |
taknoghte-v0.5.2-arm64-v8a.apk |
گوشیهای ۶۴بیتی — تقریباً همهی گوشیهای ۲۰۱۷ به بعد | ~۲۳ MB |
taknoghte-v0.5.2-armeabi-v7a.apk |
گوشیهای ۳۲بیتی و قدیمیتر | ~۲۰ MB |
taknoghte-v0.5.2-x86_64.apk |
شبیهساز و دستگاههای اینتل | ~۲۴ MB |
۲. ⚠️ اگر نسخهی قبلی نصب است، اول پاکش کن
نسخههای پیشین با یک کلید موقت امضا میشدند. این نسخه با کلید رسمی و دائمی امضا شده، پس اندروید اجازهی نصب روی نسخهی قدیمی را نمیدهد و پیام «App not installed» میدهد.
📦 قبل از حذف، از دادههایت پشتیبان بگیر:
داخل اپ → آیکون ⚙ بالای صفحه → «پشتیبانگیری (خروجی JSON)» → فایل را جایی امن ذخیره کن.
بعد از نصب نسخهی جدید، از همانجا «بازیابی از فایل پشتیبان» را بزن.✅ این آخرین باری است که لازم است حذف کنی — از این پس همهی بهروزرسانیها مستقیم روی نصب قبلی مینشینند.
۳. نصب
فایل را باز کن → اگر پرسید، «نصب از منابع ناشناس» را برای مرورگر یا فایلمنیجرت فعال کن → Install.
در اولین اجرا اجازهی نوتیفیکیشن (و در اندروید ۱۲+ اجازهی «زنگ دقیق») را بده تا یادآورهای صبح/شب و زنگ پایان تمرکز درست کار کنند.
پیشنیاز: اندروید ۷ (API 24) به بالا
راستیآزمایی دانلود: کنار هر فایل یک.sha256هست —sha256sum <فایل>.apk
🐛 چرا نصب نمیشد
سه علت روی هم جمع شده بودند:
۱. فقط نسخهی ۶۴بیتی منتشر میشد.
ریلیزهای قبلی تنها arm64-v8a داشتند. هر گوشی ۳۲بیتی که آن فایل را دانلود میکرد، اندروید بسته را ناسازگار میدید و خطای «مشکل در تجزیهی بسته» میداد.
→ حالا نسخهی یونیورسال منتشر میشود که هر سه معماری را با هم دارد و همیشه نصب میشود.
۲. امضا با کلید دیباگ.
بیلد release با کلید debug امضا میشد. این کلید روی هر اجرای CI از نو ساخته میشود، یعنی هر نسخه با کلیدی متفاوت امضا میشد — به همین دلیل بهروزرسانی روی نصب قبلی با خطای عدم تطابق امضا شکست میخورد و بعضی نصبکنندههای سازندهها کلاً بسته را رد میکردند.
→ حالا امضای واقعی release با کلید دائمی (RSA 4096، اعتبار تا ۲۰۵۳) و اسکیمهای v2+v3 انجام میشود.
۳. نسخهی حداقلی نامشخص بود.
مقادیر SDK از پیشفرضهای Flutter میآمدند و با هر ارتقا میتوانستند بیصدا عوض شوند.
→ حالا صریح پین شدهاند: minSdk 24 · targetSdk 36 · compileSdk 36.
🛡 از این به بعد چنین چیزی منتشر نمیشود
خط تولید قبل از هر انتشار، تکتک فایلهای APK را خودکار بازرسی میکند و اگر هرکدام رد شود انتشار متوقف میشود:
- ✅ سلامت ساختار فایل (zip سالم)
- ✅ خواندن مانیفست و بررسی
minSdk - ✅ اطمینان از اینکه نسخهی یونیورسال واقعاً هر سه معماری را دارد
- ✅ صحت امضا و کامل بودن اسکیمهای v2/v3
- ✅ رد کردن انتشار اگر بسته با کلید دیباگ امضا شده باشد
- ✅ ساخت
SHA256برای همهی فایلها
🇬🇧 English
📥 Install in 3 steps
1. Which file do I need?
| File | Who it is for | Size |
|---|---|---|
taknoghte-v0.5.2-universal.apk ⭐ |
Not sure? Take this one. Installs on every device. | ~55 MB |
taknoghte-v0.5.2-arm64-v8a.apk |
64-bit phones — practically everything from 2017 onward | ~23 MB |
taknoghte-v0.5.2-armeabi-v7a.apk |
Older 32-bit phones | ~20 MB |
taknoghte-v0.5.2-x86_64.apk |
Emulators and Intel devices | ~24 MB |
2. ⚠️ Uninstall the previous version first
Earlier builds were signed with a temporary key. This release is signed with the permanent production key, so Android refuses to install it over the old one and shows "App not installed".
📦 Back up your data before uninstalling:
In the app → ⚙ icon at the top → "پشتیبانگیری (JSON export)" → save the file somewhere safe.
After installing the new version, use "بازیابی از فایل پشتیبان" (restore from backup) in the same place.✅ This is the last time an uninstall is needed — every future update installs straight over this one.
3. Install
Open the file → allow "install from unknown sources" for your browser or file manager if prompted → Install.
On first launch, grant notification permission (and the exact alarm permission on Android 12+) so the morning/evening reminders and the focus-session end alarm work.
Requires: Android 7 (API 24) or newer
Verify your download: each file ships a.sha256—sha256sum <file>.apk
🐛 Why installation used to fail
Three causes stacked on top of each other:
1. Only a 64-bit build was published.
Previous releases shipped arm64-v8a only. Any 32-bit device downloading that single file saw a package the platform considers incompatible — which surfaces as the parse error.
→ A universal APK containing all three ABIs is now published and always installs.
2. Release builds were signed with the debug key.
The CI debug keystore is regenerated on every run, so consecutive releases were signed with different keys. Updating over an existing install failed with a signature mismatch, and some OEM installers rejected the package outright.
→ Real release signing now uses a permanent key (RSA 4096, valid through 2053) with the v2+v3 signature schemes.
3. SDK levels were inherited from Flutter defaults.
A Flutter upgrade could silently change which devices could install the app.
→ Now pinned explicitly: minSdk 24 · targetSdk 36 · compileSdk 36.
🛡 This cannot ship again
Before any release, the pipeline inspects every APK and aborts publishing if any check fails:
- ✅ Archive integrity (valid zip)
- ✅ Manifest readable,
minSdkas expected - ✅ Universal APK genuinely contains all three ABIs
- ✅ Signature verifies, v2/v3 schemes present
- ✅ Refuses to publish anything carrying the Android debug certificate
- ✅
SHA256generated for every file
🔒 حریم خصوصی · Privacy
همهچیز فقط روی گوشی خودت. بدون اکانت، بدون سرور، بدون ردیابی.
Everything stays on your phone. No account, no server, no tracking.
🧪 کیفیت · Quality
۵۰ تست خودکار · تحلیل استاتیک سختگیرانه · بررسی فرمت · بازرسی APK — همه در CI
50 automated tests · strict static analysis · format check · APK inspection — all in CI