name: OpenClaw options: bundleIdPrefix: ai.openclaw deploymentTarget: iOS: "18.0" xcodeVersion: "16.0" settings: base: SWIFT_VERSION: "6.0" packages: OpenClawKit: path: ../shared/OpenClawKit Swabble: path: ../../Swabble schemes: OpenClaw: shared: true build: targets: OpenClaw: all test: targets: - OpenClawTests targets: OpenClaw: type: application platform: iOS configFiles: Debug: Signing.xcconfig Release: Signing.xcconfig sources: - path: Sources dependencies: - target: OpenClawShareExtension embed: true - target: OpenClawWatchApp - package: OpenClawKit - package: OpenClawKit product: OpenClawChatUI - package: OpenClawKit product: OpenClawProtocol - 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_ENTITLEMENTS: Sources/OpenClaw.entitlements CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)" DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)" PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_APP_BUNDLE_ID)" PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_APP_PROFILE)" SWIFT_VERSION: "6.0" SWIFT_STRICT_CONCURRENCY: complete ENABLE_APPINTENTS_METADATA: NO info: path: Sources/Info.plist properties: CFBundleDisplayName: OpenClaw CFBundleIconName: AppIcon CFBundleURLTypes: - CFBundleURLName: ai.openclaw.ios CFBundleURLSchemes: - openclaw CFBundleShortVersionString: "2026.2.20" CFBundleVersion: "20260220" UILaunchScreen: {} UIApplicationSceneManifest: UIApplicationSupportsMultipleScenes: false UIBackgroundModes: - audio - remote-notification NSLocalNetworkUsageDescription: OpenClaw discovers and connects to your OpenClaw gateway on the local network. NSAppTransportSecurity: NSAllowsArbitraryLoadsInWebContent: true NSBonjourServices: - _openclaw-gw._tcp NSCameraUsageDescription: OpenClaw can capture photos or short video clips when requested via the gateway. NSLocationWhenInUseUsageDescription: OpenClaw uses your location when you allow location sharing. NSLocationAlwaysAndWhenInUseUsageDescription: OpenClaw can share your location in the background when you enable Always. NSMicrophoneUsageDescription: OpenClaw needs microphone access for voice wake. NSSpeechRecognitionUsageDescription: OpenClaw uses on-device speech recognition for voice wake. UISupportedInterfaceOrientations: - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad: - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight OpenClawShareExtension: type: app-extension platform: iOS configFiles: Debug: Signing.xcconfig Release: Signing.xcconfig sources: - path: ShareExtension dependencies: - package: OpenClawKit settings: base: CODE_SIGN_IDENTITY: "Apple Development" CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)" DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)" PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_SHARE_BUNDLE_ID)" PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_SHARE_PROFILE)" SWIFT_VERSION: "6.0" SWIFT_STRICT_CONCURRENCY: complete info: path: ShareExtension/Info.plist properties: CFBundleDisplayName: OpenClaw Share CFBundleShortVersionString: "2026.2.20" CFBundleVersion: "20260220" NSExtension: NSExtensionPointIdentifier: com.apple.share-services NSExtensionPrincipalClass: "$(PRODUCT_MODULE_NAME).ShareViewController" NSExtensionAttributes: NSExtensionActivationRule: NSExtensionActivationSupportsText: true NSExtensionActivationSupportsWebURLWithMaxCount: 1 NSExtensionActivationSupportsImageWithMaxCount: 10 NSExtensionActivationSupportsMovieWithMaxCount: 1 OpenClawWatchApp: type: application.watchapp2 platform: watchOS deploymentTarget: "11.0" sources: - path: WatchApp dependencies: - target: OpenClawWatchExtension configFiles: Debug: Config/Signing.xcconfig Release: Config/Signing.xcconfig settings: base: PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_WATCH_APP_BUNDLE_ID)" info: path: WatchApp/Info.plist properties: CFBundleDisplayName: OpenClaw CFBundleShortVersionString: "2026.2.20" CFBundleVersion: "20260220" WKCompanionAppBundleIdentifier: "$(OPENCLAW_APP_BUNDLE_ID)" WKWatchKitApp: true OpenClawWatchExtension: type: watchkit2-extension platform: watchOS deploymentTarget: "11.0" sources: - path: WatchExtension/Sources dependencies: - sdk: WatchConnectivity.framework - sdk: UserNotifications.framework configFiles: Debug: Config/Signing.xcconfig Release: Config/Signing.xcconfig settings: base: PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_WATCH_EXTENSION_BUNDLE_ID)" info: path: WatchExtension/Info.plist properties: CFBundleDisplayName: OpenClaw CFBundleShortVersionString: "2026.2.20" CFBundleVersion: "20260220" NSExtension: NSExtensionAttributes: WKAppBundleIdentifier: "$(OPENCLAW_WATCH_APP_BUNDLE_ID)" NSExtensionPointIdentifier: com.apple.watchkit OpenClawTests: type: bundle.unit-test platform: iOS sources: - path: Tests dependencies: - target: OpenClaw - package: Swabble product: SwabbleKit - sdk: AppIntents.framework settings: base: PRODUCT_BUNDLE_IDENTIFIER: ai.openclaw.ios.tests SWIFT_VERSION: "6.0" SWIFT_STRICT_CONCURRENCY: complete TEST_HOST: "$(BUILT_PRODUCTS_DIR)/OpenClaw.app/OpenClaw" BUNDLE_LOADER: "$(TEST_HOST)" info: path: Tests/Info.plist properties: CFBundleDisplayName: OpenClawTests CFBundleShortVersionString: "2026.2.20" CFBundleVersion: "20260220"