feat: complete Tasks 21-28 — backend integration, security hardening, UI tests & CI

- Add Apple Sign-In backend (JWKS verification, account linking, session management)
- Implement push notification deep linking with NotificationDeepLinkRouter
- Add jailbreak detection, runtime integrity monitoring, secure enclave service
- Implement OAuth social login, token refresh, and secure logout flows
- Add image caching (memory/disk), optimizer, upload queue, async semaphore
- Implement notification analytics, type preferences, and category setup
- Expand UI test suite with UITestBase, accessibility, auth flow, performance tests
- Add CI pipeline for iOS UI tests (3 device sizes) and performance benchmarks
- Restructure Xcode project to manual groups with KordantWidgets target
- Add SwiftLint, Swift Collections/Algorithms/GoogleSignIn dependencies
- Update project.yml for XcodeGen with new targets and configurations
This commit is contained in:
2026-06-02 15:01:38 -04:00
parent ab0d4857db
commit e33ddf3002
49 changed files with 10472 additions and 421 deletions

View File

@@ -26,6 +26,9 @@ packages:
Algorithms:
url: https://github.com/apple/swift-algorithms
from: "1.0.0"
GoogleSignIn:
url: https://github.com/google/GoogleSignIn-iOS
from: "7.0.0"
targets:
Kordant:
@@ -34,19 +37,27 @@ targets:
deploymentTarget: "17.0"
sources:
- path: Kordant
includes:
- "**/*.swift"
- "**/*.strings"
- "PrivacyInfo.xcprivacy"
excludes:
- "**/*.xcodeproj"
- path: Sources/Shared
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.frenocorp.kordant
PRODUCT_NAME: Kordant
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES
INFOPLIST_FILE: Kordant/Info.plist
INFOPLIST_FILE: Info.plist
dependencies:
- target: KordantWidgets
- package: Collections
product: Collections
- package: Algorithms
product: Algorithms
- package: GoogleSignIn
product: GoogleSignIn
preBuildScripts:
- name: SwiftLint
script: |
@@ -71,6 +82,25 @@ targets:
dependencies:
- target: Kordant
KordantWidgets:
type: app-extension
platform: iOS
deploymentTarget: "17.0"
sources:
- path: KordantWidgets
includes:
- "**/*.swift"
- "PrivacyInfo.xcprivacy"
- path: Sources/Shared
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.frenocorp.kordant.widgets
PRODUCT_NAME: KordantWidgets
SKIP_INSTALL: YES
INFOPLIST_FILE: KordantWidgets/Info.plist
CODE_SIGN_ENTITLEMENTS: KordantWidgets/KordantWidgets.entitlements
SWIFT_VERSION: "5.9"
KordantUITests:
type: bundle.ui-testing
platform: iOS
@@ -89,6 +119,7 @@ schemes:
build:
targets:
Kordant: all
KordantWidgets: all
KordantTests: [test]
KordantUITests: [test]
run: