stepstead-client/native/pedometer-ios
jts 6a1706051d İlk commit: Stepstead Godot istemci (4.6 Mobile)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 11:31:35 +03:00
..
pedometer.gdip İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00
pedometer.h İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00
pedometer.mm İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00
pedometer_module.h İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00
pedometer_module.mm İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00
README.md İlk commit: Stepstead Godot istemci (4.6 Mobile) 2026-07-11 11:31:35 +03:00

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 .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ı.