summaryrefslogtreecommitdiff
path: root/makima/ios/docs/RELEASING.md
blob: 4d4513deed7ac70dbdf3b3755a46efcb20d1dde6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Releasing Makima iOS

App Store Connect organisation: **Soryu LTD**
Bundle ID: `co.soryu.makima`
Scheme: `Makima`

## Pre-flight

1. Update `CURRENT_PROJECT_VERSION` and `MARKETING_VERSION` in `project.yml`.
2. `make xcgen`
3. `make test` — must pass.
4. Visual smoke test against `makima.jp`:
   - Fresh install → onboarding → home renders with 5 cards
   - Tap Contracts → list → detail → task → output shows polled + live events
   - Settings → rotate key — new key prefix appears in masked line
5. Check `Info.plist`:
   - `ITSAppUsesNonExemptEncryption` = `NO` (HTTPS + APNs only; no custom crypto)
   - `NSAppTransportSecurity.NSAllowsArbitraryLoads` = `NO`
   - `CFBundleURLTypes` contains `makima://` scheme

## Archive + upload

```bash
make xcgen
xcodebuild -project Makima.xcodeproj \
  -scheme Makima \
  -configuration Release \
  -destination 'generic/platform=iOS' \
  -archivePath build/Makima.xcarchive \
  archive

xcodebuild -exportArchive \
  -archivePath build/Makima.xcarchive \
  -exportOptionsPlist ExportOptions.plist \
  -exportPath build/export
```

`ExportOptions.plist` (not committed — create locally with your team ID):

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>destination</key><string>upload</string>
  <key>method</key><string>app-store-connect</string>
  <key>teamID</key><string>YOUR_TEAM_ID</string>
  <key>signingStyle</key><string>automatic</string>
</dict>
</plist>
```

## TestFlight

Internal group "Soryu" gets automatic distribution on every new build.
External group "Makima Early" requires one review cycle; subsequent builds
in the same version string pass through without review.

## App Store submission checklist

- [ ] Privacy policy URL → repo README (no tracking, no analytics, Keychain-only credentials)
- [ ] Category: Developer Tools (mirrors KittyLitter)
- [ ] Pricing: Free (no IAP in v1)
- [ ] Encryption: none beyond OS TLS (ITSAppUsesNonExemptEncryption=NO already set)
- [ ] Screenshots: 6.7" + 6.1" in dark mode, showing Home / Contract detail / Task live / Directives
- [ ] Keywords: makima, soryu, orchestration, AI, agent, codex, claude, devops

## Versioning

Semver for marketing version. Bump build number (`CURRENT_PROJECT_VERSION`)
on every TestFlight upload, bump marketing version on user-visible releases.