platform-codebase/features/messaging/ios/project.yml
2026-06-10 17:57:54 -07:00

285 lines
8.2 KiB
YAML

name: LilithMessenger
options:
bundleIdPrefix: com.lilith
deploymentTarget:
iOS: "17.0"
watchOS: "10.0"
xcodeVersion: "16.0"
generateEmptyDirectories: false
createIntermediateGroups: true
packages:
swift-logging:
url: https://forge.black.lan/lilith/swift-logging.git
from: "1.0.0"
swift-coordinator:
url: https://forge.black.lan/lilith/swift-coordinator.git
from: "1.0.0"
swift-realtime:
url: https://forge.black.lan/lilith/swift-realtime.git
from: "1.0.0"
swift-settings:
url: https://forge.black.lan/lilith/swift-settings.git
from: "1.0.0"
swift-design-tokens:
url: https://forge.black.lan/lilith/swift-design-tokens.git
from: "1.0.0"
swift-buttons:
url: https://forge.black.lan/lilith/swift-buttons.git
from: "1.0.0"
swift-forms:
url: https://forge.black.lan/lilith/swift-forms.git
from: "1.0.0"
swift-feedback:
url: https://forge.black.lan/lilith/swift-feedback.git
from: "1.0.0"
swift-layout:
url: https://forge.black.lan/lilith/swift-layout.git
from: "1.0.5"
swift-chat-core:
url: https://forge.black.lan/lilith/swift-chat-core.git
from: "1.0.1"
swift-domain-models:
url: https://forge.black.lan/lilith/swift-domain-models.git
from: "1.0.4"
swift-api-client:
url: https://forge.black.lan/lilith/swift-api-client.git
from: "1.0.0"
swift-rich-cards:
url: https://forge.black.lan/lilith/swift-rich-cards.git
from: "1.0.0"
settings:
base:
SWIFT_VERSION: "5.9"
IPHONEOS_DEPLOYMENT_TARGET: "17.0"
WATCHOS_DEPLOYMENT_TARGET: "10.0"
TARGETED_DEVICE_FAMILY: "1,2,4"
targets:
# MARK: - Shared Framework (iOS + watchOS)
LilithMessengerShared:
type: framework
platform: [iOS, watchOS]
sources:
- path: LilithMessengerShared
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging.shared
GENERATE_INFOPLIST_FILE: "YES"
CODE_SIGN_IDENTITY: "-"
CODE_SIGN_STYLE: Manual
SUPPORTED_PLATFORMS: "iphoneos iphonesimulator watchos watchsimulator"
SUPPORTS_MACCATALYST: "NO"
# MARK: - iOS App
LilithMessenger:
type: application
platform: iOS
sources:
- path: LilithMessenger
excludes:
- "**/*.test.swift"
dependencies:
- target: LilithMessengerShared
- package: swift-logging
product: LilithLogging
- package: swift-coordinator
product: LilithCoordinator
- package: swift-realtime
product: LilithRealtime
- package: swift-settings
product: LilithSettings
- package: swift-design-tokens
product: LilithDesignTokens
- package: swift-buttons
product: LilithButtons
- package: swift-forms
product: LilithForms
- package: swift-feedback
product: LilithFeedback
- package: swift-layout
product: LilithLayout
- package: swift-chat-core
product: MessagingChatCore
- package: swift-domain-models
product: LilithDomainModels
- package: swift-api-client
product: MessagingAPIClient
- package: swift-rich-cards
product: MessagingRichCards
info:
path: LilithMessenger/Info.plist
properties:
CFBundleDisplayName: Lilith Messenger
CFBundleShortVersionString: "1.0.0"
CFBundleVersion: "1"
CFBundleURLTypes:
- CFBundleURLName: com.lilith.messaging.auth
CFBundleURLSchemes:
- lilith-messenger
UILaunchScreen:
UIColorName: ""
UIImageName: ""
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UIBackgroundModes:
- remote-notification
NSPhotoLibraryUsageDescription: "Lilith Messenger needs access to your photo library to send images in conversations."
NSCameraUsageDescription: "Lilith Messenger needs camera access to take photos for conversations."
entitlements:
path: LilithMessenger/LilithMessenger.entitlements
properties:
keychain-access-groups:
- "$(AppIdentifierPrefix)com.lilith.messaging"
com.apple.security.application-groups:
- "group.com.lilith.messaging"
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging
GENERATE_INFOPLIST_FILE: "YES"
INFOPLIST_FILE: LilithMessenger/Info.plist
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
PROVISIONING_PROFILE_SPECIFIER: ""
CODE_SIGN_ENTITLEMENTS: LilithMessenger/LilithMessenger.entitlements
# MARK: - watchOS App
LilithMessengerWatch:
type: application
platform: watchOS
sources:
- path: LilithMessengerWatch
dependencies:
- target: LilithMessengerShared
entitlements:
path: LilithMessengerWatch/LilithMessengerWatch.entitlements
properties:
keychain-access-groups:
- "$(AppIdentifierPrefix)com.lilith.messaging"
com.apple.security.application-groups:
- "group.com.lilith.messaging"
info:
properties:
CFBundleDisplayName: Lilith
CFBundleShortVersionString: "1.0.0"
CFBundleVersion: "1"
WKCompanionAppBundleIdentifier: com.lilith.messaging
WKRunsIndependentlyOfCompanionApp: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging.watchkitapp
GENERATE_INFOPLIST_FILE: "YES"
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
PROVISIONING_PROFILE_SPECIFIER: ""
CODE_SIGN_ENTITLEMENTS: LilithMessengerWatch/LilithMessengerWatch.entitlements
WATCHOS_DEPLOYMENT_TARGET: "10.0"
# MARK: - watchOS Widget Extension
LilithMessengerWatchWidgets:
type: app-extension
platform: watchOS
sources:
- path: LilithMessengerWatchWidgets
dependencies:
- target: LilithMessengerShared
info:
properties:
CFBundleDisplayName: Availability Widget
CFBundleShortVersionString: "1.0.0"
CFBundleVersion: "1"
NSExtension:
NSExtensionPointIdentifier: com.apple.widgetkit-extension
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging.watchkitapp.widgets
GENERATE_INFOPLIST_FILE: "YES"
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
PROVISIONING_PROFILE_SPECIFIER: ""
WATCHOS_DEPLOYMENT_TARGET: "10.0"
# MARK: - Tests
LilithMessengerTests:
type: bundle.unit-test
platform: iOS
sources:
- path: LilithMessengerTests
dependencies:
- target: LilithMessenger
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging.tests
GENERATE_INFOPLIST_FILE: "YES"
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/LilithMessenger.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/LilithMessenger"
BUNDLE_LOADER: "$(TEST_HOST)"
CODE_SIGN_IDENTITY: "-"
CODE_SIGN_STYLE: Manual
LilithMessengerUITests:
type: bundle.ui-testing
platform: iOS
sources:
- path: LilithMessengerUITests
dependencies:
- target: LilithMessenger
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.lilith.messaging.uitests
GENERATE_INFOPLIST_FILE: "YES"
TEST_TARGET_NAME: LilithMessenger
CODE_SIGN_IDENTITY: "-"
CODE_SIGN_STYLE: Manual
schemes:
LilithMessenger:
build:
targets:
LilithMessengerShared: all
LilithMessenger: all
LilithMessengerTests: [test]
LilithMessengerUITests: [test]
run:
config: Debug
simulateLocation: false
commandLineArguments:
"--dev": false
test:
config: Debug
gatherCoverageData: true
targets:
- LilithMessengerTests
- LilithMessengerUITests
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
LilithMessengerWatch:
build:
targets:
LilithMessengerShared: all
LilithMessengerWatch: all
LilithMessengerWatchWidgets: all
run:
config: Debug
profile:
config: Release
analyze:
config: Debug
archive:
config: Release