From 8cd5a09a862649a65275709fe685f37e006bdb0f Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 15 Oct 2025 00:02:59 +0200 Subject: [PATCH] Add proper availability checks for PhotosPickerItem PhotosPickerItem requires iOS 16+ / macOS 13+ but canImport(PhotosUI) succeeds on older macOS versions. Add compiler version check to ensure PhotosPicker code only compiles when actually available. This fixes CI build failures on older macOS environments. --- bitchat/Views/ContentView.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bitchat/Views/ContentView.swift b/bitchat/Views/ContentView.swift index 0ac8dda0..e5369d03 100644 --- a/bitchat/Views/ContentView.swift +++ b/bitchat/Views/ContentView.swift @@ -73,7 +73,7 @@ struct ContentView: View { @State private var recordingTimer: Timer? @State private var recordingStartDate: Date? @State private var showFileImporter = false -#if canImport(PhotosUI) +#if canImport(PhotosUI) && ((os(iOS) && compiler(>=5.7)) || (os(macOS) && compiler(>=5.7))) @State private var showPhotoPicker = false @State private var selectedPhotoPickerItem: PhotosPickerItem? #endif @@ -210,7 +210,7 @@ struct ContentView: View { FingerprintView(viewModel: viewModel, peerID: peerID) } } -#if canImport(PhotosUI) +#if canImport(PhotosUI) && ((os(iOS) && compiler(>=5.7)) || (os(macOS) && compiler(>=5.7))) .photosPicker(isPresented: $showPhotoPicker, selection: $selectedPhotoPickerItem, matching: .images) .onChange(of: selectedPhotoPickerItem) { newItem in guard let item = newItem else { return } @@ -229,7 +229,7 @@ struct ContentView: View { } } .confirmationDialog("Attach", isPresented: $showAttachmentActions, titleVisibility: .visible) { -#if canImport(PhotosUI) +#if canImport(PhotosUI) && ((os(iOS) && compiler(>=5.7)) || (os(macOS) && compiler(>=5.7))) Button("Image") { showAttachmentActions = false DispatchQueue.main.async { showPhotoPicker = true } @@ -1982,7 +1982,7 @@ private extension ContentView { } } -#if canImport(PhotosUI) +#if canImport(PhotosUI) && ((os(iOS) && compiler(>=5.7)) || (os(macOS) && compiler(>=5.7))) func handlePhotoSelection(_ item: PhotosPickerItem) async { defer { Task { @MainActor in selectedPhotoPickerItem = nil } } do {