اختر مسار التكامل
لا تستخدم حزمة shernova القديمة
حزمة shernova (1.x) على pub.dev مهملة. أضف دائماً shernova_core (^2.0.0). shernova_ui اختياري. إذا كان pubspec.yaml يحتوي shernova: احذفها: dart pub remove shernova && dart pub add shernova_core:^2.0.0.
الأساس مقابل UI اختياري
shernova_core إلزامي. shernova_ui اختياري — للشاشات الجاهزة أو استخدم API headless وابنِ واجهتك.
| الحزمة | الإصدار | الدور |
|---|---|---|
| shernova_core | 2.0.1 | إلزامي — SDK headless |
| shernova_ui | 2.3.1 | اختياري — verifyPhone() + afterVerified |
| shernova_cli | 2.0.0 | setup (--with-ui للواجهة الاختيارية) |
التثبيت — المسار A (headless)
dart pub add shernova_core:^2.0.0
dart pub add --dev shernova_cli:^2.0.0
dart run shernova_cli setup --pk pk_test_YOUR_KEY --app-id YOUR_APP_UUIDالتثبيت — المسار B (UI اختياري)
dart pub add shernova_core:^2.0.0 shernova_ui:^2.0.0
dart pub add --dev shernova_cli:^2.0.0
dart run shernova_cli setup --pk pk_test_YOUR_KEY --app-id YOUR_APP_UUID --with-uiالتهيئة
import 'package:shernova_core/shernova_core.dart';
import 'shernova_config.dart';
await Shernova.init(shernovaConfig);Headless (shernova_core فقط — موصى به)
final session = await Shernova.verify(phoneNumber: '+201012345678');
await for (final u in Shernova.watch(session.sessionId)) {
if (u.status == 'verified') {
await Shernova.getReceipt(session.sessionId);
break;
}
}تدفق UI اختياري (shernova_ui)
import 'package:shernova_core/shernova_core.dart';
import 'package:shernova_ui/shernova_ui.dart';
import 'shernova_config.dart';
await Shernova.init(shernovaConfig);
final session = await verifyPhone(
context: context,
phoneNumber: '+201012345678',
);Branding من السيرفر (ui_theme)
من shernova_core 2.0.1+ / shernova_ui 2.3.0+، POST /v1/sdk/token يعيد ui_theme (logo_url, logo_size_dp, footer_font_size_sp). تحديث الشعار من Dashboard دون إعادة نشر التطبيق.
Android auto-return
من shernova_ui 2.2.0+، verifyPhone() يراقب حالة المكالمة عبر foreground service ويعيد التطبيق تلقائياً. امنح Phone و Notifications و Call phone عند الطلب.
النشر على Google Play يتطلب إعلانات FGS و Phone عند استخدام shernova_ui. راجع النشر على Google Play.
التحقق على iOS
على iOS نفس الحزم تعمل بدون auto-return — المستخدم يعود يدوياً. راجع iOS و App Store.
مفاتيح test (pk_test_ / sk_test_)
استخدم pk_test_ / sk_test_ في builds التطوير. الجلسات تستخدم بوابات Android حقيقية وتستهلك رصيداً — اتصل بـ gateway_phone_number من نفس الهاتف. pk_live_ للإنتاج.
الأخطاء
SDK يرمي ShernovaError مع errorCode (SH_xxx). راجع أكواد الأخطاء.
