stepstead-client/native/pedometer-ios/README.md
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

75 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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