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

159 lines
3.9 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
- target: KordantSpamShieldExtension
- 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"
KordantSpamShieldExtension:
type: app-extension
platform: iOS
deploymentTarget: "17.0"
sources:
- path: KordantSpamShieldExtension
includes:
- "**/*.swift"
- "PrivacyInfo.xcprivacy"
- path: Sources/Shared
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.frenocorp.kordant.spamshield
PRODUCT_NAME: KordantSpamShieldExtension
SKIP_INSTALL: YES
INFOPLIST_FILE: KordantSpamShieldExtension/Info.plist
CODE_SIGN_ENTITLEMENTS: KordantSpamShieldExtension/KordantSpamShieldExtension.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
KordantSpamShieldExtension: all
KordantTests: [test]
KordantUITests: [test]
run:
config: Debug
test:
config: Debug
targets:
- KordantTests
- KordantUITests
profile:
config: Release
analyze:
config: Debug
archive:
config: Release