2.9 KiB
Stepstead — iOS Pedometer Plugin (CMPedometer)
Godot 4 iOS plugin. Pedometer singleton'ı, autoload/pedometer.gd ile aynı
sözleşmeyi sağlar: is_available / start / stop / get_step_count.
Kaynak dosyalar:
pedometer.h,pedometer.mm— singleton + CMPedometer mantığıpedometer_module.h,pedometer_module.mm— init/deinit (singleton kaydı)pedometer.gdip— plugin config (CoreMotion.framework + NSMotionUsageDescription)
⚠️ CMPedometer iOS Simulator'da çalışmaz (
is_available()= false). Gerçek cihaz gerekir → iPhone 13 ile test.
Derleme — godot-ios-plugins harness (Mac, önerilen)
Gereksinim: Mac + Xcode + command line tools + SCons (brew install scons).
# 1. Resmi iOS plugin harness'ını klonla
git clone https://github.com/godotengine/godot-ios-plugins.git
cd godot-ios-plugins
# 2. Godot 4.6 başlık dosyalarını üret (godot kaynağını çeker)
./scripts/generate_headers.sh 4.6.0.stable # repo README'sindeki sürüm formatı
# 3. Bu plugin'i plugins/ altına kopyala
cp -r /path/Stepstead/native/pedometer-ios plugins/pedometer
# 4. Derle (arm64, release) — çıktı bin/pedometer.*.a
scons target=template_release arch=arm64 plugin=pedometer version=4.6
scons target=template_debug arch=arm64 plugin=pedometer version=4.6
SCons komutunun tam imzası harness sürümüne göre değişebilir; repo README'sini esas al. Çatı
plugins/pedometer/altındaki tüm.mmdosyalarını otomatik derler.
Godot projesine ekleme
- Çıktıları projeye koy:
(res://ios/plugins/pedometer/pedometer.a res://ios/plugins/pedometer/pedometer.gdip.gdipzaten bu klasörde —.aile birlikte kopyala.) - Godot: Project > Export > iOS preset'inde Plugins sekmesinde
Pedometerişaretli olmalı. .gdipNSMotionUsageDescription'ı otomatik Info.plist'e ekler. (Apple izni: ilkstart()çağrısında sistem motion izni sorar.)
iPhone 13'e yükleme (gerçek test)
- Godot'ta iOS export → Xcode projesi üretir.
- Xcode'da aç → Signing & Capabilities'da Apple ID (ücretsiz hesap olur, 7 günlük provisioning) ile imzala.
- iPhone 13'ü kabloyla bağla → Xcode'da hedef cihaz seç → Run.
- Oyunda login →
Pedometer.start()(world.gd otomatik çağırır) → sistem "Motion & Fitness" izni sorar → izin ver. - Telefonu cebe at, yürü → adım bakiyesi 30 sn'de bir
/world/sync-stepsile artar (sunucu anti-cheat tavanı 250/dk uygular).
İleride (enhancement)
startPedometerUpdatesFromDate: uygulama açıkken sayar. Arka planda/kapalıyken
atılan adımları toparlamak için queryPedometerDataFromDate:toDate:withHandler:
ile son sync zamanından şu ana kadarki geçmişi çekmek gerekir (iOS 7 günlük
adım geçmişi tutar). MVP'de yok — get_step_count sadece oturum sayımı.