mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
231 lines
7.6 KiB
YAML
231 lines
7.6 KiB
YAML
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"
|