171 lines
6 KiB
Markdown
171 lines
6 KiB
Markdown
# اسکریپتهای Linux برای Hesabix
|
|
|
|
این فایل شامل اسکریپتهای مفید برای اجرا و build کردن اپلیکیشن Flutter در Linux است.
|
|
|
|
## اسکریپتهای موجود
|
|
|
|
### 1. `run_linux.sh` - اجرای اپلیکیشن در Linux
|
|
|
|
اسکریپت اصلی برای اجرای اپلیکیشن Flutter در Linux Desktop.
|
|
|
|
**استفاده:**
|
|
```bash
|
|
./run_linux.sh [options]
|
|
```
|
|
|
|
**گزینهها:**
|
|
- `--project PATH`: مسیر پروژه Flutter (اختیاری)
|
|
- `--mode MODE`: نوع اجرا (debug/profile/release) - پیشفرض: debug
|
|
- `--build-dir DIR`: مسیر build directory - پیشفرض: build/linux
|
|
- `--clean`: پاک کردن build directory قبل از اجرا
|
|
- `--install-deps`: نصب وابستگیها قبل از اجرا
|
|
- `--api-base-url URL`: آدرس پایه API
|
|
- `--help`: نمایش راهنما
|
|
|
|
**نمونههای استفاده:**
|
|
```bash
|
|
# اجرای ساده
|
|
./run_linux.sh
|
|
|
|
# اجرا در حالت release
|
|
./run_linux.sh --mode release
|
|
|
|
# اجرا با پاک کردن build directory
|
|
./run_linux.sh --clean --mode debug
|
|
|
|
# اجرا با نصب وابستگیها
|
|
./run_linux.sh --install-deps
|
|
|
|
# اجرا با API base URL
|
|
./run_linux.sh --api-base-url http://localhost:8000
|
|
```
|
|
|
|
### 2. `build_linux.sh` - Build کردن اپلیکیشن برای Linux
|
|
|
|
اسکریپت برای ایجاد executable مستقل از اپلیکیشن Flutter.
|
|
|
|
**استفاده:**
|
|
```bash
|
|
./build_linux.sh [options]
|
|
```
|
|
|
|
**گزینهها:**
|
|
- `--project PATH`: مسیر پروژه Flutter (اختیاری)
|
|
- `--mode MODE`: نوع build (debug/profile/release) - پیشفرض: release
|
|
- `--build-dir DIR`: مسیر build directory - پیشفرض: build/linux
|
|
- `--output-dir DIR`: مسیر خروجی نهایی - پیشفرض: build/linux_release
|
|
- `--clean`: پاک کردن build directory قبل از build
|
|
- `--install-deps`: نصب وابستگیها قبل از build
|
|
- `--api-base-url URL`: آدرس پایه API
|
|
- `--archive`: ایجاد فایل tar.gz از خروجی
|
|
- `--help`: نمایش راهنما
|
|
|
|
**نمونههای استفاده:**
|
|
```bash
|
|
# Build ساده
|
|
./build_linux.sh
|
|
|
|
# Build در حالت debug
|
|
./build_linux.sh --mode debug
|
|
|
|
# Build با ایجاد archive
|
|
./build_linux.sh --archive
|
|
|
|
# Build کامل با پاک کردن و نصب وابستگیها
|
|
./build_linux.sh --clean --install-deps --archive
|
|
```
|
|
|
|
## وابستگیهای مورد نیاز
|
|
|
|
قبل از استفاده از این اسکریپتها، مطمئن شوید که وابستگیهای زیر نصب شدهاند:
|
|
|
|
### Ubuntu/Debian:
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install libgtk-3-dev cmake ninja-build
|
|
```
|
|
|
|
### Fedora/RHEL:
|
|
```bash
|
|
sudo dnf install gtk3-devel cmake ninja-build
|
|
```
|
|
|
|
### Arch Linux:
|
|
```bash
|
|
sudo pacman -S gtk3 cmake ninja
|
|
```
|
|
|
|
## نصب Flutter
|
|
|
|
اگر Flutter نصب نیست، میتوانید از snap استفاده کنید:
|
|
|
|
```bash
|
|
sudo snap install flutter --classic
|
|
```
|
|
|
|
یا از سایت رسمی Flutter دانلود کنید:
|
|
https://flutter.dev/docs/get-started/install/linux
|
|
|
|
## ویژگیهای جدید
|
|
|
|
### نصب خودکار وابستگیها
|
|
اسکریپتها بهطور خودکار وابستگیهای مورد نیاز را تشخیص داده و نصب میکنند:
|
|
- GTK+3 development libraries
|
|
- CMake
|
|
- Ninja build system
|
|
- Clang C++ compiler
|
|
- Build essential tools
|
|
|
|
### رفع مشکلات platform-specific
|
|
- مشکلات مربوط به `dart:html` (که فقط در web platform موجود است) بهطور خودکار رفع میشوند
|
|
- توابع download برای Linux desktop بهروزرسانی میشوند
|
|
- فایلهای اصلی پس از اجرا بازیابی میشوند
|
|
|
|
### پشتیبانی از توزیعهای مختلف
|
|
- Ubuntu/Debian (apt)
|
|
- Fedora/RHEL (dnf)
|
|
- Arch Linux (pacman)
|
|
|
|
## نکات مهم
|
|
|
|
1. **مسیر پروژه**: اسکریپتها بهطور خودکار پروژه Flutter را در `hesabixUI/hesabix_ui` پیدا میکنند.
|
|
|
|
2. **Mirror تنظیمات**: اسکریپتها از mirror چینی برای حل مشکل دسترسی به pub.dev استفاده میکنند.
|
|
|
|
3. **Build Directory**: فایلهای build شده در `build/linux` ذخیره میشوند.
|
|
|
|
4. **خروجی نهایی**: فایلهای قابل اجرا در `build/linux_release` (یا مسیر مشخص شده) قرار میگیرند.
|
|
|
|
5. **اجرای فایل نهایی**: پس از build، میتوانید فایل `hesabix_ui` را در مسیر خروجی اجرا کنید.
|
|
|
|
6. **بازیابی خودکار**: فایلهای اصلی پس از اجرا یا build به حالت اولیه بازمیگردند.
|
|
|
|
## عیبیابی
|
|
|
|
### خطای "Flutter یافت نشد"
|
|
- مطمئن شوید Flutter نصب شده است
|
|
- مسیر Flutter را به PATH اضافه کنید
|
|
- از snap استفاده کنید: `sudo snap install flutter --classic`
|
|
|
|
### خطای "GTK+3 development libraries یافت نشد"
|
|
- وابستگیهای GTK را نصب کنید (به بخش وابستگیها مراجعه کنید)
|
|
|
|
### خطای "CMake یافت نشد"
|
|
- CMake را نصب کنید: `sudo apt install cmake` (Ubuntu/Debian)
|
|
|
|
### خطای build
|
|
- از `--clean` استفاده کنید تا build directory پاک شود
|
|
- از `--install-deps` استفاده کنید تا وابستگیها نصب شوند
|
|
|
|
### خطای "dart:html is not available"
|
|
- این خطا بهطور خودکار توسط اسکریپت رفع میشود
|
|
- اگر همچنان رخ داد، از `--clean` استفاده کنید
|
|
|
|
### خطای "deprecated-literal-operator"
|
|
- این خطا مربوط به flutter_secure_storage_linux است
|
|
- اسکریپت بهطور خودکار compiler flags را تنظیم میکند
|
|
|
|
### خطای "Could not find compiler"
|
|
- اسکریپت بهطور خودکار clang و build-essential را نصب میکند
|
|
- اگر همچنان رخ داد، دستی نصب کنید: `sudo apt install clang build-essential`
|