- 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
159 lines
3.9 KiB
YAML
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
|