fix(ios): eliminate voice wake and xcode build warnings

This commit is contained in:
Peter Steinberger
2026-03-02 04:36:45 +00:00
parent 7073f63610
commit 0a1eac6b0b
2 changed files with 24 additions and 9 deletions

View File

@@ -180,9 +180,7 @@ final class VoiceWakeManager: NSObject {
let micOk = await Self.requestMicrophonePermission() let micOk = await Self.requestMicrophonePermission()
guard micOk else { guard micOk else {
self.statusText = Self.permissionMessage( self.statusText = Self.microphonePermissionMessage(kind: "Microphone")
kind: "Microphone",
status: AVAudioSession.sharedInstance().recordPermission)
self.isListening = false self.isListening = false
return return
} }
@@ -389,8 +387,7 @@ final class VoiceWakeManager: NSObject {
} }
private nonisolated static func requestMicrophonePermission() async -> Bool { private nonisolated static func requestMicrophonePermission() async -> Bool {
let session = AVAudioSession.sharedInstance() switch AVAudioApplication.shared.recordPermission {
switch session.recordPermission {
case .granted: case .granted:
return true return true
case .denied: case .denied:
@@ -402,9 +399,20 @@ final class VoiceWakeManager: NSObject {
} }
return await self.requestPermissionWithTimeout { completion in return await self.requestPermissionWithTimeout { completion in
AVAudioSession.sharedInstance().requestRecordPermission { ok in AVAudioApplication.requestRecordPermission(completionHandler: completion)
completion(ok) }
} }
private nonisolated static func microphonePermissionMessage(kind: String) -> String {
switch AVAudioApplication.shared.recordPermission {
case .denied:
return "\(kind) permission denied"
case .undetermined:
return "\(kind) permission not granted"
case .granted:
return "\(kind) permission denied"
@unknown default:
return "\(kind) permission denied"
} }
} }
@@ -429,7 +437,7 @@ final class VoiceWakeManager: NSObject {
} }
private nonisolated static func requestPermissionWithTimeout( private nonisolated static func requestPermissionWithTimeout(
_ operation: @escaping @Sendable (@escaping (Bool) -> Void) -> Void) async -> Bool _ operation: @escaping @Sendable (@escaping @Sendable (Bool) -> Void) -> Void) async -> Bool
{ {
do { do {
return try await AsyncTimeout.withTimeout( return try await AsyncTimeout.withTimeout(

View File

@@ -8,6 +8,7 @@ options:
settings: settings:
base: base:
SWIFT_VERSION: "6.0" SWIFT_VERSION: "6.0"
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
packages: packages:
OpenClawKit: OpenClawKit:
@@ -80,9 +81,11 @@ targets:
DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)" DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)"
PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_APP_BUNDLE_ID)" PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_APP_BUNDLE_ID)"
PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_APP_PROFILE)" PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_APP_PROFILE)"
TARGETED_DEVICE_FAMILY: "1"
SWIFT_VERSION: "6.0" SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete SWIFT_STRICT_CONCURRENCY: complete
ENABLE_APPINTENTS_METADATA: NO ENABLE_APPINTENTS_METADATA: NO
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
info: info:
path: Sources/Info.plist path: Sources/Info.plist
properties: properties:
@@ -140,6 +143,7 @@ targets:
CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)" CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)"
DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)" DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)"
ENABLE_APPINTENTS_METADATA: NO ENABLE_APPINTENTS_METADATA: NO
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_SHARE_BUNDLE_ID)" PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_SHARE_BUNDLE_ID)"
PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_SHARE_PROFILE)" PROVISIONING_PROFILE_SPECIFIER: "$(OPENCLAW_SHARE_PROFILE)"
SWIFT_VERSION: "6.0" SWIFT_VERSION: "6.0"
@@ -174,6 +178,7 @@ targets:
settings: settings:
base: base:
ENABLE_APPINTENTS_METADATA: NO ENABLE_APPINTENTS_METADATA: NO
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_WATCH_APP_BUNDLE_ID)" PRODUCT_BUNDLE_IDENTIFIER: "$(OPENCLAW_WATCH_APP_BUNDLE_ID)"
info: info:
path: WatchApp/Info.plist path: WatchApp/Info.plist
@@ -191,6 +196,7 @@ targets:
sources: sources:
- path: WatchExtension/Sources - path: WatchExtension/Sources
dependencies: dependencies:
- sdk: AppIntents.framework
- sdk: WatchConnectivity.framework - sdk: WatchConnectivity.framework
- sdk: UserNotifications.framework - sdk: UserNotifications.framework
configFiles: configFiles:
@@ -229,6 +235,7 @@ targets:
CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)" CODE_SIGN_STYLE: "$(OPENCLAW_CODE_SIGN_STYLE)"
DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)" DEVELOPMENT_TEAM: "$(OPENCLAW_DEVELOPMENT_TEAM)"
PRODUCT_BUNDLE_IDENTIFIER: ai.openclaw.ios.tests PRODUCT_BUNDLE_IDENTIFIER: ai.openclaw.ios.tests
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
SWIFT_VERSION: "6.0" SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete SWIFT_STRICT_CONCURRENCY: complete
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/OpenClaw.app/OpenClaw" TEST_HOST: "$(BUILT_PRODUCTS_DIR)/OpenClaw.app/OpenClaw"