iBeacon هو بروتوكول ملكي من Apple لمنارات Bluetooth Low Energy، يسمح لأجهزة iOS بتحديد موقعها داخل المباني بدقة سنتيمتر. يعتمد البروتوكول على بث حزم BLE بمعرف فريد يحتو8ى على قيم UUID وMajor وMinor. وفقًا لإرشادات Apple iBeacon Design Guidelines (2025)، تستخدم التقنية في التنقل في المراكز التجارية والمتاحف والمطارات والملاعب، مما يدعم الاكتشاف السلبي دون إقران نشط للأجهزة.
النقاط الرئيسية
iBeacon هي تقنية تحديد الموقع داخل المباني طورتها Apple وقدمتها في مؤتمر WWDC 2013. على عكس نظام GPS الذي لا يعمل داخل المباني، يستخدم iBeacon منارات Bluetooth Low Energy — أجهزة صغيرة تعمل بالبطارية تنقل حزم تعريف ثابتة. تستقبل أجهزة iOS وAndroid هذه الحزم وتحسب المسافة التقريبية إلى المنارة بناءً على قوة الإشارة (RSSI).
كان بروتوكول iBeacon أول معيار جماهيري لمنارات BLE، أطلقته Apple في 2013 مع iOS 7. في البداية، استخدمت التقنية في التجزئة: نفذت متاجر Apple Store تقنية iBeacon لإعلام العملاء بالخصومات عند دخول مناطق محددة. بحلول عام 2025، تشمل البنية التحتية لـ iBeacon ملايين المنارات المثبتة حول العالم، ولكن ظهرت بروتوكولات بديلة — Eddystone من Google وAltBeacon مفتوح المصدر.
يستخدم iBeacon في خمسة سيناريوهات رئيسية: التنقل داخل المباني (المراكز التجارية، المطارات، المتاحف)، الإشعارات السياقية (خصومات عند دخول المتجر)، أتمتة سير العمل (تسجيل الحضور)، إدارة اللوجستيك والمستودعات، والدلائل السياحية مع التشغيل التلقائي للمحتوى عند الاقتراب من المعلم. وفقًا لـ ABI Research (2025)، يقدر سوق منارات BLE بـ 3.2 مليار جهاز قيد التشغيل.
حزمة iBeacon هي PDU إعلانية (وحدة بيانات البروتوكول) تنقل على قنوات الإعلان BLE بترددات 2402 و2426 و2480 ميجاهرتز. تنسيق الحزمة محدد بصرامة ويتكون من أربعة حقول: بادئة Apple iBeacon (0x4C000215)، UUID بحجم 16 بايت، قيمة Major بحجم 2 بايت وقيمة Minor بحجم 2 بايت، وTX Power بحجم 1 بايت لمعايرة المسافة. الحجم الإجمالي للبيانات هو 30 بايت، ما يتسع في PDU إعلانية BLE واحدة.
| الحقل | الحجم | الوصف |
|---|---|---|
| بادئة Apple | 9 بايتات | معرف الشركة (0x004C) + نوع iBeacon (0x0215) |
| UUID | 16 بايتات | معرف فريد للمؤسسة أو التطبيق |
| Major | 2 بايتان | معرف المنطقة (0-65535)، مثل رقم المتجر |
| Minor | 2 بايتان | معرف النقطة (0-65535)، مثل رقم الرف |
| TX Power | 1 بايت | قدرة الإشارة المعايرة عند مسافة 1 متر (dBm) |
تشكل معرفات iBeacon تسلسلاً هرمياً من ثلاثة مستويات. يتم تعيين UUID لمؤسسة (على سبيل المثال، سلسلة متاجر)، وMajor لمتجر أو طابق محدد، وMinor لنقطة محددة داخل المنطقة (منطقة الدفع، قسم المنتج). يسمح هذا التسلسل الهرمي للتطبيق بالاستجابة بمرونة لمستويات مختلفة من السياق: عند دخول المتجر (UUID + Major)، يمكن للتطبيق تحميل خارطة الطابق، وعند الاقتراب من قسم محدد (Minor)، عرض معلومات المنتج.
حقل TX Power هو قيمة مرجعية لقوة الإشارة (RSSI) عند مسافة 1 متر من المنارة. عند استقبال الحزمة، يسجل الجهاز RSSI الفعلي ويحسب المسافة باستخدام المعادلة: distance = 10^((TX_Power - RSSI) / (10 * n))، حيث n هو معامل تخميد البيئة (عادةً 2-4). تعتبر معايرة TX Power الصحيحة أمرًا حاسمًا لدقة التحديد: خطأ قدره 1 dBm يؤدي إلى عدم دقة تصل إلى 30% عند مسافة 5 أمتار.
يحدد iOS ثلاث مناطق قرب بناءً على المسافة المحسوبة إلى المنارة: Immediate (أقل من 0.5 متر)، Near (من 0.5 إلى 3 أمتار) وFar (من 3 إلى 30-50 مترًا حسب الظروف). لا يتم الكشف عن المسافة الدقيقة — فقط الفئة. هذا متعمد: RSSI عرضة للتدخلات وانعكاسات الإشارة وتأثير جسم الإنسان، لذلك توفر الفئات تحديدًا أكثر استقرارًا للموقع.
Immediate هي منطقة التماس المباشر، عندما يكون الجهاز على بعد سنتيمترات من المنارة. تستخدم للسيناريوهات التي تتطلب أقصى الدقة: الدفع عبر الطرف، فتح قفل رقمي، التحقق عند نقطة التفتيش. في منطقة Immediate، يتراوح RSSI عادةً بين -30 و-60 dBm.
منطقة Near هي نطاق العمل الرئيسي لـ iBeacon، تغطي مسافات من 0.5 إلى 3 أمتار. تستخدم للتنقل داخل المباني — على سبيل المثال، عند الاقتراب من عرض منتج، يعرض التطبيق معلومات مفصلة. في منطقة Near، يتراوح RSSI بين -60 و-80 dBm مع معايرة TX Power بقيمة -59 dBm.
Far هي المنطقة القصوى لاكتشاف إشارة المنارة. تستخدم لمراقبة الدخول إلى منطقة (على سبيل المثال، دخول مركز تجاري). عند مسافة Far، يكون RSSI عادةً أضعف من -80 dBm، وتنخفض دقة تحديد المسافة بشكل كبير. لمراقبة الدخول، تستخدم API مراقبة المنطقة للنظام، وليس تحديد المنطقة الدقيق.
منطقة iBeacon هي منطقة افتراضية محددة بواسطة UUID (وبالإضافة إلى Major + Minor اختياريًا). يسمح iOS بمراقبة حتى 20 منطقة في نفس الوقت باستخدام CLLocationManager. عند الدخول إلى منطقة، يقوم النظام بتنشيط التطبيق حتى في الخلفية أو الحالة المنتهية ويرسل إشعارًا عبر المفوض locationManager:didEnterRegion. عند الخروج من منطقة، يتم استدعاء locationManager:didExitRegion.
import CoreLocation
let locationManager = CLLocationManager()
let region = CLBeaconRegion(
uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)
لتحديد المنطقة (Immediate، Near، Far)، يتم استخدام ranging — مسح المنارات في الوقت الفعلي. على عكس المراقبة، يعمل ranging فقط في وضع التطبيق النشط ويتطلب إذن الموقع. تعيد طريقة locationManager:didRangeBeacons:inRegion مصفوفة CLBeacon بحقول proximity (CLProximity.immediate، .near، .far، .unknown)، accuracy (المسافة المعايرة بالأمتار) وrssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Immediate proximity")
case .near:
print("Near proximity")
case .far:
print("Far proximity")
default:
print("Unknown proximity")
}
}
}
لا يدعم Android iBeacon بشكل مبني، لأن البروتوكول هو حل ملكي من Apple. ولكن باستخدام مكتبات جهات ثالثة مثل AltBeacon من Radius Networks (التي أصبحت الآن جزءًا من منظمة Open Beacon)، يمكن للمطورين دمج iBeacon في تطبيقات Android. تقوم مكتبة AltBeacon بتنفيذ مسح حزم BLE، وتحليل تنسيق iBeacon، ومحاكاة ranging ومراقبة المناطق المماثلة لـ API لـ iOS.
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
BeaconParser().setBeaconLayout(
"m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
)
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)
يتم تحديد تنسيق تحليل iBeacon في مكتبة AltBeacon بواسطة سلسلة layout: «m:2-3=0215» — التحقق من بايتين من علامة iBeacon، «i:4-19» — UUID بحجم 16 بايت، «i:20-21» — Major، «i:22-23» — Minor، «p:24-24» — TX Power. يدعم نفس التنسيق Eddystone وبروتوكولات أخرى، مما يجعل AltBeacon مكتبة عالمية للعمل مع منارات BLE على Android.
على Android، للعمل مع iBeacon ثلاثة قيود رئيسية: المسح في الخلفية مقيد من قبل المصنعين (Xiaomi، Huawei، Samsung غالبًا ما تقتل العمليات الخلفية)، دقة RSSI أقل من iOS نتيجة لاختلافات في حزم BLE، ويتطلب المسح إذن ACCESS_FINE_LOCATION منذ Android 6.0 وBLUETOOTH_SCAN منذ Android 12.
Eddystone هو بروتوكول مفتوح لمنارات BLE من Google، طرح في 2015. على عكس iBeacon، يدعم Eddystone أربعة أنواع من الحزم: Eddystone-UID (معرف ثابت)، Eddystone-URL (نقل URL لـ Physical Web)، Eddystone-TLM (قياسات المنارة — مستوى البطارية، درجة الحرارة) وEddystone-EID (معرف مشفر للحماية من الاستنساخ). على الرغم من أن Google أوقفت تطوير Physical Web في 2022، لا يزال بروتوكول Eddystone يستخدم في الحلول المؤسسية.
| المعلمة | iBeacon | Eddystone |
|---|---|---|
| المالك | Apple | Google (مفتوح) |
| أنواع الحزم | 1 (UID) | 4 (UID، URL، TLM، EID) |
| البيانات | UUID+Major+Minor | ID/URL + قياسات |
| الدعم الأصلي في iOS | نعم (CoreLocation) | لا (عبر CoreBluetooth) |
| Physical Web | لا | نعم (Eddystone-URL) |
| الأمان | بدون تشفير | EID مع تدوير المفاتيح |
يعتمد الاختيار بين iBeacon وEddystone على المنصة المستهدفة وحالة الاستخدام. iBeacon مفضل لتطبيقات iOS بفضل التكامل الأصلي مع CoreLocation ومراقبة المناطق في الخلفية. Eddystone أكثر ملائمة للمشاريع الموجهة لـ Android وسيناريوهات Physical Web، حيث تنقل المنارة URL دون حاجة لتثبيت تطبيق. للمشاريع عبر المنصات، يتم استخدام AltBeacon بشكل متكرر، وهو يدعم كلا البروتوكولين.
عند تنفيذ iBeacon، يواجه المطورون عددًا من القيود التي يجب مراعاتها في مرحلة تصميم المعمارية. يؤدي عدم مراعاة هذه العوامل إلى عدم استقرار التنقل، وتنبيهات كاذبة واستنزاف أسرع لبطارية المنارة من المتوقع.
مستوى الإشارة RSSI عرض لتقلبات كبيرة نتيجة للانعكاسات عن الجدران والهياكل المعدنية ووجود الأشخاص وأجهزة لاسلكية أخرى في نطاق 2.4 جيجاهرتز. داخل المباني، يمكن أن يصل تباين RSSI لمنارة واحدة إلى 10-15 dBm في الدقيقة، مما يجعل حساب المسافة غير دقيق دون استخدام مرشحات (تملس المتوسط المتحرك، ترشيح كالمان).
يدعم iOS مراقبة لا تزيد عن 20 منطقة في نفس الوقت لكل تطبيق. بالنسبة للمشاريع التي تتطلب تغطية مساحة كبيرة (مطار، ملعب)، هذا غير كاف. الحل هو استخدام التبديل الديناميكي للمناطق: عند الدخول إلى منطقة، تتفعل المناطق المجاورة وتتعطل البعيدة.
يمكن أن تتراوح التأخير بين دخول المنطقة واستلام الإشعار من 1 إلى 30 ثانية حسب الظروف. يقوم iOS بمسح المنارات بشكل دوري للحفاظ على البطارية، لذلك لا يجب التوقع استجابة فورية. للسيناريوهات الحساسة للوقت (فتح الباب عند الاقتراب)، يوصى باستخدام Immediate ranging، ولكنه يعمل فقط في وضع التطبيق النشط.
الأسئلة الشائعة
iBeacon هو بروتوكول Apple لمنارات Bluetooth Low Energy، يسمح لأجهزة iOS وAndroid بتحديد موقعها داخل المباني بدقة سنتيمتر بناءً على تحليل قوة الإشارة (RSSI) لحزم BLE المنقولة.
Bluetooth هو بروتوكول اتصال لاسلكي عام لنقل البيانات بين الأجهزة يتطلب إقرانًا. iBeacon هو بروتوكول متخصص فوق BLE، مصمم حصريًا للإرسال الإذاعي للمعرفات دون إنشاء اتصال. منارات iBeacon لا تنقل البيانات — فقط تعلن عن وجودها.
iBeacon يعمل في وضع Advertising — تقوم المنارة ببث حزم BLE باستمرار تحتوي على معلومات المعرف. يستقبل الجهاز الحزمة ولكن لا يتصل بالمنارة. وهذا يسمح بتوفير بطارية المنارة ( حتى 2-3 سنوات من CR2032) واكتشاف المنارات بشكل سلبي دون مسح نشط.
لا، iBeacon غير مصمم لتتبع الأجهزة. منارات iBeacon هي أجهزة إرسال ثابتة، ويعمل iPhone كمستقبل. لا يقوم iPhone بإرسال إشارات iBeacon (باستثناء ميزة Find My التي تستخدم بروتوكولاً مختلفًا قائمًا على BLE). للعثور على الهاتف تستخدم تقنيات أخرى (شبكة Find My، UWB).
يعتمد نطاق iBeacon على إعدادات المنارة وظروف البيئة. النطاق النموذجي: Immediate — حتى 0.5 م، Near — حتى 3 م، Far — حتى 30-50 م. مع معززات الإشارة وفي المساحات المفتوحة، يمكن أن يصل النطاق إلى 70 م، ولكن دقة تحديد المسافة عند هذا النطاق تكون ضئيلة.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.