# 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`). ```bash # 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 `.mm` > dosyalarını otomatik derler. --- ## Godot projesine ekleme 1. Çıktıları projeye koy: ``` res://ios/plugins/pedometer/pedometer.a res://ios/plugins/pedometer/pedometer.gdip ``` (`.gdip` zaten bu klasörde — `.a` ile birlikte kopyala.) 2. Godot: **Project > Export > iOS** preset'inde **Plugins** sekmesinde `Pedometer` işaretli olmalı. 3. `.gdip` `NSMotionUsageDescription`'ı otomatik Info.plist'e ekler. (Apple izni: ilk `start()` çağrısında sistem motion izni sorar.) --- ## iPhone 13'e yükleme (gerçek test) 1. Godot'ta iOS export → Xcode projesi üretir. 2. Xcode'da aç → **Signing & Capabilities**'da Apple ID (ücretsiz hesap olur, 7 günlük provisioning) ile imzala. 3. iPhone 13'ü kabloyla bağla → Xcode'da hedef cihaz seç → **Run**. 4. Oyunda login → `Pedometer.start()` (world.gd otomatik çağırır) → sistem "Motion & Fitness" izni sorar → izin ver. 5. Telefonu cebe at, yürü → adım bakiyesi 30 sn'de bir `/world/sync-steps` ile 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ı.