Files
bot/apps/ios/project.yml
8a443af84c feat(ios): add Live Activity connection status + stale cleanup (#33591)
* feat(ios): add live activity connection status and cleanup

Add lock-screen/Dynamic Island connection health states and prune duplicate/stale activities before reuse. This intentionally excludes AI/title generation and heavier UX rewrites from #27488.

Co-authored-by: leepokai <[email protected]>

* fix(ios): treat ended live activities as inactive

* chore(changelog): add PR reference and author thanks

---------

Co-authored-by: leepokai <[email protected]>
2026-03-04 07:44:42 +00:00

137 lines
4.4 KiB
YAML

name: Bot
options:
bundleIdPrefix: ai.hanzo.bot
deploymentTarget:
iOS: "18.0"
xcodeVersion: "16.0"
settings:
base:
SWIFT_VERSION: "6.0"
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
packages:
BotKit:
path: ../shared/BotKit
Swabble:
path: ../../Swabble
schemes:
Bot:
shared: true
build:
targets:
Bot: all
test:
targets:
- BotTests
targets:
Bot:
type: application
platform: iOS
sources:
- path: Sources
dependencies:
- package: BotKit
- package: BotKit
product: BotChatUI
- package: BotKit
product: BotProtocol
- package: Swabble
product: SwabbleKit
- sdk: AppIntents.framework
preBuildScripts:
- name: SwiftFormat (lint)
basedOnDependencyAnalysis: false
inputFileLists:
- $(SRCROOT)/SwiftSources.input.xcfilelist
script: |
set -euo pipefail
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
if ! command -v swiftformat >/dev/null 2>&1; then
echo "error: swiftformat not found (brew install swiftformat)" >&2
exit 1
fi
swiftformat --lint --config "$SRCROOT/../../.swiftformat" \
--filelist "$SRCROOT/SwiftSources.input.xcfilelist"
- name: SwiftLint
basedOnDependencyAnalysis: false
inputFileLists:
- $(SRCROOT)/SwiftSources.input.xcfilelist
script: |
set -euo pipefail
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
if ! command -v swiftlint >/dev/null 2>&1; then
echo "error: swiftlint not found (brew install swiftlint)" >&2
exit 1
fi
swiftlint lint --config "$SRCROOT/.swiftlint.yml" --use-script-input-file-lists
settings:
base:
CODE_SIGN_IDENTITY: "Apple Development"
CODE_SIGN_STYLE: Manual
DEVELOPMENT_TEAM: Y5PE65HELJ
PRODUCT_BUNDLE_IDENTIFIER: ai.hanzo.bot.ios
PROVISIONING_PROFILE_SPECIFIER: "ai.hanzo.bot.ios Development"
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
ENABLE_APPINTENTS_METADATA: NO
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
info:
path: Sources/Info.plist
properties:
CFBundleDisplayName: Hanzo Bot
CFBundleIconName: AppIcon
CFBundleShortVersionString: "2026.2.16"
CFBundleVersion: "20260216"
UILaunchScreen: {}
UIApplicationSceneManifest:
UIApplicationSupportsMultipleScenes: false
UIBackgroundModes:
- audio
NSLocalNetworkUsageDescription: Bot discovers and connects to your Bot gateway on the local network.
NSAppTransportSecurity:
NSAllowsArbitraryLoadsInWebContent: true
NSBonjourServices:
- _bot-gw._tcp
NSCameraUsageDescription: Bot can capture photos or short video clips when requested via the gateway.
NSLocationWhenInUseUsageDescription: Bot uses your location when you allow location sharing.
NSLocationAlwaysAndWhenInUseUsageDescription: Bot can share your location in the background when you enable Always.
NSMicrophoneUsageDescription: Bot needs microphone access for voice wake.
NSSpeechRecognitionUsageDescription: Bot uses on-device speech recognition for voice wake.
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
BotTests:
type: bundle.unit-test
platform: iOS
sources:
- path: Tests
dependencies:
- target: Bot
- package: Swabble
product: SwabbleKit
- sdk: AppIntents.framework
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: ai.bot.ios.tests
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Bot.app/Bot"
BUNDLE_LOADER: "$(TEST_HOST)"
info:
path: Tests/Info.plist
properties:
CFBundleDisplayName: Hanzo BotTests
CFBundleShortVersionString: "2026.2.16"
CFBundleVersion: "20260216"