docs: log KC-7 (iPad launch-screen upload failure) + fast-fix checklist
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -215,3 +215,47 @@ Files: `CalendarView.swift`, `NotificationManager.swift`.
|
||||
alert may double (system + KisaniCal). Feed events (F1/TV) are the main win.
|
||||
- Tapping a calendar notification opens the Today view (no calendar deeplink).
|
||||
- The 7-day window re-scans on each foreground; no background refresh beyond that.
|
||||
|
||||
---
|
||||
|
||||
## KC-7 — App Store upload: "iPad Multitasking must provide a launch screen"
|
||||
|
||||
**Status:** Resolved (fix in `72f4566`; re-archive required to ship)
|
||||
**Reported by:** User (App Store / Transporter validation)
|
||||
**Area:** Build / App Store
|
||||
|
||||
### Symptom
|
||||
Upload fails validation:
|
||||
> Invalid bundle. Apps that support Multitasking on iPad must provide the app's
|
||||
> launch screen using an Xcode storyboard, or using UILaunchScreen … Verify that
|
||||
> the UILaunchStoryboardName key is included in your com.kutesir.KisaniCal bundle.
|
||||
|
||||
### Root cause
|
||||
The app targets iPad (`TARGETED_DEVICE_FAMILY = "1,2"`) with multitasking
|
||||
(`UIApplicationSupportsMultipleScenes = true`), but `project.yml` had
|
||||
`INFOPLIST_KEY_UILaunchStoryboardName: ""` (empty) and no `UILaunchScreen` —
|
||||
so the bundle shipped no valid launch screen.
|
||||
|
||||
### Fix
|
||||
- Added `KisaniCal/LaunchScreen.storyboard` (blank, `systemBackgroundColor`).
|
||||
- `project.yml`: `INFOPLIST_KEY_UILaunchStoryboardName: LaunchScreen`.
|
||||
- `xcodegen generate`. Verified a clean **Release** build emits
|
||||
`UILaunchStoryboardName = LaunchScreen` and ships `LaunchScreen.storyboardc`.
|
||||
|
||||
### ⚡ If it happens again — solve it fast
|
||||
This error almost always recurs because a **stale archive** was uploaded, NOT
|
||||
because the code is wrong. Checklist:
|
||||
1. Confirm the fix is present:
|
||||
`grep UILaunchStoryboardName project.yml` → must be `LaunchScreen` (not `""`).
|
||||
`git log --oneline -- KisaniCal/LaunchScreen.storyboard` → should show `72f4566`.
|
||||
2. If Xcode was open, **reload the project** (xcodegen rewrites `.xcodeproj`).
|
||||
3. **Product → Clean Build Folder (⇧⌘K)** — a cached build folder re-emits the old
|
||||
Info.plist. This is the step people skip.
|
||||
4. **Bump `CURRENT_PROJECT_VERSION`** in `project.yml` + `xcodegen generate`
|
||||
(a failed upload can "use up" the build number).
|
||||
5. Re-Archive → Validate → Distribute.
|
||||
6. Sanity check any archive:
|
||||
`/usr/libexec/PlistBuddy -c "Print :UILaunchStoryboardName" <App>.app/Info.plist`
|
||||
and `ls <App>.app | grep LaunchScreen` (expect `LaunchScreen.storyboardc`).
|
||||
|
||||
Committed: fix `72f4566`, build-number bump `345415e`.
|
||||
|
||||
Reference in New Issue
Block a user