Ask for permission to access Sleep data from healthkit

This commit is contained in:
2024-01-06 11:24:45 +01:00
parent 3aa391eb82
commit 7557e8c5bf
5 changed files with 54 additions and 0 deletions

View File

@@ -11,6 +11,7 @@
6C560B872B495DED00FDB70C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C560B862B495DED00FDB70C /* ContentView.swift */; };
6C560B892B495DEE00FDB70C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6C560B882B495DEE00FDB70C /* Assets.xcassets */; };
6C560B8C2B495DEE00FDB70C /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6C560B8B2B495DEE00FDB70C /* Preview Assets.xcassets */; };
6C560B932B495E3A00FDB70C /* HealthKitManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C560B922B495E3A00FDB70C /* HealthKitManager.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@@ -19,6 +20,8 @@
6C560B862B495DED00FDB70C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
6C560B882B495DEE00FDB70C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
6C560B8B2B495DEE00FDB70C /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
6C560B922B495E3A00FDB70C /* HealthKitManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthKitManager.swift; sourceTree = "<group>"; };
6C560B942B49605000FDB70C /* SleepDebt.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SleepDebt.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -51,8 +54,10 @@
6C560B832B495DED00FDB70C /* SleepDebt */ = {
isa = PBXGroup;
children = (
6C560B942B49605000FDB70C /* SleepDebt.entitlements */,
6C560B842B495DED00FDB70C /* SleepDebtApp.swift */,
6C560B862B495DED00FDB70C /* ContentView.swift */,
6C560B922B495E3A00FDB70C /* HealthKitManager.swift */,
6C560B882B495DEE00FDB70C /* Assets.xcassets */,
6C560B8A2B495DEE00FDB70C /* Preview Content */,
);
@@ -139,6 +144,7 @@
files = (
6C560B872B495DED00FDB70C /* ContentView.swift in Sources */,
6C560B852B495DED00FDB70C /* SleepDebtApp.swift in Sources */,
6C560B932B495E3A00FDB70C /* HealthKitManager.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -269,12 +275,14 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = SleepDebt/SleepDebt.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"SleepDebt/Preview Content\"";
DEVELOPMENT_TEAM = SSJBLTMP95;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHealthShareUsageDescription = "Please allow access to your sleep data to enjoy the features of SleepDebt";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -298,12 +306,14 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = SleepDebt/SleepDebt.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"SleepDebt/Preview Content\"";
DEVELOPMENT_TEAM = SSJBLTMP95;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHealthShareUsageDescription = "Please allow access to your sleep data to enjoy the features of SleepDebt";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;

View File

@@ -8,6 +8,7 @@
import SwiftUI
struct ContentView: View {
@EnvironmentObject var manager: HealthKitManager
var body: some View {
VStack {
Image(systemName: "globe")
@@ -21,4 +22,5 @@ struct ContentView: View {
#Preview {
ContentView()
.environmentObject(HealthKitManager())
}

View File

@@ -0,0 +1,30 @@
//
// HealthKitManager.swift
// SleepDebt
//
// Created by Oliver Hnát on 06.01.2024.
//
import Foundation
import HealthKit
class HealthKitManager: ObservableObject {
let healthStore = HKHealthStore()
init() {
let sleep = HKCategoryType(.sleepAnalysis)
let healthTypes: Set = [sleep]
Task {
do {
try await healthStore.requestAuthorization(toShare: [], read: healthTypes)
} catch {
print(error)
}
}
}
}

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.healthkit</key>
<true/>
<key>com.apple.developer.healthkit.access</key>
<array/>
</dict>
</plist>

View File

@@ -9,9 +9,11 @@ import SwiftUI
@main
struct SleepDebtApp: App {
@StateObject var healthKitManager = HealthKitManager()
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(healthKitManager)
}
}
}