name: Clawdis options: bundleIdPrefix: com.steipete.clawdis deploymentTarget: iOS: "17.0" xcodeVersion: "16.0" packages: ClawdisKit: path: ../shared/ClawdisKit schemes: Clawdis: shared: true build: targets: Clawdis: all test: targets: - ClawdisTests targets: Clawdis: type: application platform: iOS sources: - path: Sources dependencies: - package: ClawdisKit - package: ClawdisKit product: ClawdisChatUI preBuildScripts: - name: SwiftFormat (lint) script: | set -euo pipefail 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" \ "$SRCROOT/Sources" \ "$SRCROOT/../shared/ClawdisKit/Sources" - name: SwiftLint script: | set -euo pipefail 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" settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.steipete.clawdis.ios SWIFT_VERSION: "6.0" info: path: Sources/Info.plist properties: CFBundleDisplayName: Clawdis CFBundleIconName: AppIcon UILaunchScreen: {} UIApplicationSceneManifest: UIApplicationSupportsMultipleScenes: false UIBackgroundModes: - audio NSLocalNetworkUsageDescription: Clawdis discovers and connects to your Clawdis bridge on the local network. NSBonjourServices: - _clawdis-bridge._tcp NSCameraUsageDescription: Clawdis can capture photos or short video clips when requested via the bridge. NSMicrophoneUsageDescription: Clawdis needs microphone access for voice wake. NSSpeechRecognitionUsageDescription: Clawdis uses on-device speech recognition for voice wake. ClawdisTests: type: bundle.unit-test platform: iOS sources: - path: Tests dependencies: - target: Clawdis settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.steipete.clawdis.ios.tests SWIFT_VERSION: "6.0" TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Clawdis.app/Clawdis" BUNDLE_LOADER: "$(TEST_HOST)" info: path: Tests/Info.plist properties: CFBundleDisplayName: ClawdisTests