mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 16:14:44 +00:00
Restores first-use iOS authorization prompts for Contacts, Calendar, and Reminders by adding the missing usage descriptions, requesting access from `.notDetermined` in the service paths, and adding Settings Privacy & Access status/actions. Verification: - `plutil -lint apps/ios/Sources/Info.plist apps/ios/Tests/Info.plist apps/ios/ShareExtension/Info.plist apps/ios/ActivityWidget/Info.plist apps/ios/WatchApp/Info.plist apps/ios/WatchExtension/Info.plist` - `swiftformat --lint apps/ios/Sources/Permissions/PermissionRequestBridge.swift apps/ios/Sources/Contacts/ContactsService.swift apps/ios/Sources/Calendar/CalendarService.swift apps/ios/Sources/Reminders/RemindersService.swift apps/ios/Sources/Settings/PrivacyAccessSectionView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/shared/OpenClawKit/Sources/OpenClawKit/DeepLinks.swift --config config/swiftformat` - `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Permissions/PermissionRequestBridge.swift apps/ios/Sources/Contacts/ContactsService.swift apps/ios/Sources/Calendar/CalendarService.swift apps/ios/Sources/Reminders/RemindersService.swift apps/ios/Sources/Settings/PrivacyAccessSectionView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Tests/PermissionRequestBridgeTests.swift` - `git diff --check origin/main...HEAD` - `rg '<<<<<<<|=======|>>>>>>>' CHANGELOG.md apps/ios apps/shared/OpenClawKit/Sources/OpenClawKit/DeepLinks.swift` - `pnpm ios:build` - `xcodebuild test -project apps/ios/OpenClaw.xcodeproj -scheme OpenClaw -destination 'platform=iOS Simulator,name=iPhone 17' -configuration Debug -only-testing:OpenClawTests/PermissionRequestBridgeTests` - Fresh-erased iPhone 17 simulator proof for Contacts denial/Open Settings, Calendar add-only/full-access upgrade, and Reminders authorization prompts. Not tested: physical device, or a paired gateway command invocation after onboarding.
117 lines
4.5 KiB
Plaintext
117 lines
4.5 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
|
<array>
|
|
<string>ai.openclaw.ios.bgrefresh</string>
|
|
</array>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
<key>CFBundleDisplayName</key>
|
|
<string>OpenClaw</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$(EXECUTABLE_NAME)</string>
|
|
<key>CFBundleIconName</key>
|
|
<string>AppIcon</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>$(PRODUCT_NAME)</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>$(OPENCLAW_MARKETING_VERSION)</string>
|
|
<key>OpenClawCanonicalVersion</key>
|
|
<string>$(OPENCLAW_IOS_VERSION)</string>
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>ai.openclaw.ios</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>openclaw</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
<key>CFBundleVersion</key>
|
|
<string>$(OPENCLAW_BUILD_VERSION)</string>
|
|
<key>ITSAppUsesNonExemptEncryption</key>
|
|
<false/>
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsArbitraryLoadsInWebContent</key>
|
|
<true/>
|
|
</dict>
|
|
<key>NSBonjourServices</key>
|
|
<array>
|
|
<string>_openclaw-gw._tcp</string>
|
|
</array>
|
|
<key>NSCameraUsageDescription</key>
|
|
<string>OpenClaw can capture photos or short video clips when requested via the gateway.</string>
|
|
<key>NSCalendarsUsageDescription</key>
|
|
<string>OpenClaw uses your calendars to show events and scheduling context when you enable calendar access.</string>
|
|
<key>NSCalendarsFullAccessUsageDescription</key>
|
|
<string>OpenClaw uses your calendars to show events and scheduling context when you enable calendar access.</string>
|
|
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
|
|
<string>OpenClaw uses your calendars to add events when you enable calendar access.</string>
|
|
<key>NSContactsUsageDescription</key>
|
|
<string>OpenClaw uses your contacts so you can search and reference people while using the assistant.</string>
|
|
<key>NSLocalNetworkUsageDescription</key>
|
|
<string>OpenClaw discovers and connects to your OpenClaw gateway on the local network.</string>
|
|
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
|
|
<string>OpenClaw can share your location in the background when you enable Always.</string>
|
|
<key>NSLocationWhenInUseUsageDescription</key>
|
|
<string>OpenClaw uses your location when you allow location sharing.</string>
|
|
<key>NSMicrophoneUsageDescription</key>
|
|
<string>OpenClaw needs microphone access for voice wake.</string>
|
|
<key>NSMotionUsageDescription</key>
|
|
<string>OpenClaw may use motion data to support device-aware interactions and automations.</string>
|
|
<key>NSPhotoLibraryUsageDescription</key>
|
|
<string>OpenClaw needs photo library access when you choose existing photos to share with your assistant.</string>
|
|
<key>NSRemindersFullAccessUsageDescription</key>
|
|
<string>OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access.</string>
|
|
<key>NSSpeechRecognitionUsageDescription</key>
|
|
<string>OpenClaw uses on-device speech recognition for voice wake.</string>
|
|
<key>NSSupportsLiveActivities</key>
|
|
<true/>
|
|
<key>OpenClawPushAPNsEnvironment</key>
|
|
<string>$(OPENCLAW_PUSH_APNS_ENVIRONMENT)</string>
|
|
<key>OpenClawPushDistribution</key>
|
|
<string>$(OPENCLAW_PUSH_DISTRIBUTION)</string>
|
|
<key>OpenClawPushRelayBaseURL</key>
|
|
<string>$(OPENCLAW_PUSH_RELAY_BASE_URL)</string>
|
|
<key>OpenClawPushTransport</key>
|
|
<string>$(OPENCLAW_PUSH_TRANSPORT)</string>
|
|
<key>UIApplicationSceneManifest</key>
|
|
<dict>
|
|
<key>UIApplicationSupportsMultipleScenes</key>
|
|
<false/>
|
|
</dict>
|
|
<key>UIBackgroundModes</key>
|
|
<array>
|
|
<string>audio</string>
|
|
<string>remote-notification</string>
|
|
</array>
|
|
<key>UILaunchScreen</key>
|
|
<dict/>
|
|
<key>UISupportedInterfaceOrientations</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
<key>UISupportedInterfaceOrientations~ipad</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
</dict>
|
|
</plist>
|