feat: integrate KordantSpamShieldExtension target and complete App Review compliance (Task 28)

- Add KordantSpamShieldExtension target to project.yml with proper
  app-extension type, bundle identifier, and deployment target
- Create CallKit + App Group entitlements for SpamShield extension
- Move SpamDirectoryService to Sources/Shared for cross-target access
- Update app-review-checklist with 5 new technical items (total: 121)
- Update rejection-risk-mitigation with extension build integration
- Add SpamShield extension details to reviewer notes
- Mark Task 24 (push deep links) and Task 28 as complete
This commit is contained in:
2026-06-02 15:04:50 -04:00
parent e33ddf3002
commit 6b729a1334
7 changed files with 171 additions and 8 deletions

View File

@@ -138,11 +138,14 @@
### Call Directory Extension
**Risk**: Extension not enabled by reviewer
**Risk**: Extension not properly integrated in build
**Mitigation**:
- ✅ Extension target added to `project.yml` with proper configuration
- ✅ Entitlements created (CallKit + App Group) for shared data access
-`SpamDirectoryService` moved to `Sources/Shared` for cross-target access
- ✅ Extension is optional — app works without it
- ✅ Clear instructions in SpamShield settings
- ✅ Extension status shown in settings
- ✅ Extension status checked via `CXCallDirectoryManager.getEnabledStatusForExtension`
- ✅ Graceful fallback when extension is not enabled
---
@@ -211,6 +214,8 @@ Before submitting to App Store Review:
- [ ] Build Release configuration
- [ ] Verify no `#if DEBUG` code paths contain visible content
- [ ] Verify no `print()` calls remain outside `#Preview` blocks
- [ ] Verify no force unwraps in production code paths
- [ ] Test on physical device (not just simulator)
- [ ] Verify all deep links work
- [ ] Verify push notifications work
@@ -225,6 +230,8 @@ Before submitting to App Store Review:
- [ ] Verify privacy policy URL works
- [ ] Verify all screenshots match current app UI
- [ ] Verify app preview video is current
- [ ] Verify SpamShield extension target built
- [ ] Verify SpamShield extension entitlements correct
- [ ] Upload via Xcode Organizer or Transporter
- [ ] Fill in App Store Connect metadata
- [ ] Add review notes and demo account