From f1e8bbc12462d9ece086f786a3880c79bc5565b3 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Thu, 4 Jul 2024 20:26:30 -0700 Subject: [PATCH 01/22] feat: Build CareKitUI for macOS (cherry picked from commit 355b60744e66e19714a435edf2225dca5452071a) --- .../Shared/Components/CardView.swift | 10 ++++++- .../Components/CircularCompletionView.swift | 6 ++++- .../RectangularCompletionView.swift | 6 ++++- .../Shared/Extensions/Number+Extensions.swift | 15 ++++++++++- .../Extensions/OCKStyler+Extension.swift | 2 +- .../Shared/Extensions/UIColor+Extension.swift | 3 ++- CareKitUI/CareKitUI/Shared/OSValue.swift | 2 +- .../Shared/Style/OCKColorStyler.swift | 27 ++++++++++++++++++- .../Shared/Style/OCKDimensionStyler.swift | 13 +++++++++ .../Shared/Task/InstructionsTaskView.swift | 2 +- .../iOS/Calendar/OCKCalendarDisplayable.swift | 2 +- .../iOS/Calendar/OCKWeekCalendarView.swift | 2 +- .../Ring/OCKCompletionRingButton.swift | 2 +- .../Calendar/Ring/OCKCompletionRingView.swift | 2 +- .../iOS/Calendar/Ring/OCKRingView.swift | 2 +- .../Gradient Plots/OCKBarPlotView.swift | 2 +- .../Gradient Plots/OCKGradientPlotView.swift | 2 +- .../Gradient Plots/OCKLinePlotView.swift | 2 +- .../Gradient Plots/OCKScatterPlotView.swift | 2 +- .../iOS/Charts/Layers/OCKBarLayer.swift | 2 +- .../Layers/OCKCartesianCoordinatesLayer.swift | 2 +- .../iOS/Charts/Layers/OCKGridLayer.swift | 2 +- .../iOS/Charts/Layers/OCKLineLayer.swift | 2 +- .../iOS/Charts/Layers/OCKScatterLayer.swift | 2 +- .../iOS/Charts/OCKCartesianChartView.swift | 2 +- .../iOS/Charts/OCKCartesianGraphView.swift | 2 +- .../CareKitUI/iOS/Charts/OCKDataSeries.swift | 2 +- .../iOS/Charts/OCKGraphAxisView.swift | 2 +- .../iOS/Charts/OCKGraphLegendView.swift | 2 +- .../CareKitUI/iOS/Charts/OCKGridView.swift | 2 +- .../Protocols/OCKChartDisplayable.swift | 2 +- .../iOS/Charts/Protocols/OCKGraphable.swift | 2 +- .../iOS/Contact/OCKAddressButton.swift | 2 +- .../iOS/Contact/OCKContactButton.swift | 2 +- .../iOS/Contact/OCKContactDisplayable.swift | 2 +- .../iOS/Contact/OCKDetailedContactView.swift | 2 +- .../iOS/Contact/OCKSimpleContactView.swift | 2 +- .../iOS/Controls/OCKAnimatedButton.swift | 2 +- .../iOS/Controls/OCKCheckmarkButton.swift | 2 +- .../iOS/Controls/OCKLabeledButton.swift | 2 +- .../iOS/Detail View/OCKDetailView.swift | 2 +- .../Detail View/OCKDetailedImageView.swift | 2 +- .../Extensions/CATransaction+Extension.swift | 2 +- .../NSLayoutConstraint+Extensions.swift | 2 +- .../iOS/Extensions/UIFont+Extensions.swift | 2 +- .../OCKFeaturedContentView.swift | 2 +- .../iOS/Labels/OCKCappedSizeLabel.swift | 2 +- CareKitUI/CareKitUI/iOS/Labels/OCKLabel.swift | 2 +- CareKitUI/CareKitUI/iOS/Link/LinkButton.swift | 10 ++++++- CareKitUI/CareKitUI/iOS/Link/SafariView.swift | 2 +- .../CareKitUI/iOS/OCKAccessibleValue.swift | 2 +- CareKitUI/CareKitUI/iOS/OCKCardable.swift | 2 +- .../CareKitUI/iOS/OCKResponsiveLayout.swift | 2 +- .../CareKitUI/iOS/Style/OCKStylable.swift | 4 ++- .../Task/Buttons/OCKChecklistItemButton.swift | 2 +- .../Buttons/OCKLabeledCheckmarkButton.swift | 2 +- .../iOS/Task/Buttons/OCKLogItemButton.swift | 2 +- .../iOS/Task/Collection/OCKGridTaskCell.swift | 2 +- .../Task/Collection/OCKLogButtonCell.swift | 2 +- .../OCKSelfSizingCollectionView.swift | 2 +- .../iOS/Task/OCKButtonLogTaskView.swift | 2 +- .../iOS/Task/OCKChecklistTaskView.swift | 2 +- .../CareKitUI/iOS/Task/OCKGridTaskView.swift | 2 +- .../iOS/Task/OCKInstructionsTaskView.swift | 2 +- .../CareKitUI/iOS/Task/OCKLogTaskView.swift | 2 +- .../iOS/Task/OCKSimpleTaskView.swift | 2 +- .../iOS/Task/OCKTaskDisplayable.swift | 2 +- .../CareKitUI/iOS/Views/OCKHeaderView.swift | 2 +- .../iOS/Views/OCKSeparatorView.swift | 2 +- .../CareKitUI/iOS/Views/OCKStackView.swift | 2 +- CareKitUI/CareKitUI/iOS/Views/OCKView.swift | 2 +- .../OCKResponsiveLayoutTests.swift | 2 +- .../Task/TestGridTaskView.swift | 2 +- .../CareKitUITests/TestColorExtension.swift | 4 +++ .../CareKitUITests/TestStylableView.swift | 2 +- 75 files changed, 155 insertions(+), 73 deletions(-) diff --git a/CareKitUI/CareKitUI/Shared/Components/CardView.swift b/CareKitUI/CareKitUI/Shared/Components/CardView.swift index bc5b3851fb..e9f40f7145 100644 --- a/CareKitUI/CareKitUI/Shared/Components/CardView.swift +++ b/CareKitUI/CareKitUI/Shared/Components/CardView.swift @@ -84,12 +84,20 @@ private struct CardModifier: ViewModifier { RoundedRectangle(cornerRadius: style.appearance.cornerRadius2, style: .continuous) } + private var foregroundColor: Color { + #if !os(macOS) + return Color(style.color.secondaryCustomGroupedBackground) + #else + return style.color.secondaryCustomGroupedBackground + #endif + } + func body(content: Content) -> some View { content .clipShape(cardShape) .background( cardShape - .foregroundColor(Color(style.color.secondaryCustomGroupedBackground)) + .foregroundColor(foregroundColor) .shadow(color: Color(hue: 0, saturation: 0, brightness: 0, opacity: Double(style.appearance.shadowOpacity1)), radius: style.appearance.shadowRadius1, x: style.appearance.shadowOffset1.width, diff --git a/CareKitUI/CareKitUI/Shared/Components/CircularCompletionView.swift b/CareKitUI/CareKitUI/Shared/Components/CircularCompletionView.swift index 5aaff733e7..06a52eb8e3 100644 --- a/CareKitUI/CareKitUI/Shared/Components/CircularCompletionView.swift +++ b/CareKitUI/CareKitUI/Shared/Components/CircularCompletionView.swift @@ -49,7 +49,11 @@ public struct CircularCompletionView: View { @Environment(\.careKitStyle) private var style private var fillColor: Color { - isComplete ? Color.accentColor : Color(style.color.clear) + #if !os(macOS) + return isComplete ? Color.accentColor : Color(style.color.clear) + #else + return isComplete ? Color.accentColor : style.color.clear + #endif } private var background: some View { diff --git a/CareKitUI/CareKitUI/Shared/Components/RectangularCompletionView.swift b/CareKitUI/CareKitUI/Shared/Components/RectangularCompletionView.swift index 8c615f1291..dbf775d166 100644 --- a/CareKitUI/CareKitUI/Shared/Components/RectangularCompletionView.swift +++ b/CareKitUI/CareKitUI/Shared/Components/RectangularCompletionView.swift @@ -46,7 +46,11 @@ public struct RectangularCompletionView: View { @Environment(\.careKitStyle) private var style private var backgroundColor: Color { - isComplete ? .init(style.color.tertiaryCustomFill) : .accentColor + #if !os(macOS) + return isComplete ? .init(style.color.tertiaryCustomFill) : .accentColor + #else + return isComplete ? style.color.tertiaryCustomFill : .accentColor + #endif } private var foregroundColor: Color { diff --git a/CareKitUI/CareKitUI/Shared/Extensions/Number+Extensions.swift b/CareKitUI/CareKitUI/Shared/Extensions/Number+Extensions.swift index 64f336da6d..4e6fde8de3 100644 --- a/CareKitUI/CareKitUI/Shared/Extensions/Number+Extensions.swift +++ b/CareKitUI/CareKitUI/Shared/Extensions/Number+Extensions.swift @@ -28,7 +28,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import Foundation +import SwiftUI +#if canImport(UIKit) import UIKit +#endif extension Double { var normalized: Double { @@ -40,7 +44,16 @@ extension CGFloat { /// Scaled value for the current size category. func scaled() -> CGFloat { - UIFontMetrics.default.scaledValue(for: self) + + #if canImport(UIKit) + + return UIFontMetrics.default.scaledValue(for: self) + + #else + + return 1 + + #endif } /// The value between `self` and `end` with distance of `factor` between 0 and 1. diff --git a/CareKitUI/CareKitUI/Shared/Extensions/OCKStyler+Extension.swift b/CareKitUI/CareKitUI/Shared/Extensions/OCKStyler+Extension.swift index ec7eab3c2f..d83ac173fd 100644 --- a/CareKitUI/CareKitUI/Shared/Extensions/OCKStyler+Extension.swift +++ b/CareKitUI/CareKitUI/Shared/Extensions/OCKStyler+Extension.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import UIKit +import Foundation extension OCKStyler { diff --git a/CareKitUI/CareKitUI/Shared/Extensions/UIColor+Extension.swift b/CareKitUI/CareKitUI/Shared/Extensions/UIColor+Extension.swift index 859314cb1a..12f7cb72a4 100644 --- a/CareKitUI/CareKitUI/Shared/Extensions/UIColor+Extension.swift +++ b/CareKitUI/CareKitUI/Shared/Extensions/UIColor+Extension.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import Foundation +#if canImport(UIKit) import UIKit extension UIColor { @@ -48,3 +48,4 @@ extension UIColor { return UIColor(red: lightenedRed, green: lightenedGreen, blue: lightenedBlue, alpha: alpha) } } +#endif diff --git a/CareKitUI/CareKitUI/Shared/OSValue.swift b/CareKitUI/CareKitUI/Shared/OSValue.swift index 079d9d961c..1ada0ed2e1 100644 --- a/CareKitUI/CareKitUI/Shared/OSValue.swift +++ b/CareKitUI/CareKitUI/Shared/OSValue.swift @@ -31,7 +31,7 @@ import Foundation enum OS: String { - case iOS, watchOS + case iOS, watchOS, macOS } @propertyWrapper diff --git a/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift b/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift index eb1d0f98a8..b14d0336bc 100644 --- a/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift +++ b/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift @@ -28,7 +28,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import SwiftUI +#if canImport(UIKit) import UIKit +#endif /// Defines color constants. public protocol OCKColorStyler { @@ -54,7 +57,7 @@ public protocol OCKColorStyler { var customGray4: UIColor { get } var customGray5: UIColor { get } - #endif + #elseif os(watchOS) var white: UIColor { get } var black: UIColor { get } @@ -66,6 +69,16 @@ public protocol OCKColorStyler { var customGroupedBackground: UIColor { get } var secondaryCustomGroupedBackground: UIColor { get } var tertiaryCustomGroupedBackground: UIColor { get } + + #elseif os(macOS) + + var secondaryCustomGroupedBackground: Color { get } + var tertiaryCustomFill: Color { get } + var white: Color { get } + var black: Color { get } + var clear: Color { get } + + #endif } /// Defines default values for color constants. @@ -113,11 +126,23 @@ public extension OCKColorStyler { var tertiaryCustomFill: UIColor { #colorLiteral(red: 0.462745098, green: 0.462745098, blue: 0.5019607843, alpha: 0.24) } var quaternaryCustomFill: UIColor { #colorLiteral(red: 0.462745098, green: 0.462745098, blue: 0.5019607843, alpha: 0.18) } + #elseif os(macOS) + + var secondaryCustomGroupedBackground: Color { .white } + var tertiaryCustomFill: Color { .white } + var white: Color { .white } + var black: Color { .black } + var clear: Color { .clear } + #endif + #if canImport(UIKit) + var white: UIColor { .white } var black: UIColor { .black } var clear: UIColor { .clear } + + #endif } /// Concrete object for color constants. diff --git a/CareKitUI/CareKitUI/Shared/Style/OCKDimensionStyler.swift b/CareKitUI/CareKitUI/Shared/Style/OCKDimensionStyler.swift index 38cdd0876c..a4f45acead 100644 --- a/CareKitUI/CareKitUI/Shared/Style/OCKDimensionStyler.swift +++ b/CareKitUI/CareKitUI/Shared/Style/OCKDimensionStyler.swift @@ -28,8 +28,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import Foundation +#if canImport(UIKit) + import UIKit +#elseif canImport(AppKit) + +import AppKit + +#endif + /// Defines constants for view dimension styling. public protocol OCKDimensionStyler { @@ -119,8 +128,12 @@ public struct OCKDimensionStyle: OCKDimensionStyler { public init() {} } +#if canImport(UIKit) || canImport(AppKit) + private extension NSDirectionalEdgeInsets { init(value: CGFloat) { self.init(top: value, leading: value, bottom: value, trailing: value) } } + +#endif diff --git a/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift b/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift index bc8fc47f1f..c6dd1c54a8 100644 --- a/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift +++ b/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift @@ -32,7 +32,7 @@ import SwiftUI #if os(iOS) private let completionButtonTextPadding: CGFloat = 14 -#elseif os(watchOS) +#elseif os(watchOS) || os(macOS) private let completionButtonTextPadding: CGFloat = 8 #endif diff --git a/CareKitUI/CareKitUI/iOS/Calendar/OCKCalendarDisplayable.swift b/CareKitUI/CareKitUI/iOS/Calendar/OCKCalendarDisplayable.swift index b8e1b18334..5f7d5f1fd6 100644 --- a/CareKitUI/CareKitUI/iOS/Calendar/OCKCalendarDisplayable.swift +++ b/CareKitUI/CareKitUI/iOS/Calendar/OCKCalendarDisplayable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Calendar/OCKWeekCalendarView.swift b/CareKitUI/CareKitUI/iOS/Calendar/OCKWeekCalendarView.swift index 47c7e2440d..1c5cd96d50 100644 --- a/CareKitUI/CareKitUI/iOS/Calendar/OCKWeekCalendarView.swift +++ b/CareKitUI/CareKitUI/iOS/Calendar/OCKWeekCalendarView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingButton.swift b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingButton.swift index 257fac0adb..819a5eb18f 100644 --- a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingButton.swift +++ b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingView.swift b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingView.swift index b9dff03ea5..c175290458 100644 --- a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingView.swift +++ b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKCompletionRingView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKRingView.swift b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKRingView.swift index 9276207f2f..ada7715003 100644 --- a/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKRingView.swift +++ b/CareKitUI/CareKitUI/iOS/Calendar/Ring/OCKRingView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKBarPlotView.swift b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKBarPlotView.swift index 7770b4133c..47052020ec 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKBarPlotView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKBarPlotView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKGradientPlotView.swift b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKGradientPlotView.swift index 6a8d4335aa..dc3b8b7d42 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKGradientPlotView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKGradientPlotView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKLinePlotView.swift b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKLinePlotView.swift index 5685ee41f0..de50fc2822 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKLinePlotView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKLinePlotView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKScatterPlotView.swift b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKScatterPlotView.swift index c98a60e204..0efbccacb2 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKScatterPlotView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Gradient Plots/OCKScatterPlotView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKBarLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKBarLayer.swift index 6973ecd66e..6650076c68 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKBarLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKBarLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKCartesianCoordinatesLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKCartesianCoordinatesLayer.swift index 08506bcc24..1b8a595dc6 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKCartesianCoordinatesLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKCartesianCoordinatesLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift index fd194edb51..af9040a96b 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKLineLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKLineLayer.swift index 8294986d42..305bac1a84 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKLineLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKLineLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKScatterLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKScatterLayer.swift index b1451f5a25..2b5711e4b6 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKScatterLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKScatterLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift index 8c5ae19084..2be7382b38 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift index 3304ea1ebf..9e405df6fe 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKDataSeries.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKDataSeries.swift index d2324c5ed9..4e62dc2638 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKDataSeries.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKDataSeries.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKGraphAxisView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKGraphAxisView.swift index dfc04cb63a..5c9abbf324 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKGraphAxisView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKGraphAxisView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKGraphLegendView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKGraphLegendView.swift index 82cf203c49..fac6a4c0c4 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKGraphLegendView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKGraphLegendView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift index 393d5c3426..2fccc801c7 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKChartDisplayable.swift b/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKChartDisplayable.swift index d9daa8a93b..2edd86d2fb 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKChartDisplayable.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKChartDisplayable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKGraphable.swift b/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKGraphable.swift index d98cfa0d33..52be8f85c9 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKGraphable.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Protocols/OCKGraphable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKAddressButton.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKAddressButton.swift index f8f3093e80..df56a4b6c7 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKAddressButton.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKAddressButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKContactButton.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKContactButton.swift index b9dd81ba20..e229c7d2f7 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKContactButton.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKContactButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKContactDisplayable.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKContactDisplayable.swift index 3189319e3d..297d9a4545 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKContactDisplayable.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKContactDisplayable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift index d06f6186ac..4362342205 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift index 18e6d1210f..eb8b22d40f 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Controls/OCKAnimatedButton.swift b/CareKitUI/CareKitUI/iOS/Controls/OCKAnimatedButton.swift index 3ff2f505d4..020f31f7b3 100644 --- a/CareKitUI/CareKitUI/iOS/Controls/OCKAnimatedButton.swift +++ b/CareKitUI/CareKitUI/iOS/Controls/OCKAnimatedButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Controls/OCKCheckmarkButton.swift b/CareKitUI/CareKitUI/iOS/Controls/OCKCheckmarkButton.swift index 30e4c24ff8..f7c0804281 100644 --- a/CareKitUI/CareKitUI/iOS/Controls/OCKCheckmarkButton.swift +++ b/CareKitUI/CareKitUI/iOS/Controls/OCKCheckmarkButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Controls/OCKLabeledButton.swift b/CareKitUI/CareKitUI/iOS/Controls/OCKLabeledButton.swift index 9be2876643..883f832464 100644 --- a/CareKitUI/CareKitUI/iOS/Controls/OCKLabeledButton.swift +++ b/CareKitUI/CareKitUI/iOS/Controls/OCKLabeledButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift index 3e29509474..12fc16f63a 100644 --- a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift +++ b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailedImageView.swift b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailedImageView.swift index 40450bd3f5..4694b7c3d8 100644 --- a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailedImageView.swift +++ b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailedImageView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Extensions/CATransaction+Extension.swift b/CareKitUI/CareKitUI/iOS/Extensions/CATransaction+Extension.swift index 478b20943f..cf945f23fc 100644 --- a/CareKitUI/CareKitUI/iOS/Extensions/CATransaction+Extension.swift +++ b/CareKitUI/CareKitUI/iOS/Extensions/CATransaction+Extension.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Extensions/NSLayoutConstraint+Extensions.swift b/CareKitUI/CareKitUI/iOS/Extensions/NSLayoutConstraint+Extensions.swift index 54b1a44fb9..a6aa0ae79f 100644 --- a/CareKitUI/CareKitUI/iOS/Extensions/NSLayoutConstraint+Extensions.swift +++ b/CareKitUI/CareKitUI/iOS/Extensions/NSLayoutConstraint+Extensions.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Extensions/UIFont+Extensions.swift b/CareKitUI/CareKitUI/iOS/Extensions/UIFont+Extensions.swift index 11e37798c9..f00cb6ac3f 100644 --- a/CareKitUI/CareKitUI/iOS/Extensions/UIFont+Extensions.swift +++ b/CareKitUI/CareKitUI/iOS/Extensions/UIFont+Extensions.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift b/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift index 8f146f96c1..cee3645915 100644 --- a/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift +++ b/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Labels/OCKCappedSizeLabel.swift b/CareKitUI/CareKitUI/iOS/Labels/OCKCappedSizeLabel.swift index 381b8308af..2b93581c4f 100644 --- a/CareKitUI/CareKitUI/iOS/Labels/OCKCappedSizeLabel.swift +++ b/CareKitUI/CareKitUI/iOS/Labels/OCKCappedSizeLabel.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Labels/OCKLabel.swift b/CareKitUI/CareKitUI/iOS/Labels/OCKLabel.swift index df8ba6c05f..dd403b83be 100644 --- a/CareKitUI/CareKitUI/iOS/Labels/OCKLabel.swift +++ b/CareKitUI/CareKitUI/iOS/Labels/OCKLabel.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift b/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift index 6ac4361c67..0e434c369e 100644 --- a/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift +++ b/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift @@ -120,13 +120,21 @@ private struct InAppContent: View { if let url = link.url { switch link { case .website: - SafariView(url: url) + webView(withURL: url) .edgesIgnoringSafeArea(.bottom) default: fatalError("Link type does not support in-app content") } } } + + func webView(withURL url: URL) -> some View { + #if !os(macOS) + return SafariView(url: url) + #else + return Link(destination: url, label: { EmptyView() }) + #endif + } } #endif diff --git a/CareKitUI/CareKitUI/iOS/Link/SafariView.swift b/CareKitUI/CareKitUI/iOS/Link/SafariView.swift index d0ed0150b8..3146451c52 100644 --- a/CareKitUI/CareKitUI/iOS/Link/SafariView.swift +++ b/CareKitUI/CareKitUI/iOS/Link/SafariView.swift @@ -27,7 +27,7 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if canImport(SafariServices) +#if canImport(SafariServices) && canImport(UIKit) import Foundation import SafariServices diff --git a/CareKitUI/CareKitUI/iOS/OCKAccessibleValue.swift b/CareKitUI/CareKitUI/iOS/OCKAccessibleValue.swift index bd1bd3b45a..7bfe24ae20 100644 --- a/CareKitUI/CareKitUI/iOS/OCKAccessibleValue.swift +++ b/CareKitUI/CareKitUI/iOS/OCKAccessibleValue.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/OCKCardable.swift b/CareKitUI/CareKitUI/iOS/OCKCardable.swift index 6bb75d3362..0ee19a5741 100644 --- a/CareKitUI/CareKitUI/iOS/OCKCardable.swift +++ b/CareKitUI/CareKitUI/iOS/OCKCardable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/OCKResponsiveLayout.swift b/CareKitUI/CareKitUI/iOS/OCKResponsiveLayout.swift index 51f76b53a0..dc09313e84 100644 --- a/CareKitUI/CareKitUI/iOS/OCKResponsiveLayout.swift +++ b/CareKitUI/CareKitUI/iOS/OCKResponsiveLayout.swift @@ -27,7 +27,7 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Style/OCKStylable.swift b/CareKitUI/CareKitUI/iOS/Style/OCKStylable.swift index 18cf3e0d41..e86fb943ac 100644 --- a/CareKitUI/CareKitUI/iOS/Style/OCKStylable.swift +++ b/CareKitUI/CareKitUI/iOS/Style/OCKStylable.swift @@ -28,7 +28,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if canImport(UIKit) import UIKit +#endif // An object that can be styled. public protocol OCKStylable { @@ -43,7 +45,7 @@ public protocol OCKStylable { func styleDidChange() } -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) /// In order to propagate style through the view hierarchy: /// 1. Call `styleChildren()` from a `didSet` observer on `customStyle`. diff --git a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKChecklistItemButton.swift b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKChecklistItemButton.swift index 641ad7518b..08aafe6fa4 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKChecklistItemButton.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKChecklistItemButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLabeledCheckmarkButton.swift b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLabeledCheckmarkButton.swift index 3a8c9e269f..d89ca7bcbb 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLabeledCheckmarkButton.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLabeledCheckmarkButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLogItemButton.swift b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLogItemButton.swift index d6f99dc40b..49cd4bb394 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLogItemButton.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Buttons/OCKLogItemButton.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKGridTaskCell.swift b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKGridTaskCell.swift index 38cbb53fb8..967eadb4d2 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKGridTaskCell.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKGridTaskCell.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift index 56d30f9402..cc3be36b53 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift index e10e62b9e5..85f4baf532 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift index 4ca2822128..6ecdf62308 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift index b05317c1a0..2e1ba7ef23 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift index 5202dc6598..83c179fed5 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift index b1fdfd2558..a937858ece 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift index f282b468db..3876473957 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift index e70141ab64..689ed1544d 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKTaskDisplayable.swift b/CareKitUI/CareKitUI/iOS/Task/OCKTaskDisplayable.swift index 7452145b81..af2876b7e0 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKTaskDisplayable.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKTaskDisplayable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Views/OCKHeaderView.swift b/CareKitUI/CareKitUI/iOS/Views/OCKHeaderView.swift index 5f214031a1..ed016367fe 100644 --- a/CareKitUI/CareKitUI/iOS/Views/OCKHeaderView.swift +++ b/CareKitUI/CareKitUI/iOS/Views/OCKHeaderView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift b/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift index 913b697905..aa25769614 100644 --- a/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift +++ b/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Views/OCKStackView.swift b/CareKitUI/CareKitUI/iOS/Views/OCKStackView.swift index 09bd3b76b1..a59b094bb0 100644 --- a/CareKitUI/CareKitUI/iOS/Views/OCKStackView.swift +++ b/CareKitUI/CareKitUI/iOS/Views/OCKStackView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Views/OCKView.swift b/CareKitUI/CareKitUI/iOS/Views/OCKView.swift index 33b33e5e5b..6cc6c338a2 100644 --- a/CareKitUI/CareKitUI/iOS/Views/OCKView.swift +++ b/CareKitUI/CareKitUI/iOS/Views/OCKView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKitUI/CareKitUITests/OCKResponsiveLayoutTests.swift b/CareKitUI/CareKitUITests/OCKResponsiveLayoutTests.swift index 7a11e473fd..1593c011ce 100644 --- a/CareKitUI/CareKitUITests/OCKResponsiveLayoutTests.swift +++ b/CareKitUI/CareKitUITests/OCKResponsiveLayoutTests.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKitUI import XCTest diff --git a/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift b/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift index 9b22e8c689..ea2a396c0b 100644 --- a/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift +++ b/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKitUI import Foundation import XCTest diff --git a/CareKitUI/CareKitUITests/TestColorExtension.swift b/CareKitUI/CareKitUITests/TestColorExtension.swift index 45040bb874..f5c0aaa82f 100644 --- a/CareKitUI/CareKitUITests/TestColorExtension.swift +++ b/CareKitUI/CareKitUITests/TestColorExtension.swift @@ -28,6 +28,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if canImport(UIKit) + @testable import CareKitUI import Foundation import XCTest @@ -60,3 +62,5 @@ class TestColorExtension: XCTestCase { XCTAssertEqual(lightened, UIColor(red: 1, green: 1, blue: 1, alpha: 1)) } } + +#endif diff --git a/CareKitUI/CareKitUITests/TestStylableView.swift b/CareKitUI/CareKitUITests/TestStylableView.swift index 8ca757907a..81e531adaa 100644 --- a/CareKitUI/CareKitUITests/TestStylableView.swift +++ b/CareKitUI/CareKitUITests/TestStylableView.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKitUI import XCTest From bb36446bc62c5750beda2d1a182ee28394c089db Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Thu, 4 Jul 2024 20:36:25 -0700 Subject: [PATCH 02/22] update CI to test against macOS --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index b2d9893dbd..f41c55278b 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-14 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)'] + destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform\=macOS'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 From 40e88e7ac9c2721a1406b2150cf663b46731a415 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Thu, 4 Jul 2024 20:39:39 -0700 Subject: [PATCH 03/22] xcode proj builds for macOS --- CareKit/CareKit.xcodeproj/project.pbxproj | 8 +++++--- CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj | 6 ++++-- CareKitStore/CareKitStore.xcodeproj/project.pbxproj | 8 +++++--- CareKitUI/CareKitUI.xcodeproj/project.pbxproj | 8 +++++--- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/CareKit/CareKit.xcodeproj/project.pbxproj b/CareKit/CareKit.xcodeproj/project.pbxproj index 8e797f8b5e..34f9bf5276 100644 --- a/CareKit/CareKit.xcodeproj/project.pbxproj +++ b/CareKit/CareKit.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -1238,6 +1238,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -1314,6 +1315,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = NO; ONLY_ACTIVE_ARCH = NO; @@ -1365,7 +1367,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; @@ -1410,7 +1412,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; diff --git a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj index 74e9b8362c..13d727d38e 100644 --- a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj +++ b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj @@ -426,6 +426,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -491,6 +492,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -535,7 +537,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -575,7 +577,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; diff --git a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj index 2706ebe3f3..db9e702abf 100644 --- a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj +++ b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -1260,6 +1260,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -1343,6 +1344,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -1393,7 +1395,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; @@ -1434,7 +1436,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; diff --git a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj index 9f4cf4e8c4..16293f7727 100644 --- a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj +++ b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -975,6 +975,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -1058,6 +1059,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(VERSION_NUMBER)"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -1106,7 +1108,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; @@ -1146,7 +1148,7 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; From 8f4f0439198f9d85866c5a019049d8485e5f599c Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Thu, 4 Jul 2024 21:10:06 -0700 Subject: [PATCH 04/22] add macOS to test projects --- CareKit/CareKit.xcodeproj/project.pbxproj | 4 ++-- CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj | 4 ++-- CareKitStore/CareKitStore.xcodeproj/project.pbxproj | 4 ++-- CareKitUI/CareKitUI.xcodeproj/project.pbxproj | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CareKit/CareKit.xcodeproj/project.pbxproj b/CareKit/CareKit.xcodeproj/project.pbxproj index 34f9bf5276..fcb7f1fc89 100644 --- a/CareKit/CareKit.xcodeproj/project.pbxproj +++ b/CareKit/CareKit.xcodeproj/project.pbxproj @@ -1131,7 +1131,7 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "watchsimulator watchos iphonesimulator iphoneos"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1166,7 +1166,7 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "watchsimulator watchos iphonesimulator iphoneos"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,4"; diff --git a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj index 13d727d38e..be1312c319 100644 --- a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj +++ b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj @@ -604,7 +604,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.Apple.com.CareKitFHIRTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -631,7 +631,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.Apple.com.CareKitFHIRTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; diff --git a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj index db9e702abf..d92ce27943 100644 --- a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj +++ b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj @@ -1461,7 +1461,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.Apple.CareKitStoreTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "watchsimulator watchos iphonesimulator iphoneos"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; TARGETED_DEVICE_FAMILY = "1,2,4"; }; @@ -1482,7 +1482,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.Apple.CareKitStoreTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "watchsimulator watchos iphonesimulator iphoneos"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; TARGETED_DEVICE_FAMILY = "1,2,4"; }; diff --git a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj index 16293f7727..a159c2cc82 100644 --- a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj +++ b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj @@ -874,7 +874,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; @@ -896,7 +896,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; From 1f9385c6f5b598f42173cce15c42ea3c47f5e581 Mon Sep 17 00:00:00 2001 From: Corey Date: Thu, 4 Jul 2024 21:39:16 -0700 Subject: [PATCH 05/22] Update swift.yml --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index f41c55278b..8b8e1c6ebb 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-14 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform\=macOS'] + destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 From c87e91c0c4c828fc177c99039ed3fe6eb204113a Mon Sep 17 00:00:00 2001 From: Corey Date: Thu, 4 Jul 2024 21:42:40 -0700 Subject: [PATCH 06/22] Update swift.yml --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 8b8e1c6ebb..b9e5b11028 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-14 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS'] + destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 From 56406fd4805862cd31b5fa837340124a67fdbdf3 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 10:21:36 -0700 Subject: [PATCH 07/22] build for visionOS (cherry picked from commit 150d2d40c339928d01427fbfc04756eb9a88c3af) --- CareKit/CareKit.xcodeproj/project.pbxproj | 16 ++++++------- .../Shared/Extensions/UIImage+Asset.swift | 4 ++++ .../OCKAnyReadOnlyEventStore+Progress.swift | 1 - .../CareKit/Shared/Task/OCKTaskEvents.swift | 23 +++++++++++++++--- .../OCKCalendarViewSynchronizerProtocol.swift | 2 +- .../OCKChartViewSynchronizerProtocol.swift | 2 +- .../OCKContactViewSynchronizerProtocol.swift | 2 +- .../OCKTaskViewSynchronizerProtocol.swift | 2 +- .../OCKWeekCalendarPageViewController.swift | 2 +- .../OCKWeekCalendarViewSynchronizer.swift | 2 +- .../OCKCalendarViewController.swift | 2 +- .../OCKWeekCalendarViewController.swift | 2 +- .../OCKCartesianChartViewSynchronizer.swift | 2 +- .../OCKCartesianChartViewController.swift | 2 +- .../OCKDetailedContactViewSynchronizer.swift | 2 +- .../OCKSimpleContactViewSynchronizer.swift | 2 +- .../_OCKContactsListViewSynchronizer.swift | 2 +- .../OCKContactViewController.swift | 2 +- .../OCKContactViewResponder.swift | 2 +- .../OCKContactsListViewController.swift | 2 +- .../OCKDetailedContactViewController.swift | 2 +- .../OCKSimpleContactViewController.swift | 2 +- .../iOS/Details/OCKDetailViewController.swift | 2 +- .../NSLayoutConstraint+Extensions.swift | 2 +- .../UIViewController+Extensions.swift | 2 +- .../Higher Order/View/OCKHeaderBodyView.swift | 2 +- .../iOS/Higher Order/View/OCKListView.swift | 2 +- .../OCKDailyPageViewController.swift | 2 +- .../OCKDailyTasksPageViewController.swift | 2 +- .../OCKListViewController.swift | 2 +- .../SynchronizedViewController.swift | 2 +- .../Synchronization/ViewSynchronizing.swift | 2 +- .../OCKButtonLogTaskViewSynchronizer.swift | 2 +- .../OCKChecklistTaskViewSynchronizer.swift | 2 +- .../OCKGridTaskViewSynchronizer.swift | 2 +- .../OCKInstructionsTaskViewSynchronizer.swift | 2 +- .../OCKSimpleTaskViewSynchronizer.swift | 2 +- .../OCKButtonLogViewController.swift | 2 +- .../OCKChecklistTaskViewController.swift | 2 +- .../OCKGridTaskViewController.swift | 2 +- .../OCKInstructionsTaskViewController.swift | 2 +- .../OCKSimpleTaskViewController.swift | 2 +- .../OCKTaskViewController.swift | 2 +- .../OCKWeekCalendarView+Updatable.swift | 2 +- .../OCKCartesianChartView+Updatable.swift | 2 +- .../OCKDetailedContactView+Updatable.swift | 2 +- .../OCKSimpleContactView+Updatable.swift | 2 +- .../Task/OCKChecklistTaskView+Updatable.swift | 2 +- .../Task/OCKGridTaskView+Updatable.swift | 2 +- .../OCKInstructionsTaskView+Updatable.swift | 2 +- .../Task/OCKLogTaskView+Updatable.swift | 2 +- .../Task/OCKSimpleTaskView+Updatable.swift | 2 +- .../CareKit/iOS/View Updaters/Updatable.swift | 2 +- .../TestCustomCalendarViewSynchronizer.swift | 2 +- .../TestWeekCalendarViewSynchronizer.swift | 2 +- .../TestCartesianChartViewSynchronizer.swift | 2 +- .../TestCustomChartViewSynchronizer.swift | 2 +- .../TestContactListViewSynchronizer.swift | 2 +- .../TestCustomContactViewSynchronizer.swift | 2 +- .../TestDetailedContactViewSynchronizer.swift | 2 +- .../TestSimpleContactViewSynchronizer.swift | 2 +- .../TestDailyTasksPageViewController.swift | 2 +- .../Higher Order/TestListView.swift | 2 +- .../TestWeekCalendarPageViewController.swift | 2 +- .../TestSynchronizedViewController.swift | 2 +- .../TestButtonLogTaskViewSynchronizer.swift | 2 +- .../Task/TestChecklistViewSynchronizer.swift | 2 +- .../Task/TestCustomTaskViewSynchronizer.swift | 2 +- .../Task/TestGridTaskViewSynchronizer.swift | 2 +- ...TestInstructionsTaskViewSynchronizer.swift | 2 +- .../Task/TestSimpleTaskViewSynchronizer.swift | 2 +- .../CareKitFHIR.xcodeproj/project.pbxproj | 16 ++++++------- .../CareKitStore.xcodeproj/project.pbxproj | 24 ++++++++++++------- ...TestHealthKitPassthroughStore+Events.swift | 4 ++++ .../TestPersistentStoreCoordinator.swift | 2 +- CareKitUI/CareKitUI.xcodeproj/project.pbxproj | 16 ++++++------- .../Shared/Style/OCKColorStyler.swift | 8 +++---- .../Shared/Task/InstructionsTaskView.swift | 2 +- .../iOS/Charts/Layers/OCKGridLayer.swift | 2 +- .../iOS/Charts/OCKCartesianChartView.swift | 2 +- .../iOS/Charts/OCKCartesianGraphView.swift | 2 +- .../CareKitUI/iOS/Charts/OCKGridView.swift | 2 +- .../iOS/Contact/OCKDetailedContactView.swift | 2 +- .../iOS/Contact/OCKSimpleContactView.swift | 2 +- .../iOS/Detail View/OCKDetailView.swift | 2 +- .../OCKFeaturedContentView.swift | 2 +- CareKitUI/CareKitUI/iOS/Link/LinkButton.swift | 8 +++---- CareKitUI/CareKitUI/iOS/Link/SafariView.swift | 2 ++ CareKitUI/CareKitUI/iOS/OCKCardable.swift | 2 +- .../Task/Collection/OCKLogButtonCell.swift | 2 +- .../OCKSelfSizingCollectionView.swift | 2 +- .../iOS/Task/OCKButtonLogTaskView.swift | 2 +- .../iOS/Task/OCKChecklistTaskView.swift | 2 +- .../CareKitUI/iOS/Task/OCKGridTaskView.swift | 2 +- .../iOS/Task/OCKInstructionsTaskView.swift | 2 +- .../CareKitUI/iOS/Task/OCKLogTaskView.swift | 2 +- .../iOS/Task/OCKSimpleTaskView.swift | 2 +- .../iOS/Views/OCKSeparatorView.swift | 4 ++++ .../Task/TestGridTaskView.swift | 2 +- 99 files changed, 169 insertions(+), 131 deletions(-) diff --git a/CareKit/CareKit.xcodeproj/project.pbxproj b/CareKit/CareKit.xcodeproj/project.pbxproj index fcb7f1fc89..2e74aefde2 100644 --- a/CareKit/CareKit.xcodeproj/project.pbxproj +++ b/CareKit/CareKit.xcodeproj/project.pbxproj @@ -1131,12 +1131,12 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Debug; }; @@ -1166,10 +1166,10 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Release; }; @@ -1367,13 +1367,13 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; "SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*]" = DEBUG; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Debug; @@ -1412,12 +1412,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Release; diff --git a/CareKit/CareKit/Shared/Extensions/UIImage+Asset.swift b/CareKit/CareKit/Shared/Extensions/UIImage+Asset.swift index 722805d5be..1bf2f169a1 100644 --- a/CareKit/CareKit/Shared/Extensions/UIImage+Asset.swift +++ b/CareKit/CareKit/Shared/Extensions/UIImage+Asset.swift @@ -28,6 +28,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if canImport(UIKit) + import Foundation import UIKit @@ -42,3 +44,5 @@ extension UIImage { return otherUrlImage ?? appAssetsImage ?? symbol } } + +#endif diff --git a/CareKit/CareKit/Shared/Synchronization/OCKAnyReadOnlyEventStore+Progress.swift b/CareKit/CareKit/Shared/Synchronization/OCKAnyReadOnlyEventStore+Progress.swift index f990fe6393..bfe657cad5 100644 --- a/CareKit/CareKit/Shared/Synchronization/OCKAnyReadOnlyEventStore+Progress.swift +++ b/CareKit/CareKit/Shared/Synchronization/OCKAnyReadOnlyEventStore+Progress.swift @@ -30,7 +30,6 @@ import CareKitStore import Foundation -import UIKit extension OCKAnyReadOnlyEventStore { diff --git a/CareKit/CareKit/Shared/Task/OCKTaskEvents.swift b/CareKit/CareKit/Shared/Task/OCKTaskEvents.swift index dbc0a426e9..d9ce013433 100644 --- a/CareKit/CareKit/Shared/Task/OCKTaskEvents.swift +++ b/CareKit/CareKit/Shared/Task/OCKTaskEvents.swift @@ -86,7 +86,10 @@ public struct OCKTaskEvents: Collection, Identifiable { // First make sure there is no matching event already stored in the data structure. let indexPath = self.indexPath(of: event) - guard indexPath == nil else { return (self[indexPath!.section][indexPath!.row], false) } + guard indexPath == nil else { + let indexPathRowValue = rowValueOfIndexPath(indexPath!) + return (self[indexPath!.section][indexPathRowValue], false) + } // Append the event to the matching section if one exists. if let section = section(for: event.task) { @@ -113,7 +116,8 @@ public struct OCKTaskEvents: Collection, Identifiable { public mutating func remove(event: OCKAnyEvent) -> OCKAnyEvent? { guard let indexPath = indexPath(of: event) else { return nil } var updatedEvents = events[indexPath.section] - let removedEvent = updatedEvents.remove(at: indexPath.row) + let indexPathRowValue = rowValueOfIndexPath(indexPath) + let removedEvent = updatedEvents.remove(at: indexPathRowValue) // If the removed event was the last one in the section, remove the whole section. guard !updatedEvents.isEmpty else { @@ -132,7 +136,8 @@ public struct OCKTaskEvents: Collection, Identifiable { public mutating func update(event: OCKAnyEvent) -> OCKAnyEvent? { // Update the matching event if let matchIndexPath = indexPath(of: event) { - events[matchIndexPath.section][matchIndexPath.row] = event + let matchIndexPathRowValue = rowValueOfIndexPath(matchIndexPath) + events[matchIndexPath.section][matchIndexPathRowValue] = event return event // Else append the event } else { @@ -148,7 +153,19 @@ public struct OCKTaskEvents: Collection, Identifiable { private func indexPath(of event: OCKAnyEvent) -> IndexPath? { guard let section = section(for: event.task) else { return nil } guard let row = events[section].firstIndex(where: { $0.matches(event) }) else { return nil } + #if !os(macOS) return .init(row: row, section: section) + #else + return .init(item: row, section: section) + #endif + } + + private func rowValueOfIndexPath(_ indexPath: IndexPath) -> Int { + #if !os(macOS) + return indexPath.row + #else + return indexPath.item + #endif } // MARK: - Collection diff --git a/CareKit/CareKit/Stale/OCKCalendarViewSynchronizerProtocol.swift b/CareKit/CareKit/Stale/OCKCalendarViewSynchronizerProtocol.swift index 4d1ce76385..036e4c56e6 100644 --- a/CareKit/CareKit/Stale/OCKCalendarViewSynchronizerProtocol.swift +++ b/CareKit/CareKit/Stale/OCKCalendarViewSynchronizerProtocol.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/Stale/OCKChartViewSynchronizerProtocol.swift b/CareKit/CareKit/Stale/OCKChartViewSynchronizerProtocol.swift index 32a64193b2..7433715e40 100644 --- a/CareKit/CareKit/Stale/OCKChartViewSynchronizerProtocol.swift +++ b/CareKit/CareKit/Stale/OCKChartViewSynchronizerProtocol.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/Stale/OCKContactViewSynchronizerProtocol.swift b/CareKit/CareKit/Stale/OCKContactViewSynchronizerProtocol.swift index 8c8cb1d510..fa4d609660 100644 --- a/CareKit/CareKit/Stale/OCKContactViewSynchronizerProtocol.swift +++ b/CareKit/CareKit/Stale/OCKContactViewSynchronizerProtocol.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/Stale/OCKTaskViewSynchronizerProtocol.swift b/CareKit/CareKit/Stale/OCKTaskViewSynchronizerProtocol.swift index fd72446b34..54e473cef9 100644 --- a/CareKit/CareKit/Stale/OCKTaskViewSynchronizerProtocol.swift +++ b/CareKit/CareKit/Stale/OCKTaskViewSynchronizerProtocol.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Calendar/Paging/OCKWeekCalendarPageViewController.swift b/CareKit/CareKit/iOS/Calendar/Paging/OCKWeekCalendarPageViewController.swift index 27145ecd52..4e1fdeab83 100644 --- a/CareKit/CareKit/iOS/Calendar/Paging/OCKWeekCalendarPageViewController.swift +++ b/CareKit/CareKit/iOS/Calendar/Paging/OCKWeekCalendarPageViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Calendar/Synchronizers/OCKWeekCalendarViewSynchronizer.swift b/CareKit/CareKit/iOS/Calendar/Synchronizers/OCKWeekCalendarViewSynchronizer.swift index e414cfc1fa..cba49360b8 100644 --- a/CareKit/CareKit/iOS/Calendar/Synchronizers/OCKWeekCalendarViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Calendar/Synchronizers/OCKWeekCalendarViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Calendar/View Controllers/OCKCalendarViewController.swift b/CareKit/CareKit/iOS/Calendar/View Controllers/OCKCalendarViewController.swift index f34dd09dd6..9fb3aeb275 100644 --- a/CareKit/CareKit/iOS/Calendar/View Controllers/OCKCalendarViewController.swift +++ b/CareKit/CareKit/iOS/Calendar/View Controllers/OCKCalendarViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Calendar/View Controllers/OCKWeekCalendarViewController.swift b/CareKit/CareKit/iOS/Calendar/View Controllers/OCKWeekCalendarViewController.swift index e83ac75965..854cd22e0a 100644 --- a/CareKit/CareKit/iOS/Calendar/View Controllers/OCKWeekCalendarViewController.swift +++ b/CareKit/CareKit/iOS/Calendar/View Controllers/OCKWeekCalendarViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Chart/Synchronizers/OCKCartesianChartViewSynchronizer.swift b/CareKit/CareKit/iOS/Chart/Synchronizers/OCKCartesianChartViewSynchronizer.swift index c45a341ec2..2dc98de522 100644 --- a/CareKit/CareKit/iOS/Chart/Synchronizers/OCKCartesianChartViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Chart/Synchronizers/OCKCartesianChartViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Chart/View Controllers/OCKCartesianChartViewController.swift b/CareKit/CareKit/iOS/Chart/View Controllers/OCKCartesianChartViewController.swift index 13aaa3a93a..2f82c66318 100644 --- a/CareKit/CareKit/iOS/Chart/View Controllers/OCKCartesianChartViewController.swift +++ b/CareKit/CareKit/iOS/Chart/View Controllers/OCKCartesianChartViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/Synchronizers/OCKDetailedContactViewSynchronizer.swift b/CareKit/CareKit/iOS/Contact/Synchronizers/OCKDetailedContactViewSynchronizer.swift index 0bf5e25469..e16ab8583d 100644 --- a/CareKit/CareKit/iOS/Contact/Synchronizers/OCKDetailedContactViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Contact/Synchronizers/OCKDetailedContactViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/Synchronizers/OCKSimpleContactViewSynchronizer.swift b/CareKit/CareKit/iOS/Contact/Synchronizers/OCKSimpleContactViewSynchronizer.swift index e194b9f61f..8254fb7f5e 100644 --- a/CareKit/CareKit/iOS/Contact/Synchronizers/OCKSimpleContactViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Contact/Synchronizers/OCKSimpleContactViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/Synchronizers/_OCKContactsListViewSynchronizer.swift b/CareKit/CareKit/iOS/Contact/Synchronizers/_OCKContactsListViewSynchronizer.swift index d0874dca75..22bfcfb5a7 100644 --- a/CareKit/CareKit/iOS/Contact/Synchronizers/_OCKContactsListViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Contact/Synchronizers/_OCKContactsListViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewController.swift b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewController.swift index 605e4ede0f..679e82e544 100644 --- a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewController.swift +++ b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewResponder.swift b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewResponder.swift index 5fa07ef52b..edaf8a6b2c 100644 --- a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewResponder.swift +++ b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactViewResponder.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactsListViewController.swift b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactsListViewController.swift index 6b7b269c23..89742f10ef 100644 --- a/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactsListViewController.swift +++ b/CareKit/CareKit/iOS/Contact/View Controllers/OCKContactsListViewController.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Contact/View Controllers/OCKDetailedContactViewController.swift b/CareKit/CareKit/iOS/Contact/View Controllers/OCKDetailedContactViewController.swift index 42a8e6dcff..8c8038f9c4 100644 --- a/CareKit/CareKit/iOS/Contact/View Controllers/OCKDetailedContactViewController.swift +++ b/CareKit/CareKit/iOS/Contact/View Controllers/OCKDetailedContactViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Contact/View Controllers/OCKSimpleContactViewController.swift b/CareKit/CareKit/iOS/Contact/View Controllers/OCKSimpleContactViewController.swift index d20c1ab584..31e2710071 100644 --- a/CareKit/CareKit/iOS/Contact/View Controllers/OCKSimpleContactViewController.swift +++ b/CareKit/CareKit/iOS/Contact/View Controllers/OCKSimpleContactViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Details/OCKDetailViewController.swift b/CareKit/CareKit/iOS/Details/OCKDetailViewController.swift index 86853dd53d..586d5a39b7 100644 --- a/CareKit/CareKit/iOS/Details/OCKDetailViewController.swift +++ b/CareKit/CareKit/iOS/Details/OCKDetailViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitUI import UIKit diff --git a/CareKit/CareKit/iOS/Extensions/NSLayoutConstraint+Extensions.swift b/CareKit/CareKit/iOS/Extensions/NSLayoutConstraint+Extensions.swift index 54b1a44fb9..a6aa0ae79f 100644 --- a/CareKit/CareKit/iOS/Extensions/NSLayoutConstraint+Extensions.swift +++ b/CareKit/CareKit/iOS/Extensions/NSLayoutConstraint+Extensions.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKit/CareKit/iOS/Extensions/UIViewController+Extensions.swift b/CareKit/CareKit/iOS/Extensions/UIViewController+Extensions.swift index c2ffa5107c..1cfcc805b2 100644 --- a/CareKit/CareKit/iOS/Extensions/UIViewController+Extensions.swift +++ b/CareKit/CareKit/iOS/Extensions/UIViewController+Extensions.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitUI import UIKit diff --git a/CareKit/CareKit/iOS/Higher Order/View/OCKHeaderBodyView.swift b/CareKit/CareKit/iOS/Higher Order/View/OCKHeaderBodyView.swift index 5d3a9098a6..be956a6bf4 100644 --- a/CareKit/CareKit/iOS/Higher Order/View/OCKHeaderBodyView.swift +++ b/CareKit/CareKit/iOS/Higher Order/View/OCKHeaderBodyView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitUI import UIKit diff --git a/CareKit/CareKit/iOS/Higher Order/View/OCKListView.swift b/CareKit/CareKit/iOS/Higher Order/View/OCKListView.swift index 5ba2f8a83f..8632f08764 100644 --- a/CareKit/CareKit/iOS/Higher Order/View/OCKListView.swift +++ b/CareKit/CareKit/iOS/Higher Order/View/OCKListView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitUI import UIKit diff --git a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyPageViewController.swift b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyPageViewController.swift index eb7e9657a7..1cb6b2e8e3 100644 --- a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyPageViewController.swift +++ b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyPageViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyTasksPageViewController.swift b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyTasksPageViewController.swift index 76a304f440..c67b404d68 100644 --- a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyTasksPageViewController.swift +++ b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKDailyTasksPageViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKListViewController.swift b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKListViewController.swift index 90bbcbedf2..82d83b7cfb 100644 --- a/CareKit/CareKit/iOS/Higher Order/ViewController/OCKListViewController.swift +++ b/CareKit/CareKit/iOS/Higher Order/ViewController/OCKListViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Synchronization/SynchronizedViewController.swift b/CareKit/CareKit/iOS/Synchronization/SynchronizedViewController.swift index 4abf603597..6e89fb30f4 100644 --- a/CareKit/CareKit/iOS/Synchronization/SynchronizedViewController.swift +++ b/CareKit/CareKit/iOS/Synchronization/SynchronizedViewController.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKit/CareKit/iOS/Synchronization/ViewSynchronizing.swift b/CareKit/CareKit/iOS/Synchronization/ViewSynchronizing.swift index 55964ac7cb..00b2087743 100644 --- a/CareKit/CareKit/iOS/Synchronization/ViewSynchronizing.swift +++ b/CareKit/CareKit/iOS/Synchronization/ViewSynchronizing.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import UIKit diff --git a/CareKit/CareKit/iOS/Task/Synchronizers/OCKButtonLogTaskViewSynchronizer.swift b/CareKit/CareKit/iOS/Task/Synchronizers/OCKButtonLogTaskViewSynchronizer.swift index a29d26547f..33408f0027 100644 --- a/CareKit/CareKit/iOS/Task/Synchronizers/OCKButtonLogTaskViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Task/Synchronizers/OCKButtonLogTaskViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/Synchronizers/OCKChecklistTaskViewSynchronizer.swift b/CareKit/CareKit/iOS/Task/Synchronizers/OCKChecklistTaskViewSynchronizer.swift index f9e6e5cf0a..1388b9b00c 100644 --- a/CareKit/CareKit/iOS/Task/Synchronizers/OCKChecklistTaskViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Task/Synchronizers/OCKChecklistTaskViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/Synchronizers/OCKGridTaskViewSynchronizer.swift b/CareKit/CareKit/iOS/Task/Synchronizers/OCKGridTaskViewSynchronizer.swift index c86d83628f..2f9273c091 100644 --- a/CareKit/CareKit/iOS/Task/Synchronizers/OCKGridTaskViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Task/Synchronizers/OCKGridTaskViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/Synchronizers/OCKInstructionsTaskViewSynchronizer.swift b/CareKit/CareKit/iOS/Task/Synchronizers/OCKInstructionsTaskViewSynchronizer.swift index 040854763f..0bf65e98df 100644 --- a/CareKit/CareKit/iOS/Task/Synchronizers/OCKInstructionsTaskViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Task/Synchronizers/OCKInstructionsTaskViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/Synchronizers/OCKSimpleTaskViewSynchronizer.swift b/CareKit/CareKit/iOS/Task/Synchronizers/OCKSimpleTaskViewSynchronizer.swift index 0b6d3bc0fb..973648effd 100644 --- a/CareKit/CareKit/iOS/Task/Synchronizers/OCKSimpleTaskViewSynchronizer.swift +++ b/CareKit/CareKit/iOS/Task/Synchronizers/OCKSimpleTaskViewSynchronizer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKButtonLogViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKButtonLogViewController.swift index 35f81cba52..7b961a94dc 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKButtonLogViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKButtonLogViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKChecklistTaskViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKChecklistTaskViewController.swift index 80de615580..4b257dcb2b 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKChecklistTaskViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKChecklistTaskViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKGridTaskViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKGridTaskViewController.swift index 4bcd9c685f..af8d310311 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKGridTaskViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKGridTaskViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKInstructionsTaskViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKInstructionsTaskViewController.swift index fa4d80bfbd..79148a72f4 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKInstructionsTaskViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKInstructionsTaskViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKSimpleTaskViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKSimpleTaskViewController.swift index b54ba7d634..bd066a5d39 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKSimpleTaskViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKSimpleTaskViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import Foundation diff --git a/CareKit/CareKit/iOS/Task/View Controllers/OCKTaskViewController.swift b/CareKit/CareKit/iOS/Task/View Controllers/OCKTaskViewController.swift index 9234a6083a..a407870ced 100644 --- a/CareKit/CareKit/iOS/Task/View Controllers/OCKTaskViewController.swift +++ b/CareKit/CareKit/iOS/Task/View Controllers/OCKTaskViewController.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Calendar/OCKWeekCalendarView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Calendar/OCKWeekCalendarView+Updatable.swift index ea019e35bd..5fc6a35951 100644 --- a/CareKit/CareKit/iOS/View Updaters/Calendar/OCKWeekCalendarView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Calendar/OCKWeekCalendarView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitUI import Foundation diff --git a/CareKit/CareKit/iOS/View Updaters/Chart/OCKCartesianChartView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Chart/OCKCartesianChartView+Updatable.swift index 8c9c2c7e7c..c0c7ed41a6 100644 --- a/CareKit/CareKit/iOS/View Updaters/Chart/OCKCartesianChartView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Chart/OCKCartesianChartView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Contact/OCKDetailedContactView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Contact/OCKDetailedContactView+Updatable.swift index c42587d453..007d68fc8f 100644 --- a/CareKit/CareKit/iOS/View Updaters/Contact/OCKDetailedContactView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Contact/OCKDetailedContactView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Contact/OCKSimpleContactView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Contact/OCKSimpleContactView+Updatable.swift index f7b33af72f..2615ab6180 100644 --- a/CareKit/CareKit/iOS/View Updaters/Contact/OCKSimpleContactView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Contact/OCKSimpleContactView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Task/OCKChecklistTaskView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Task/OCKChecklistTaskView+Updatable.swift index f8818b2e57..2795adf560 100644 --- a/CareKit/CareKit/iOS/View Updaters/Task/OCKChecklistTaskView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Task/OCKChecklistTaskView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Task/OCKGridTaskView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Task/OCKGridTaskView+Updatable.swift index 8f47f2357d..ac9ad47910 100644 --- a/CareKit/CareKit/iOS/View Updaters/Task/OCKGridTaskView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Task/OCKGridTaskView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Task/OCKInstructionsTaskView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Task/OCKInstructionsTaskView+Updatable.swift index 2a99197553..c68b46d7a1 100644 --- a/CareKit/CareKit/iOS/View Updaters/Task/OCKInstructionsTaskView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Task/OCKInstructionsTaskView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Task/OCKLogTaskView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Task/OCKLogTaskView+Updatable.swift index b2ad2b5d3e..bdbb8d52bc 100644 --- a/CareKit/CareKit/iOS/View Updaters/Task/OCKLogTaskView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Task/OCKLogTaskView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Task/OCKSimpleTaskView+Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Task/OCKSimpleTaskView+Updatable.swift index 8355581a8e..1197741960 100644 --- a/CareKit/CareKit/iOS/View Updaters/Task/OCKSimpleTaskView+Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Task/OCKSimpleTaskView+Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKit/iOS/View Updaters/Updatable.swift b/CareKit/CareKit/iOS/View Updaters/Updatable.swift index 2220cb7d06..2d8f88e45f 100644 --- a/CareKit/CareKit/iOS/View Updaters/Updatable.swift +++ b/CareKit/CareKit/iOS/View Updaters/Updatable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Calendar/TestCustomCalendarViewSynchronizer.swift b/CareKit/CareKitTests/Calendar/TestCustomCalendarViewSynchronizer.swift index 76444aafeb..0207f030ab 100644 --- a/CareKit/CareKitTests/Calendar/TestCustomCalendarViewSynchronizer.swift +++ b/CareKit/CareKitTests/Calendar/TestCustomCalendarViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Calendar/TestWeekCalendarViewSynchronizer.swift b/CareKit/CareKitTests/Calendar/TestWeekCalendarViewSynchronizer.swift index 9c206d58bf..8b565bbfc7 100644 --- a/CareKit/CareKitTests/Calendar/TestWeekCalendarViewSynchronizer.swift +++ b/CareKit/CareKitTests/Calendar/TestWeekCalendarViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Chart/TestCartesianChartViewSynchronizer.swift b/CareKit/CareKitTests/Chart/TestCartesianChartViewSynchronizer.swift index b8ff290317..fdb73aa7f3 100644 --- a/CareKit/CareKitTests/Chart/TestCartesianChartViewSynchronizer.swift +++ b/CareKit/CareKitTests/Chart/TestCartesianChartViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Chart/TestCustomChartViewSynchronizer.swift b/CareKit/CareKitTests/Chart/TestCustomChartViewSynchronizer.swift index 1f1d60cc18..f9e8414623 100644 --- a/CareKit/CareKitTests/Chart/TestCustomChartViewSynchronizer.swift +++ b/CareKit/CareKitTests/Chart/TestCustomChartViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Contact/TestContactListViewSynchronizer.swift b/CareKit/CareKitTests/Contact/TestContactListViewSynchronizer.swift index e11ff6fb14..0c24703fe8 100644 --- a/CareKit/CareKitTests/Contact/TestContactListViewSynchronizer.swift +++ b/CareKit/CareKitTests/Contact/TestContactListViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Contact/TestCustomContactViewSynchronizer.swift b/CareKit/CareKitTests/Contact/TestCustomContactViewSynchronizer.swift index 3c9b52fe0d..25f524734d 100644 --- a/CareKit/CareKitTests/Contact/TestCustomContactViewSynchronizer.swift +++ b/CareKit/CareKitTests/Contact/TestCustomContactViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Contact/TestDetailedContactViewSynchronizer.swift b/CareKit/CareKitTests/Contact/TestDetailedContactViewSynchronizer.swift index fb0a57564b..87c7ac2057 100644 --- a/CareKit/CareKitTests/Contact/TestDetailedContactViewSynchronizer.swift +++ b/CareKit/CareKitTests/Contact/TestDetailedContactViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Contact/TestSimpleContactViewSynchronizer.swift b/CareKit/CareKitTests/Contact/TestSimpleContactViewSynchronizer.swift index d5b69fc7d5..d8576f455c 100644 --- a/CareKit/CareKitTests/Contact/TestSimpleContactViewSynchronizer.swift +++ b/CareKit/CareKitTests/Contact/TestSimpleContactViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Higher Order/TestDailyTasksPageViewController.swift b/CareKit/CareKitTests/Higher Order/TestDailyTasksPageViewController.swift index 76b5a7713d..1f6e4d5636 100644 --- a/CareKit/CareKitTests/Higher Order/TestDailyTasksPageViewController.swift +++ b/CareKit/CareKitTests/Higher Order/TestDailyTasksPageViewController.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit @testable import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Higher Order/TestListView.swift b/CareKit/CareKitTests/Higher Order/TestListView.swift index fca91b04af..b9af3171ff 100644 --- a/CareKit/CareKitTests/Higher Order/TestListView.swift +++ b/CareKit/CareKitTests/Higher Order/TestListView.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKit import Foundation import XCTest diff --git a/CareKit/CareKitTests/Higher Order/TestWeekCalendarPageViewController.swift b/CareKit/CareKitTests/Higher Order/TestWeekCalendarPageViewController.swift index 66a81bed83..b9e2bdaceb 100644 --- a/CareKit/CareKitTests/Higher Order/TestWeekCalendarPageViewController.swift +++ b/CareKit/CareKitTests/Higher Order/TestWeekCalendarPageViewController.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKit import CareKitStore import Foundation diff --git a/CareKit/CareKitTests/Synchronization/TestSynchronizedViewController.swift b/CareKit/CareKitTests/Synchronization/TestSynchronizedViewController.swift index de00d416da..de9f20274a 100644 --- a/CareKit/CareKitTests/Synchronization/TestSynchronizedViewController.swift +++ b/CareKit/CareKitTests/Synchronization/TestSynchronizedViewController.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) @testable import CareKit import AsyncAlgorithms diff --git a/CareKit/CareKitTests/Task/TestButtonLogTaskViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestButtonLogTaskViewSynchronizer.swift index f5c6d8d204..4c6e5cadc7 100644 --- a/CareKit/CareKitTests/Task/TestButtonLogTaskViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestButtonLogTaskViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Task/TestChecklistViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestChecklistViewSynchronizer.swift index 5e59ddf1e1..ffc90da5fb 100644 --- a/CareKit/CareKitTests/Task/TestChecklistViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestChecklistViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Task/TestCustomTaskViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestCustomTaskViewSynchronizer.swift index a4c6b2daad..98f9dc4df6 100644 --- a/CareKit/CareKitTests/Task/TestCustomTaskViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestCustomTaskViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import CareKit import CareKitStore import CareKitUI diff --git a/CareKit/CareKitTests/Task/TestGridTaskViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestGridTaskViewSynchronizer.swift index c3ca71a28a..47b6991978 100644 --- a/CareKit/CareKitTests/Task/TestGridTaskViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestGridTaskViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Task/TestInstructionsTaskViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestInstructionsTaskViewSynchronizer.swift index 6edf620e57..997d81bd55 100644 --- a/CareKit/CareKitTests/Task/TestInstructionsTaskViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestInstructionsTaskViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitUI import Foundation diff --git a/CareKit/CareKitTests/Task/TestSimpleTaskViewSynchronizer.swift b/CareKit/CareKitTests/Task/TestSimpleTaskViewSynchronizer.swift index 63b808a430..70d59587ea 100644 --- a/CareKit/CareKitTests/Task/TestSimpleTaskViewSynchronizer.swift +++ b/CareKit/CareKitTests/Task/TestSimpleTaskViewSynchronizer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKit import CareKitUI import Foundation diff --git a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj index be1312c319..d3b7f3929b 100644 --- a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj +++ b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj @@ -537,13 +537,13 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Debug; @@ -577,12 +577,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Release; @@ -604,12 +604,12 @@ PRODUCT_BUNDLE_IDENTIFIER = com.Apple.com.CareKitFHIRTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Debug; @@ -631,11 +631,11 @@ PRODUCT_BUNDLE_IDENTIFIER = com.Apple.com.CareKitFHIRTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Release; diff --git a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj index d92ce27943..2dc4995b5b 100644 --- a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj +++ b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj @@ -1388,6 +1388,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 13.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; PRODUCT_BUNDLE_IDENTIFIER = org.carekit.CareKitStore; @@ -1395,12 +1396,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Debug; @@ -1429,6 +1430,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 13.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; PRODUCT_BUNDLE_IDENTIFIER = org.carekit.CareKitStore; @@ -1436,12 +1438,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Release; @@ -1451,6 +1453,7 @@ buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = CareKitStoreTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -1459,11 +1462,13 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.Apple.CareKitStoreTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; - TARGETED_DEVICE_FAMILY = "1,2,4"; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Debug; }; @@ -1472,6 +1477,7 @@ buildSettings = { ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = CareKitStoreTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -1480,11 +1486,13 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.Apple.CareKitStoreTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; - TARGETED_DEVICE_FAMILY = "1,2,4"; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Release; }; diff --git a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift index 0f08f114b5..37a2f359c5 100644 --- a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift +++ b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift @@ -129,7 +129,11 @@ class TestHealthKitPassthroughStoreEvents: XCTestCase { case heartRateTask.id: XCTAssertEqual(outcomeValues.count, 2) XCTAssertEqual(outcomeValues.first?.doubleValue, 70) + #if !os(visionOS) XCTAssertEqual(outcomeValues[safe: 1]?.doubleValue, 80) + #else + XCTAssertEqual(outcomeValues[1].doubleValue, 80) + #endif default: XCTFail("Unexpected task") diff --git a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift index e283d6e63a..e9f5c5b9a4 100644 --- a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift +++ b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift @@ -200,7 +200,7 @@ class TestPersistentStoreCoordinator: XCTestCase { XCTAssertThrowsError(try coordinator.addAnyTaskAndWait(task)) } -#if !os(watchOS) +#if !os(watchOS) && !os(visionOS) @available(iOS 15, watchOS 8, *) func testStoreCoordinatorDoesNotSendNormalOutcomesToHealthKit() { let coordinator = OCKStoreCoordinator() diff --git a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj index a159c2cc82..6122e515ff 100644 --- a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj +++ b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj @@ -874,11 +874,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Debug; }; @@ -896,11 +896,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = Apple.CareKitUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; }; name = Release; }; @@ -1108,12 +1108,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Debug; @@ -1148,12 +1148,12 @@ RUN_DOCUMENTATION_COMPILER = YES; SDKROOT = auto; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator"; SUPPORTS_MACCATALYST = YES; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SUPPORTS_UIKITFORMAC = NO; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; - TARGETED_DEVICE_FAMILY = "1,2,4"; + TARGETED_DEVICE_FAMILY = "1,2,4,7"; WATCHOS_DEPLOYMENT_TARGET = 7.0; }; name = Release; diff --git a/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift b/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift index b14d0336bc..207dab0569 100644 --- a/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift +++ b/CareKitUI/CareKitUI/Shared/Style/OCKColorStyler.swift @@ -36,7 +36,7 @@ import UIKit /// Defines color constants. public protocol OCKColorStyler { - #if os(iOS) + #if os(iOS) || os(visionOS) var label: UIColor { get } var secondaryLabel: UIColor { get } @@ -84,7 +84,7 @@ public protocol OCKColorStyler { /// Defines default values for color constants. public extension OCKColorStyler { - #if os(iOS) + #if os(iOS) || os(visionOS) var label: UIColor { .label } var secondaryLabel: UIColor { .secondaryLabel } @@ -127,7 +127,7 @@ public extension OCKColorStyler { var quaternaryCustomFill: UIColor { #colorLiteral(red: 0.462745098, green: 0.462745098, blue: 0.5019607843, alpha: 0.18) } #elseif os(macOS) - + var secondaryCustomGroupedBackground: Color { .white } var tertiaryCustomFill: Color { .white } var white: Color { .white } @@ -136,7 +136,7 @@ public extension OCKColorStyler { #endif - #if canImport(UIKit) + #if os(iOS) || os(visionOS) || os(watchOS) var white: UIColor { .white } var black: UIColor { .black } diff --git a/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift b/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift index c6dd1c54a8..78c87d735d 100644 --- a/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift +++ b/CareKitUI/CareKitUI/Shared/Task/InstructionsTaskView.swift @@ -32,7 +32,7 @@ import SwiftUI #if os(iOS) private let completionButtonTextPadding: CGFloat = 14 -#elseif os(watchOS) || os(macOS) +#else private let completionButtonTextPadding: CGFloat = 8 #endif diff --git a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift index af9040a96b..c223a63c67 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/Layers/OCKGridLayer.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift index 2be7382b38..ef8b612edb 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianChartView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import Foundation import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift index 9e405df6fe..dc1c8ec349 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKCartesianGraphView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift b/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift index 2fccc801c7..3bbd0622d9 100644 --- a/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift +++ b/CareKitUI/CareKitUI/iOS/Charts/OCKGridView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift index 4362342205..07b86c1fd4 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKDetailedContactView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift b/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift index eb8b22d40f..e40eaa0435 100644 --- a/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift +++ b/CareKitUI/CareKitUI/iOS/Contact/OCKSimpleContactView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift index 12fc16f63a..981fbca8f0 100644 --- a/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift +++ b/CareKitUI/CareKitUI/iOS/Detail View/OCKDetailView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift b/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift index cee3645915..901201a381 100644 --- a/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift +++ b/CareKitUI/CareKitUI/iOS/Featured Content/OCKFeaturedContentView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift b/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift index 0e434c369e..3691d59a35 100644 --- a/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift +++ b/CareKitUI/CareKitUI/iOS/Link/LinkButton.swift @@ -120,7 +120,7 @@ private struct InAppContent: View { if let url = link.url { switch link { case .website: - webView(withURL: url) + webView(withURL: url, link: link) .edgesIgnoringSafeArea(.bottom) default: fatalError("Link type does not support in-app content") @@ -128,11 +128,11 @@ private struct InAppContent: View { } } - func webView(withURL url: URL) -> some View { - #if !os(macOS) + func webView(withURL url: URL, link: LinkItem) -> some View { + #if !os(macOS) && !os(visionOS) return SafariView(url: url) #else - return Link(destination: url, label: { EmptyView() }) + return Link(link.title, destination: url) #endif } } diff --git a/CareKitUI/CareKitUI/iOS/Link/SafariView.swift b/CareKitUI/CareKitUI/iOS/Link/SafariView.swift index 3146451c52..4a215428be 100644 --- a/CareKitUI/CareKitUI/iOS/Link/SafariView.swift +++ b/CareKitUI/CareKitUI/iOS/Link/SafariView.swift @@ -43,7 +43,9 @@ struct SafariView: UIViewControllerRepresentable { func makeUIViewController(context: UIViewControllerRepresentableContext) -> SFSafariViewController { let config = SFSafariViewController.Configuration() + #if !os(visionOS) config.barCollapsingEnabled = true + #endif return SFSafariViewController(url: url, configuration: config) } diff --git a/CareKitUI/CareKitUI/iOS/OCKCardable.swift b/CareKitUI/CareKitUI/iOS/OCKCardable.swift index 0ee19a5741..2d8d1bdf3b 100644 --- a/CareKitUI/CareKitUI/iOS/OCKCardable.swift +++ b/CareKitUI/CareKitUI/iOS/OCKCardable.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift index cc3be36b53..e917fb2515 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKLogButtonCell.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift index 85f4baf532..3bdf7d2cf1 100644 --- a/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/Collection/OCKSelfSizingCollectionView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift index 6ecdf62308..a960ebc723 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKButtonLogTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift index 2e1ba7ef23..69fcf2869b 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKChecklistTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift index 83c179fed5..99c9b0639b 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKGridTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift index a937858ece..a78b12984f 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKInstructionsTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift index 3876473957..db8b11db0e 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKLogTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift b/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift index 689ed1544d..b9ecb3e9e6 100644 --- a/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift +++ b/CareKitUI/CareKitUI/iOS/Task/OCKSimpleTaskView.swift @@ -27,7 +27,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) import UIKit diff --git a/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift b/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift index aa25769614..449a7d9a59 100644 --- a/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift +++ b/CareKitUI/CareKitUI/iOS/Views/OCKSeparatorView.swift @@ -66,7 +66,11 @@ open class OCKSeparatorView: OCKView { super.styleDidChange() let cachedStyle = style() backgroundColor = cachedStyle.color.separator + #if os(iOS) + heightConstraint?.constant = cachedStyle.dimension.separatorHeight + + #endif } } #endif diff --git a/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift b/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift index ea2a396c0b..88d69eb7c9 100644 --- a/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift +++ b/CareKitUI/CareKitUITests/Task/TestGridTaskView.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(watchOS) && !os(macOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @testable import CareKitUI import Foundation import XCTest From 857dd839c2a3b9d01f165fdb4ef4c1d929460ea3 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 10:44:02 -0700 Subject: [PATCH 08/22] add visionOS to CI --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index b9e5b11028..42b4c0fa76 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-14 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""'] + destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""', 'platform=visionOS\ Simulator,OS=1.2,name=Apple\ Vision\ Pro CODE_SIGN_IDENTITY=""'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 From 41aee7b3fc1588a43a3db8e83b3de4f5a9b0bde2 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 10:48:09 -0700 Subject: [PATCH 09/22] add min visionOS requirement --- CareKit/CareKit.xcodeproj/project.pbxproj | 2 ++ CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj | 2 ++ CareKitStore/CareKitStore.xcodeproj/project.pbxproj | 2 ++ CareKitUI/CareKitUI.xcodeproj/project.pbxproj | 2 ++ 4 files changed, 8 insertions(+) diff --git a/CareKit/CareKit.xcodeproj/project.pbxproj b/CareKit/CareKit.xcodeproj/project.pbxproj index 2e74aefde2..2d8bd5df86 100644 --- a/CareKit/CareKit.xcodeproj/project.pbxproj +++ b/CareKit/CareKit.xcodeproj/project.pbxproj @@ -1253,6 +1253,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -1330,6 +1331,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; diff --git a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj index d3b7f3929b..c1808bc775 100644 --- a/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj +++ b/CareKitFHIR/CareKitFHIR.xcodeproj/project.pbxproj @@ -439,6 +439,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -505,6 +506,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; diff --git a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj index 2dc4995b5b..6b1408632d 100644 --- a/CareKitStore/CareKitStore.xcodeproj/project.pbxproj +++ b/CareKitStore/CareKitStore.xcodeproj/project.pbxproj @@ -1276,6 +1276,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -1361,6 +1362,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; diff --git a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj index 6122e515ff..9f02c647d5 100644 --- a/CareKitUI/CareKitUI.xcodeproj/project.pbxproj +++ b/CareKitUI/CareKitUI.xcodeproj/project.pbxproj @@ -991,6 +991,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -1075,6 +1076,7 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 7.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; From 8ae3970a022a359c47be865cc80ebe23b5684268 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 19:43:05 -0700 Subject: [PATCH 10/22] fix file protections for macOS --- .../CareKitStore/CoreData/OCKStore.swift | 15 ++++++- .../OCKWatchConnectivityPeer.swift | 4 ++ .../TestCoreDataSchema+Migrations.swift | 2 + ...TestHealthKitPassthroughStore+Events.swift | 2 +- .../OCKStore/TestStore.swift | 42 +++++++++++++++++++ .../TestPersistentStoreCoordinator.swift | 2 +- .../TestWatchConnectivityPeer.swift | 4 ++ 7 files changed, 67 insertions(+), 4 deletions(-) diff --git a/CareKitStore/CareKitStore/CoreData/OCKStore.swift b/CareKitStore/CareKitStore/CoreData/OCKStore.swift index 4ad1ebd9b4..9e2ee5928b 100644 --- a/CareKitStore/CareKitStore/CoreData/OCKStore.swift +++ b/CareKitStore/CareKitStore/CoreData/OCKStore.swift @@ -251,17 +251,17 @@ open class OCKStore: OCKStoreProtocol, Equatable { } private func loadStore(into container: NSPersistentContainer) -> Bool { - let descriptor = NSPersistentStoreDescription() descriptor.url = storeURL descriptor.type = NSSQLiteStoreType descriptor.shouldAddStoreAsynchronously = false + #if !os(macOS) descriptor.setOption(storeType.securityClass as NSObject, forKey: NSPersistentStoreFileProtectionKey) + #endif container.persistentStoreDescriptions = [descriptor] // This closure runs synchronously because of the settings above var loadError: Error? - container.loadPersistentStores(completionHandler: { _, error in if let error = error as NSError? { loadError = error @@ -277,6 +277,7 @@ open class OCKStore: OCKStoreProtocol, Equatable { var resourceValues = URLResourceValues() resourceValues.isExcludedFromBackup = true try storeUrl.setResourceValues(resourceValues) + try self.updateFileProtectionPathAtURL(storeUrl) } catch { loadError = error } @@ -292,6 +293,16 @@ open class OCKStore: OCKStoreProtocol, Equatable { return true } + private func updateFileProtectionPathAtURL(_ url: URL) throws { + #if os(macOS) + // Currently only needed for macOS, other OS's set through CoreData. + let fileManager = FileManager.default + var attributes = try fileManager.attributesOfItem(atPath: url.path) + attributes[.protectionKey] = storeType.securityClass + try fileManager.setAttributes(attributes, ofItemAtPath: url.path) + #endif + } + @objc private func contextDidSave(_ notification: Notification) { guard let inserts = notification.userInfo?[NSInsertedObjectsKey] as? Set else { diff --git a/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift b/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift index 6363ef0fb9..af7e21a8f8 100644 --- a/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift +++ b/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift @@ -28,6 +28,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if !os(macOS) + import Foundation import WatchConnectivity @@ -245,3 +247,5 @@ open class OCKWatchConnectivityPeer: OCKRemoteSynchronizable { #endif } } + +#endif diff --git a/CareKitStore/CareKitStoreTests/CoreDataSchema/TestCoreDataSchema+Migrations.swift b/CareKitStore/CareKitStoreTests/CoreDataSchema/TestCoreDataSchema+Migrations.swift index 4a953b0530..2464601edb 100644 --- a/CareKitStore/CareKitStoreTests/CoreDataSchema/TestCoreDataSchema+Migrations.swift +++ b/CareKitStore/CareKitStoreTests/CoreDataSchema/TestCoreDataSchema+Migrations.swift @@ -76,7 +76,9 @@ class TestCoreDataSchemaMigrations: XCTestCase { descriptor.url = dir.appendingPathComponent("SampleStore2.0.sqlite") descriptor.type = NSSQLiteStoreType descriptor.shouldAddStoreAsynchronously = false + #if !os(macOS) descriptor.setOption(FileProtectionType.complete as NSObject, forKey: NSPersistentStoreFileProtectionKey) + #endif descriptor.shouldMigrateStoreAutomatically = true let container = NSPersistentContainer(name: "sut", managedObjectModel: sharedManagedObjectModel) diff --git a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift index 37a2f359c5..b67a30de90 100644 --- a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift +++ b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift @@ -129,7 +129,7 @@ class TestHealthKitPassthroughStoreEvents: XCTestCase { case heartRateTask.id: XCTAssertEqual(outcomeValues.count, 2) XCTAssertEqual(outcomeValues.first?.doubleValue, 70) - #if !os(visionOS) + #if !os(visionOS) && !os(macOS) XCTAssertEqual(outcomeValues[safe: 1]?.doubleValue, 80) #else XCTAssertEqual(outcomeValues[1].doubleValue, 80) diff --git a/CareKitStore/CareKitStoreTests/OCKStore/TestStore.swift b/CareKitStore/CareKitStoreTests/OCKStore/TestStore.swift index 7a9df4b217..b7269ba11c 100644 --- a/CareKitStore/CareKitStoreTests/OCKStore/TestStore.swift +++ b/CareKitStore/CareKitStoreTests/OCKStore/TestStore.swift @@ -77,4 +77,46 @@ class TestStore: XCTestCase { XCTAssertEqual(store.context.clockTime, 2) } } + + #if os(macOS) + func checkStoreProtection(_ protection: FileProtectionType) throws { + let store = OCKStore(name: UUID().uuidString, type: .onDisk(protection: protection)) + _ = store.context // Storage is created lazily. Access context to force file creation. + let fileManager = FileManager.default + + let storePath = store.storeURL.path + XCTAssertTrue(FileManager.default.fileExists(atPath: storePath)) + + let attributes = try fileManager.attributesOfItem(atPath: storePath) + let currentFileProtectionType = try XCTUnwrap(attributes[.protectionKey] as? FileProtectionType) + + // macOS lowest protection level is NSFileProtectionCompleteUntilFirstUserAuthentication. + if protection == .none { + XCTAssertEqual(currentFileProtectionType, .completeUntilFirstUserAuthentication) + } else { + XCTAssertEqual(currentFileProtectionType, protection) + } + + XCTAssertNoThrow(try store.delete()) + XCTAssertFalse(fileManager.fileExists(atPath: store.storeURL.path)) + } + + func testStoreOnDiskComplete() throws { + try checkStoreProtection(.complete) + } + + func testStoreOnDiskCompleteUnlessOpen() throws { + try checkStoreProtection(.completeUnlessOpen) + } + + func testStoreOnDiskCompleteUntilFirstUserAuthentication() throws { + try checkStoreProtection(.completeUntilFirstUserAuthentication) + } + + func testStoreOnDiskNone() throws { + try checkStoreProtection(.none) + } + + #endif + } diff --git a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift index e9f5c5b9a4..83568c1586 100644 --- a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift +++ b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift @@ -200,7 +200,7 @@ class TestPersistentStoreCoordinator: XCTestCase { XCTAssertThrowsError(try coordinator.addAnyTaskAndWait(task)) } -#if !os(watchOS) && !os(visionOS) +#if !os(watchOS) && !os(macOS) && !os(visionOS) @available(iOS 15, watchOS 8, *) func testStoreCoordinatorDoesNotSendNormalOutcomesToHealthKit() { let coordinator = OCKStoreCoordinator() diff --git a/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift b/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift index 866ef45a9c..61f920f220 100644 --- a/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift +++ b/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift @@ -28,6 +28,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if !os(macOS) + @testable import CareKitStore import XCTest @@ -149,3 +151,5 @@ private final class MockPeer: OCKWatchConnectivityPeer { self.peersStore.resolveConflicts(completion: completion) } } + +#endif From 5421c7b58dfd96c38dbf195ae56b3c1f020b1f6b Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 19:58:58 -0700 Subject: [PATCH 11/22] nit --- .../CoreData/Synchronization/OCKWatchConnectivityPeer.swift | 2 +- CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift b/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift index af7e21a8f8..9beeba28bd 100644 --- a/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift +++ b/CareKitStore/CareKitStore/CoreData/Synchronization/OCKWatchConnectivityPeer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(macOS) +#if canImport(WatchConnectivity) import Foundation import WatchConnectivity diff --git a/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift b/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift index 61f920f220..38c9e98c8f 100644 --- a/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift +++ b/CareKitStore/CareKitStoreTests/TestWatchConnectivityPeer.swift @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !os(macOS) +#if canImport(WatchConnectivity) @testable import CareKitStore import XCTest From d9149c34e5afb9102765c5ad7a68bc895c66e6f8 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Fri, 5 Jul 2024 20:28:47 -0700 Subject: [PATCH 12/22] nits --- CareKitStore/CareKitStore/CoreData/OCKStore.swift | 4 ++++ .../TestHealthKitPassthroughStore+Events.swift | 2 +- CareKitUI/CareKitUI/Shared/OSValue.swift | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CareKitStore/CareKitStore/CoreData/OCKStore.swift b/CareKitStore/CareKitStore/CoreData/OCKStore.swift index 9e2ee5928b..0ab0c9ba02 100644 --- a/CareKitStore/CareKitStore/CoreData/OCKStore.swift +++ b/CareKitStore/CareKitStore/CoreData/OCKStore.swift @@ -251,6 +251,7 @@ open class OCKStore: OCKStoreProtocol, Equatable { } private func loadStore(into container: NSPersistentContainer) -> Bool { + let descriptor = NSPersistentStoreDescription() descriptor.url = storeURL descriptor.type = NSSQLiteStoreType @@ -262,6 +263,7 @@ open class OCKStore: OCKStoreProtocol, Equatable { // This closure runs synchronously because of the settings above var loadError: Error? + container.loadPersistentStores(completionHandler: { _, error in if let error = error as NSError? { loadError = error @@ -294,6 +296,7 @@ open class OCKStore: OCKStoreProtocol, Equatable { } private func updateFileProtectionPathAtURL(_ url: URL) throws { + #if os(macOS) // Currently only needed for macOS, other OS's set through CoreData. let fileManager = FileManager.default @@ -301,6 +304,7 @@ open class OCKStore: OCKStoreProtocol, Equatable { attributes[.protectionKey] = storeType.securityClass try fileManager.setAttributes(attributes, ofItemAtPath: url.path) #endif + } @objc diff --git a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift index b67a30de90..0d7e9a5c95 100644 --- a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift +++ b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift @@ -129,7 +129,7 @@ class TestHealthKitPassthroughStoreEvents: XCTestCase { case heartRateTask.id: XCTAssertEqual(outcomeValues.count, 2) XCTAssertEqual(outcomeValues.first?.doubleValue, 70) - #if !os(visionOS) && !os(macOS) + #if !os(macOS) && !os(visionOS) XCTAssertEqual(outcomeValues[safe: 1]?.doubleValue, 80) #else XCTAssertEqual(outcomeValues[1].doubleValue, 80) diff --git a/CareKitUI/CareKitUI/Shared/OSValue.swift b/CareKitUI/CareKitUI/Shared/OSValue.swift index 1ada0ed2e1..58569165f7 100644 --- a/CareKitUI/CareKitUI/Shared/OSValue.swift +++ b/CareKitUI/CareKitUI/Shared/OSValue.swift @@ -31,7 +31,7 @@ import Foundation enum OS: String { - case iOS, watchOS, macOS + case iOS, watchOS, macOS, visionOS } @propertyWrapper @@ -45,6 +45,10 @@ struct OSValue { return values[.iOS] ?? defaultValue #elseif os(watchOS) return values[.watchOS] ?? defaultValue + #elseif os(macOS) + return values[.macOS] ?? defaultValue + #elseif os(visionOS) + return values[.visionOS] ?? defaultValue #else return defaultValue #endif From 3adb36207787462e903f9a4d00edd95a19a7aa65 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Sun, 29 Sep 2024 20:47:34 -0400 Subject: [PATCH 13/22] Update Xcode --- .github/workflows/swift.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 42b4c0fa76..d7e96772ae 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,11 +15,11 @@ jobs: runs-on: macos-14 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=17.5,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=10.5,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""', 'platform=visionOS\ Simulator,OS=1.2,name=Apple\ Vision\ Pro CODE_SIGN_IDENTITY=""'] + destination: ['platform=iOS\ Simulator,OS=18.0,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=11.0,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 - name: Set Xcode Version - run: sudo xcode-select -s /Applications/Xcode_15.4.app + run: sudo xcode-select -s /Applications/Xcode_16.0.app - name: Build run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -verbose -workspace CKWorkspace.xcworkspace -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} build test | xcpretty From b8ef1197e4f4dad5bdcad37e699f52118ddab8b5 Mon Sep 17 00:00:00 2001 From: Corey Date: Wed, 19 Feb 2025 19:37:01 -0800 Subject: [PATCH 14/22] Update swift.yml --- .github/workflows/swift.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index d7e96772ae..937ba1d665 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -12,14 +12,14 @@ concurrency: jobs: test: - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=18.0,name=iPhone\ 15\ Pro\ Max', 'platform=watchOS\ Simulator,OS=11.0,name=Apple\ Watch\ Series\ 7\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""'] + destination: ['platform=iOS\ Simulator,OS=18.2,name=iPhone\ 16\ Pro\ Max', 'platform=watchOS\ Simulator,OS=11.2,name=Apple\ Watch\ Series\ 10\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""', 'platform=visionOS\ Simulator,OS=2.2,name=Apple\ Vision\ Pro CODE_SIGN_IDENTITY=""'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 - name: Set Xcode Version - run: sudo xcode-select -s /Applications/Xcode_16.0.app + run: sudo xcode-select -s /Applications/Xcode_16.2.app - name: Build run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -verbose -workspace CKWorkspace.xcworkspace -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} build test | xcpretty From dff891a9cfb3326f7f8484afc5014a795b44822b Mon Sep 17 00:00:00 2001 From: Corey Date: Wed, 19 Feb 2025 19:59:52 -0800 Subject: [PATCH 15/22] replace xcpretty, it's producing errors --- .github/workflows/swift.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 937ba1d665..c17b3f6267 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -22,4 +22,5 @@ jobs: - name: Set Xcode Version run: sudo xcode-select -s /Applications/Xcode_16.2.app - name: Build - run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -verbose -workspace CKWorkspace.xcworkspace -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} build test | xcpretty + run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -verbose -workspace CKWorkspace.xcworkspace -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} build test 2>&1 | xcbeautify --renderer github-actions + env: From a7dce6751aa1f1eedc1cb0bebcfd011021c8d61c Mon Sep 17 00:00:00 2001 From: Corey Date: Wed, 19 Feb 2025 20:02:25 -0800 Subject: [PATCH 16/22] nit --- .github/workflows/swift.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index c17b3f6267..0761cea791 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -23,4 +23,3 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_16.2.app - name: Build run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -verbose -workspace CKWorkspace.xcworkspace -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} build test 2>&1 | xcbeautify --renderer github-actions - env: From 8b2862daf26b920aa5083e307a1bea0eb56d59fa Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Wed, 19 Feb 2025 20:13:40 -0800 Subject: [PATCH 17/22] retry tests on failure up to 3 times --- CareKit.xctestplan | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CareKit.xctestplan b/CareKit.xctestplan index 1a97956b01..f3cc4f977d 100644 --- a/CareKit.xctestplan +++ b/CareKit.xctestplan @@ -103,7 +103,8 @@ "containerPath" : "container:CareKit.xcodeproj", "identifier" : "8605A5B91C4F04EC00DD65FF", "name" : "CareKit" - } + }, + "testRepetitionMode" : "fixedIterations" }, "testTargets" : [ { From 3bad2978aec389fd2fab57cce219ef3d528699e1 Mon Sep 17 00:00:00 2001 From: Corey Date: Sat, 22 Feb 2025 17:40:30 -0800 Subject: [PATCH 18/22] Update swift.yml --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 0761cea791..769f613b51 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-15 strategy: matrix: - destination: ['platform=iOS\ Simulator,OS=18.2,name=iPhone\ 16\ Pro\ Max', 'platform=watchOS\ Simulator,OS=11.2,name=Apple\ Watch\ Series\ 10\ \(45mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""', 'platform=visionOS\ Simulator,OS=2.2,name=Apple\ Vision\ Pro CODE_SIGN_IDENTITY=""'] + destination: ['platform=iOS\ Simulator,OS=18.2,name=iPhone\ 16\ Pro\ Max', 'platform=watchOS\ Simulator,OS=11.2,name=Apple\ Watch\ Series\ 10\ \(46mm\)', 'platform=macOS CODE_SIGN_IDENTITY=""', 'platform=visionOS\ Simulator,OS=2.2,name=Apple\ Vision\ Pro CODE_SIGN_IDENTITY=""'] scheme: ['CareKit', 'CareKitStore', 'CareKitUI', 'CareKitFHIR'] steps: - uses: actions/checkout@v4 From 112264257dbf5d2f8f2eaecb3274e2c91e61f370 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Mon, 24 Feb 2025 19:34:43 -0800 Subject: [PATCH 19/22] repeat tests on store up to 3 times --- CareKit.xctestplan | 3 +-- CareKitStore/CareKitStoreTests/CareKitStore.xctestplan | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CareKit.xctestplan b/CareKit.xctestplan index f3cc4f977d..1a97956b01 100644 --- a/CareKit.xctestplan +++ b/CareKit.xctestplan @@ -103,8 +103,7 @@ "containerPath" : "container:CareKit.xcodeproj", "identifier" : "8605A5B91C4F04EC00DD65FF", "name" : "CareKit" - }, - "testRepetitionMode" : "fixedIterations" + } }, "testTargets" : [ { diff --git a/CareKitStore/CareKitStoreTests/CareKitStore.xctestplan b/CareKitStore/CareKitStoreTests/CareKitStore.xctestplan index 99cca52e5c..a6f3db0097 100644 --- a/CareKitStore/CareKitStoreTests/CareKitStore.xctestplan +++ b/CareKitStore/CareKitStoreTests/CareKitStore.xctestplan @@ -103,7 +103,8 @@ "containerPath" : "container:CareKitStore.xcodeproj", "identifier" : "E784B8F72232EED600736CA5", "name" : "CareKitStore" - } + }, + "testRepetitionMode" : "fixedIterations" }, "testTargets" : [ { From bae166fbad844116bd55f3d16130045ccca75a1d Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Mon, 24 Feb 2025 20:44:12 -0800 Subject: [PATCH 20/22] nit --- .../TestHealthKitPassthroughStore+Events.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift index 0d7e9a5c95..e3116590de 100644 --- a/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift +++ b/CareKitStore/CareKitStoreTests/OCKHealthKitStore/TestHealthKitPassthroughStore+Events.swift @@ -129,11 +129,7 @@ class TestHealthKitPassthroughStoreEvents: XCTestCase { case heartRateTask.id: XCTAssertEqual(outcomeValues.count, 2) XCTAssertEqual(outcomeValues.first?.doubleValue, 70) - #if !os(macOS) && !os(visionOS) - XCTAssertEqual(outcomeValues[safe: 1]?.doubleValue, 80) - #else XCTAssertEqual(outcomeValues[1].doubleValue, 80) - #endif default: XCTFail("Unexpected task") From 0cd2e3f34836788daccca252422218db4bcb7cb5 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Wed, 14 May 2025 00:35:11 -0700 Subject: [PATCH 21/22] add code back for macOS store --- .../CareKitStore/CoreData/OCKStore.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CareKitStore/CareKitStore/CoreData/OCKStore.swift b/CareKitStore/CareKitStore/CoreData/OCKStore.swift index 776d96dc56..ed6757cdf4 100644 --- a/CareKitStore/CareKitStore/CoreData/OCKStore.swift +++ b/CareKitStore/CareKitStore/CoreData/OCKStore.swift @@ -286,6 +286,13 @@ open class OCKStore: OCKStoreProtocol, Equatable { loadError = error return } + if case .onDisk = self.storeType { + do { + try self.updateFileProtectionPathAtURL(self.storeURL) + } catch { + loadError = error + } + } }) if let error = loadError { @@ -297,6 +304,16 @@ open class OCKStore: OCKStoreProtocol, Equatable { return true } + private func updateFileProtectionPathAtURL(_ url: URL) throws { + #if os(macOS) + // Currently only needed for macOS, other OS's set through CoreData. + let fileManager = FileManager.default + var attributes = try fileManager.attributesOfItem(atPath: url.path) + attributes[.protectionKey] = storeType.securityClass + try fileManager.setAttributes(attributes, ofItemAtPath: url.path) + #endif + } + @objc private func contextDidSave(_ notification: Notification) { guard let inserts = notification.userInfo?[NSInsertedObjectsKey] as? Set else { From 6c6e42747888968a7a2c986ce7c756cb9ef2cea9 Mon Sep 17 00:00:00 2001 From: Corey Baker Date: Wed, 14 May 2025 09:48:19 -0700 Subject: [PATCH 22/22] health stores can read/write on all OS's --- .../OCKStoreCoordinator.swift | 7 +---- .../TestPersistentStoreCoordinator.swift | 27 ++++++++++++++++--- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/CareKitStore/CareKitStore/StoreCoordinator/OCKStoreCoordinator.swift b/CareKitStore/CareKitStore/StoreCoordinator/OCKStoreCoordinator.swift index 6f9e0cea0c..58248a6398 100644 --- a/CareKitStore/CareKitStore/StoreCoordinator/OCKStoreCoordinator.swift +++ b/CareKitStore/CareKitStore/StoreCoordinator/OCKStoreCoordinator.swift @@ -326,18 +326,14 @@ open class OCKStoreCoordinator: OCKAnyStoreProtocol { /// - task: The task that needs to be written. open func taskStore(_ store: OCKAnyReadOnlyTaskStore, shouldHandleWritingTask task: OCKAnyTask) -> Bool { - #if os(iOS) if #available(iOS 15, watchOS 8, macOS 13.0, *) { // HealthKit stores should only respond to HealthKit tasks if store is OCKHealthKitPassthroughStore && !(task is OCKHealthKitTask) { return false } } - #endif // OCKStore should not respond to HealthKit tasks - #if os(iOS) if store is OCKStore && task is OCKHealthKitTask { return false } - #endif return true } @@ -360,14 +356,13 @@ open class OCKStoreCoordinator: OCKAnyStoreProtocol { /// - outcome: The outcome that needs to be written. open func outcomeStore(_ store: OCKAnyReadOnlyOutcomeStore, shouldHandleWritingOutcome outcome: OCKAnyOutcome) -> Bool { - #if os(iOS) || os(macOS) if #available(iOS 15, watchOS 8, macOS 13.0, *) { // Only the HK passthrough store should handle HK outcomes if outcome is OCKHealthKitOutcome || store is OCKHealthKitPassthroughStore { return store is OCKHealthKitPassthroughStore && outcome is OCKHealthKitOutcome } } - #endif + return true } } diff --git a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift index cc60fe79ed..1a889c8c0f 100644 --- a/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift +++ b/CareKitStore/CareKitStoreTests/OCKStoreCoordinator/TestPersistentStoreCoordinator.swift @@ -188,7 +188,25 @@ class TestPersistentStoreCoordinator: XCTestCase { } } - func testPersistentStoreCoordinatorDoesNotSendHealthKitTasksToOCKStore() { + @available(iOS 15, watchOS 8, macOS 13.0, *) + func testStoreCoordinatorDoesNotSendNormalTasksToOCKStore() { + let coordinator = OCKStoreCoordinator() + let store = OCKStore(name: UUID().uuidString, type: .inMemory) + let passthrough = OCKHealthKitPassthroughStore(store: store) + coordinator.attach(store: store) + coordinator.attach(eventStore: passthrough) + + let schedule = OCKSchedule.dailyAtTime(hour: 9, minutes: 0, start: Date(), end: nil, text: nil) + let task = OCKTask( + id: "task", title: nil, + carePlanUUID: nil, + schedule: schedule + ) + let willHandle = coordinator.taskStore(passthrough, shouldHandleWritingTask: task) + XCTAssertFalse(willHandle) + } + + func testStoreCoordinatorDoesNotSendHealthKitTasksToOCKStore() { let coordinator = OCKStoreCoordinator() let store = OCKStore(name: UUID().uuidString, type: .inMemory) coordinator.attach(store: store) @@ -200,12 +218,13 @@ class TestPersistentStoreCoordinator: XCTestCase { XCTAssertThrowsError(try coordinator.addAnyTaskAndWait(task)) } -#if !os(watchOS) && !os(macOS) && !os(visionOS) - @available(iOS 15, watchOS 8, *) + @available(iOS 15, watchOS 8, macOS 13.0, *) func testStoreCoordinatorDoesNotSendNormalOutcomesToHealthKit() { let coordinator = OCKStoreCoordinator() let store = OCKStore(name: UUID().uuidString, type: .inMemory) let passthrough = OCKHealthKitPassthroughStore(store: store) + coordinator.attach(store: store) + coordinator.attach(eventStore: passthrough) let outcome = OCKOutcome(taskUUID: UUID(), taskOccurrenceIndex: 0, values: []) let willHandle = coordinator.outcomeStore(passthrough, shouldHandleWritingOutcome: outcome) XCTAssertFalse(willHandle) @@ -214,11 +233,11 @@ class TestPersistentStoreCoordinator: XCTestCase { func testStoreCoordinatorDoesNotSendHealthKitOutcomesToOCKStore() { let coordinator = OCKStoreCoordinator() let store = OCKStore(name: UUID().uuidString, type: .inMemory) + coordinator.attach(store: store) let outcome = OCKHealthKitOutcome(taskUUID: UUID(), taskOccurrenceIndex: 0, values: []) let willHandle = coordinator.outcomeStore(store, shouldHandleWritingOutcome: outcome) XCTAssertFalse(willHandle) } -#endif @available(iOS 15, watchOS 8, macOS 13.0, *) func testCanAssociateHealthKitTaskWithCarePlan() throws {