Files
Kordant/iOS/project.yml
Michael Freno e33ddf3002 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
2026-06-02 15:01:38 -04:00

138 lines
3.2 KiB
YAML

# XcodeGen Configuration for Kordant iOS App
name: Kordant
options:
xcodeIndentationWidth: 4
tabWidth: 4
usesTabs: false
bundleIdPrefix: com.frenocorp
deploymentTarget:
iOS: "17.0"
settings:
base:
MARKETING_VERSION: 1.0.0
CURRENT_PROJECT_VERSION: 1
SWIFT_VERSION: "5.9"
ENABLE_PREVIEWS: YES
AUTOMATIC_SIGNING: NO
TARGETED_DEVICE_FAMILY: "1,2"
packages:
Collections:
url: https://github.com/apple/swift-collections
from: "1.0.0"
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:
type: application
platform: iOS
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: Info.plist
dependencies:
- target: KordantWidgets
- package: Collections
product: Collections
- package: Algorithms
product: Algorithms
- package: GoogleSignIn
product: GoogleSignIn
preBuildScripts:
- name: SwiftLint
script: |
if which swiftlint >/dev/null 2>&1; then
swiftlint lint --quiet || true
else
echo "warning: SwiftLint not installed, run 'brew install swiftlint' to enable linting"
fi
showEnvVarsInLog: false
basedOnDependencyAnalysis: false
KordantTests:
type: bundle.unit-test
platform: iOS
deploymentTarget: "17.0"
sources:
- path: KordantTests
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.frenocorp.KordantTests
GENERATE_INFOPLIST_FILE: YES
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
deploymentTarget: "17.0"
sources:
- path: KordantUITests
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.frenocorp.KordantUITests
GENERATE_INFOPLIST_FILE: YES
dependencies:
- target: Kordant
schemes:
Kordant:
build:
targets:
Kordant: all
KordantWidgets: all
KordantTests: [test]
KordantUITests: [test]
run:
config: Debug
test:
config: Debug
targets:
- KordantTests
- KordantUITests
profile:
config: Release
analyze:
config: Debug
archive:
config: Release