mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 14:04:46 +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.
121 lines
5.5 KiB
Plaintext
121 lines
5.5 KiB
Plaintext
Sources/Calendar/CalendarService.swift
|
|
Sources/Camera/CameraController.swift
|
|
Sources/Capabilities/NodeCapabilityRouter.swift
|
|
Sources/Chat/ChatSheet.swift
|
|
Sources/Chat/IOSGatewayChatTransport.swift
|
|
Sources/Contacts/ContactsService.swift
|
|
Sources/Device/DeviceInfoHelper.swift
|
|
Sources/Device/DeviceStatusService.swift
|
|
Sources/Device/NetworkStatusService.swift
|
|
Sources/Device/NodeDisplayName.swift
|
|
Sources/EventKit/EventKitAuthorization.swift
|
|
Sources/Gateway/DeepLinkAgentPromptAlert.swift
|
|
Sources/Gateway/ExecApprovalPromptDialog.swift
|
|
Sources/Gateway/GatewayConnectConfig.swift
|
|
Sources/Gateway/GatewayConnectionController.swift
|
|
Sources/Gateway/GatewayConnectionIssue.swift
|
|
Sources/Gateway/GatewayDiscoveryDebugLogView.swift
|
|
Sources/Gateway/GatewayDiscoveryModel.swift
|
|
Sources/Gateway/GatewayHealthMonitor.swift
|
|
Sources/Gateway/GatewayProblemView.swift
|
|
Sources/Gateway/GatewayQuickSetupSheet.swift
|
|
Sources/Gateway/GatewayServiceResolver.swift
|
|
Sources/Gateway/GatewaySettingsStore.swift
|
|
Sources/Gateway/GatewayTrustPromptAlert.swift
|
|
Sources/Gateway/KeychainStore.swift
|
|
Sources/Gateway/TCPProbe.swift
|
|
Sources/HomeToolbar.swift
|
|
Sources/LiveActivity/LiveActivityManager.swift
|
|
Sources/LiveActivity/OpenClawActivityAttributes.swift
|
|
Sources/Location/LocationService.swift
|
|
Sources/Location/SignificantLocationMonitor.swift
|
|
Sources/Media/PhotoLibraryService.swift
|
|
Sources/Model/NodeAppModel+Canvas.swift
|
|
Sources/Model/NodeAppModel+WatchNotifyNormalization.swift
|
|
Sources/Model/NodeAppModel.swift
|
|
Sources/Model/WatchReplyCoordinator.swift
|
|
Sources/Motion/MotionService.swift
|
|
Sources/Onboarding/GatewayOnboardingView.swift
|
|
Sources/Onboarding/OnboardingStateStore.swift
|
|
Sources/Onboarding/OnboardingWizardView.swift
|
|
Sources/Onboarding/QRScannerView.swift
|
|
Sources/OpenClawApp.swift
|
|
Sources/Permissions/PermissionRequestBridge.swift
|
|
Sources/Push/ExecApprovalNotificationBridge.swift
|
|
Sources/Push/BackgroundAliveBeacon.swift
|
|
Sources/Push/PushBuildConfig.swift
|
|
Sources/Push/PushRegistrationManager.swift
|
|
Sources/Push/PushRelayClient.swift
|
|
Sources/Push/PushRelayKeychainStore.swift
|
|
Sources/Reminders/RemindersService.swift
|
|
Sources/RootCanvas.swift
|
|
Sources/RootTabs.swift
|
|
Sources/RootView.swift
|
|
Sources/Screen/ScreenController.swift
|
|
Sources/Screen/ScreenRecordService.swift
|
|
Sources/Screen/ScreenTab.swift
|
|
Sources/Screen/ScreenWebView.swift
|
|
Sources/Services/NodeServiceProtocols.swift
|
|
Sources/Services/NotificationService.swift
|
|
Sources/Services/WatchConnectivityTransport.swift
|
|
Sources/Services/WatchMessagingPayloadCodec.swift
|
|
Sources/Services/WatchMessagingService.swift
|
|
Sources/SessionKey.swift
|
|
Sources/Settings/PrivacyAccessSectionView.swift
|
|
Sources/Settings/SettingsNetworkingHelpers.swift
|
|
Sources/Settings/SettingsTab.swift
|
|
Sources/Settings/VoiceWakeWordsSettingsView.swift
|
|
Sources/Status/GatewayActionsDialog.swift
|
|
Sources/Status/GatewayStatusBuilder.swift
|
|
Sources/Status/StatusActivityBuilder.swift
|
|
Sources/Status/StatusGlassCard.swift
|
|
Sources/Status/StatusPill.swift
|
|
Sources/Status/VoiceWakeToast.swift
|
|
Sources/Voice/TalkDefaults.swift
|
|
Sources/Voice/TalkModeGatewayConfig.swift
|
|
Sources/Voice/TalkModeManager.swift
|
|
Sources/Voice/TalkOrbOverlay.swift
|
|
Sources/Voice/TalkSpeechLocale.swift
|
|
Sources/Voice/VoiceTab.swift
|
|
Sources/Voice/VoiceWakeManager.swift
|
|
Sources/Voice/VoiceWakePreferences.swift
|
|
ShareExtension/ShareViewController.swift
|
|
ActivityWidget/OpenClawActivityWidgetBundle.swift
|
|
ActivityWidget/OpenClawLiveActivity.swift
|
|
WatchExtension/Sources/OpenClawWatchApp.swift
|
|
WatchExtension/Sources/WatchConnectivityReceiver.swift
|
|
WatchExtension/Sources/WatchInboxStore.swift
|
|
WatchExtension/Sources/WatchInboxView.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatComposer.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatMarkdownRenderer.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatMarkdownPreprocessor.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatMessageViews.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatPayloadDecoding.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatSessions.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatSheets.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatTheme.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatTransport.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift
|
|
../shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/AnyCodable.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/BonjourEscapes.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/BonjourTypes.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/BridgeFrames.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CameraCommands.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CanvasA2UIAction.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CanvasA2UICommands.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CanvasA2UIJSONL.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CanvasCommandParams.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/CanvasCommands.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/Capabilities.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/OpenClawKitResources.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/DeepLinks.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/JPEGTranscoder.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/NodeError.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/ScreenCommands.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/StoragePaths.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/SystemCommands.swift
|
|
../shared/OpenClawKit/Sources/OpenClawKit/TalkDirective.swift
|
|
../swabble/Sources/SwabbleKit/WakeWordGate.swift
|