├── .gitattributes
├── Screen Time
├── Resources
│ └── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── AccentColor.colorset
│ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── App
│ └── Screen_TimeApp.swift
├── Screen Time.entitlements
├── Extentions
│ ├── Logger.swift
│ └── ManagedSettingsStore.swift
├── Views
│ ├── ContentView.swift
│ └── ShieldView.swift
└── View Models
│ └── ShieldViewModel.swift
├── Screen Time.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── xcshareddata
│ └── xcschemes
│ │ ├── Screen Time.xcscheme
│ │ ├── Shield Action Extension.xcscheme
│ │ ├── Device Activity Monitor Extension.xcscheme
│ │ └── Shield Configuration Extension.xcscheme
└── project.pbxproj
├── Shield Action Extension
├── Shield_Action_Extension.entitlements
├── Info.plist
└── ShieldActionExtension.swift
├── Shield Configuration Extension
├── Shield_Configuration_Extension.entitlements
├── Info.plist
└── ShieldConfigurationExtension.swift
├── Device Activity Monitor Extension
├── Device_Activity_Monitor_Extension.entitlements
├── Info.plist
└── DeviceActivityMonitorExtension.swift
└── .gitignore
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Screen Time/Resources/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Screen Time/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Screen Time/Resources/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Screen Time/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "platform" : "ios",
6 | "size" : "1024x1024"
7 | }
8 | ],
9 | "info" : {
10 | "author" : "xcode",
11 | "version" : 1
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Screen Time/App/Screen_TimeApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Screen_TimeApp.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import SwiftUI
10 |
11 | @main
12 | struct Screen_TimeApp: App {
13 | var body: some Scene {
14 | WindowGroup {
15 | ContentView()
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Shield Action Extension/Shield_Action_Extension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.family-controls
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Shield Configuration Extension/Shield_Configuration_Extension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.family-controls
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Device Activity Monitor Extension/Device_Activity_Monitor_Extension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.family-controls
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Screen Time/Screen Time.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.family-controls
6 |
7 | com.apple.security.application-groups
8 |
9 | group.com.mac.Screen-Time
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Shield Action Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSExtension
6 |
7 | NSExtensionPointIdentifier
8 | com.apple.ManagedSettings.shield-action-service
9 | NSExtensionPrincipalClass
10 | $(PRODUCT_MODULE_NAME).ShieldActionExtension
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Device Activity Monitor Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSExtension
6 |
7 | NSExtensionPointIdentifier
8 | com.apple.deviceactivity.monitor-extension
9 | NSExtensionPrincipalClass
10 | $(PRODUCT_MODULE_NAME).DeviceActivityMonitorExtension
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Shield Configuration Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSExtension
6 |
7 | NSExtensionPointIdentifier
8 | com.apple.ManagedSettingsUI.shield-configuration-service
9 | NSExtensionPrincipalClass
10 | $(PRODUCT_MODULE_NAME).ShieldConfigurationExtension
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Screen Time/Extentions/Logger.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Logger.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import Foundation
10 | import os.log
11 |
12 | extension Logger {
13 | init(subsystemName: String, category: String) {
14 | guard let bundleIdentifier = Bundle.main.bundleIdentifier else {
15 | fatalError("Unable to retrieve bundle identifier.")
16 | }
17 |
18 | self.init(subsystem: bundleIdentifier + ".\(subsystemName)", category: category)
19 | }
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/Screen Time/Views/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import SwiftUI
10 | import FamilyControls
11 | import os.log
12 |
13 | private let logger = Logger(subsystemName: "ContentView", category: "View")
14 |
15 | struct ContentView: View {
16 | @StateObject private var manager = ShieldViewModel()
17 |
18 | var body: some View {
19 | NavigationStack {
20 | ShieldView()
21 | }
22 | .environmentObject(manager)
23 | .task(id: "requestAuthorizationTaskID") {
24 | await manager.requestAuthorization()
25 | }
26 | }
27 | }
28 |
29 | #Preview {
30 | ContentView()
31 | }
32 |
--------------------------------------------------------------------------------
/Screen Time/View Models/ShieldViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ShieldViewModel.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import Foundation
10 | import FamilyControls
11 | import ManagedSettings
12 | import os.log
13 |
14 | private let logger = Logger(subsystemName: "ShieldViewModel", category: "ViewModel")
15 |
16 | class ShieldViewModel: ObservableObject {
17 | @Published var familyActivitySelection = FamilyActivitySelection()
18 |
19 | private let store = ManagedSettingsStore.shared
20 |
21 | func shieldActivities() {
22 | store.shield(familyActivitySelection: familyActivitySelection)
23 | }
24 |
25 | func requestAuthorization() async {
26 | do {
27 | try await AuthorizationCenter.shared.requestAuthorization(for: .individual)
28 | } catch {
29 | logger.error("Failed to get authorization: \(error)")
30 | }
31 | }
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/Screen Time/Extentions/ManagedSettingsStore.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ManagedSettingsStore.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import Foundation
10 | import FamilyControls
11 | import ManagedSettings
12 |
13 | extension ManagedSettingsStore {
14 | static var shared = ManagedSettingsStore()
15 |
16 | func shield(familyActivitySelection: FamilyActivitySelection) {
17 | // Clear to reset previous settings
18 | clearAllSettings()
19 |
20 | let applicationTokens = familyActivitySelection.applicationTokens
21 | let categoryTokens = familyActivitySelection.categoryTokens
22 |
23 | shield.applications = applicationTokens.isEmpty ? nil : applicationTokens
24 | shield.applicationCategories = categoryTokens.isEmpty ? nil : .specific(categoryTokens)
25 | shield.webDomainCategories = categoryTokens.isEmpty ? nil : .specific(categoryTokens)
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Screen Time/Views/ShieldView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ShieldView.swift
3 | // Screen Time
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import SwiftUI
10 | import os.log
11 |
12 | private let logger = Logger(subsystemName: "ShieldView", category: "View")
13 |
14 | struct ShieldView: View {
15 | @EnvironmentObject private var manager: ShieldViewModel
16 | @State private var showActivityPicker = false
17 |
18 | var body: some View {
19 | ZStack {
20 | selectButton
21 | }
22 | .toolbar {
23 | ToolbarItem(placement: .topBarTrailing) {
24 | lockButton
25 | }
26 | }
27 | .familyActivityPicker(
28 | isPresented: $showActivityPicker,
29 | selection: $manager.familyActivitySelection
30 | )
31 | }
32 | }
33 |
34 | // MARK: Views
35 | private extension ShieldView {
36 | var selectButton: some View {
37 | Button(action: onPressSelect) {
38 | Label("Select", systemImage: "gearshape.fill")
39 | }
40 | }
41 |
42 | var lockButton: some View {
43 | Button(action: onLock) {
44 | Image(systemName: "lock.fill")
45 | }
46 | }
47 | }
48 |
49 | // MARK: Internals
50 | private extension ShieldView {
51 | func onPressSelect() {
52 | logger.debug("Configuration button pressed.")
53 | showActivityPicker = true
54 | }
55 |
56 | func onLock() {
57 | logger.debug("Apply settings button pressed.")
58 | manager.shieldActivities()
59 | }
60 | }
61 |
62 | #Preview {
63 | NavigationStack {
64 | ShieldView()
65 | }
66 | .environmentObject(ShieldViewModel())
67 | }
68 |
--------------------------------------------------------------------------------
/Device Activity Monitor Extension/DeviceActivityMonitorExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DeviceActivityMonitorExtension.swift
3 | // Device Activity Monitor Extension
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import DeviceActivity
10 |
11 | // Optionally override any of the functions below.
12 | // Make sure that your class name matches the NSExtensionPrincipalClass in your Info.plist.
13 | class DeviceActivityMonitorExtension: DeviceActivityMonitor {
14 | override func intervalDidStart(for activity: DeviceActivityName) {
15 | super.intervalDidStart(for: activity)
16 |
17 | // Handle the start of the interval.
18 | }
19 |
20 | override func intervalDidEnd(for activity: DeviceActivityName) {
21 | super.intervalDidEnd(for: activity)
22 |
23 | // Handle the end of the interval.
24 | }
25 |
26 | override func eventDidReachThreshold(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) {
27 | super.eventDidReachThreshold(event, activity: activity)
28 |
29 | // Handle the event reaching its threshold.
30 | }
31 |
32 | override func intervalWillStartWarning(for activity: DeviceActivityName) {
33 | super.intervalWillStartWarning(for: activity)
34 |
35 | // Handle the warning before the interval starts.
36 | }
37 |
38 | override func intervalWillEndWarning(for activity: DeviceActivityName) {
39 | super.intervalWillEndWarning(for: activity)
40 |
41 | // Handle the warning before the interval ends.
42 | }
43 |
44 | override func eventWillReachThresholdWarning(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) {
45 | super.eventWillReachThresholdWarning(event, activity: activity)
46 |
47 | // Handle the warning before the event reaches its threshold.
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Shield Action Extension/ShieldActionExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ShieldActionExtension.swift
3 | // Shield Action Extension
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import DeviceActivity
10 | import Foundation
11 | import ManagedSettings
12 | import os.log
13 |
14 | private let logger = Logger(subsystemName: "ShieldActionExtension", category: "ShieldActionDelegate")
15 |
16 | // Override the functions below to customize the shield actions used in various situations.
17 | // The system provides a default response for any functions that your subclass doesn't override.
18 | // Make sure that your class name matches the NSExtensionPrincipalClass in your Info.plist.
19 | class ShieldActionExtension: ShieldActionDelegate {
20 | let store = ManagedSettingsStore.shared
21 |
22 | override func handle(action: ShieldAction, for application: ApplicationToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
23 | // Handle the action as needed.
24 | switch action {
25 | case .primaryButtonPressed:
26 | store.shield.applications?.remove(application)
27 | completionHandler(.none)
28 | case .secondaryButtonPressed:
29 | completionHandler(.close)
30 | @unknown default:
31 | fatalError()
32 | }
33 | }
34 |
35 | override func handle(action: ShieldAction, for webDomain: WebDomainToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
36 | // Handle the action as needed.
37 | completionHandler(.close)
38 | }
39 |
40 | override func handle(action: ShieldAction, for category: ActivityCategoryToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
41 | // Handle the action as needed.
42 | switch action {
43 | case .primaryButtonPressed:
44 | store.shield.applicationCategories = nil
45 | completionHandler(.none)
46 | case .secondaryButtonPressed:
47 | completionHandler(.close)
48 | @unknown default:
49 | fatalError()
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## User settings
6 | xcuserdata/
7 |
8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
9 | *.xcscmblueprint
10 | *.xccheckout
11 |
12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
13 | build/
14 | DerivedData/
15 | *.moved-aside
16 | *.pbxuser
17 | !default.pbxuser
18 | *.mode1v3
19 | !default.mode1v3
20 | *.mode2v3
21 | !default.mode2v3
22 | *.perspectivev3
23 | !default.perspectivev3
24 |
25 | ## Obj-C/Swift specific
26 | *.hmap
27 |
28 | ## App packaging
29 | *.ipa
30 | *.dSYM.zip
31 | *.dSYM
32 |
33 | ## Playgrounds
34 | timeline.xctimeline
35 | playground.xcworkspace
36 |
37 | # Swift Package Manager
38 | #
39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
40 | # Packages/
41 | # Package.pins
42 | # Package.resolved
43 | # *.xcodeproj
44 | #
45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
46 | # hence it is not needed unless you have added a package configuration file to your project
47 | # .swiftpm
48 |
49 | .build/
50 |
51 | # CocoaPods
52 | #
53 | # We recommend against adding the Pods directory to your .gitignore. However
54 | # you should judge for yourself, the pros and cons are mentioned at:
55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
56 | #
57 | # Pods/
58 | #
59 | # Add this line if you want to avoid checking in source code from the Xcode workspace
60 | # *.xcworkspace
61 |
62 | # Carthage
63 | #
64 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
65 | # Carthage/Checkouts
66 |
67 | Carthage/Build/
68 |
69 | # Accio dependency management
70 | Dependencies/
71 | .accio/
72 |
73 | # fastlane
74 | #
75 | # It is recommended to not store the screenshots in the git repo.
76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed.
77 | # For more information about the recommended setup visit:
78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control
79 |
80 | fastlane/report.xml
81 | fastlane/Preview.html
82 | fastlane/screenshots/**/*.png
83 | fastlane/test_output
84 |
85 | # Code Injection
86 | #
87 | # After new code Injection tools there's a generated folder /iOSInjectionProject
88 | # https://github.com/johnno1962/injectionforxcode
89 |
90 | iOSInjectionProject/
91 |
--------------------------------------------------------------------------------
/Shield Configuration Extension/ShieldConfigurationExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ShieldConfigurationExtension.swift
3 | // Shield Configuration Extension
4 | //
5 | // Created on 29/05/24.
6 | //
7 | //
8 |
9 | import ManagedSettings
10 | import ManagedSettingsUI
11 | import UIKit
12 |
13 | // Override the functions below to customize the shields used in various situations.
14 | // The system provides a default appearance for any methods that your subclass doesn't override.
15 | // Make sure that your class name matches the NSExtensionPrincipalClass in your Info.plist.
16 | class ShieldConfigurationExtension: ShieldConfigurationDataSource {
17 | override func configuration(shielding application: Application) -> ShieldConfiguration {
18 | // Customize the shield as needed for applications.
19 | let config = ShieldConfiguration(
20 | backgroundColor: .systemCyan,
21 | title: ShieldConfiguration.Label(text: "Do you really need to use this app?", color: .label),
22 | subtitle: ShieldConfiguration.Label(text: "Like are you sure?", color: .systemBrown),
23 | primaryButtonLabel: ShieldConfiguration.Label(text: "Unlock", color: .label),
24 | primaryButtonBackgroundColor: .systemGreen,
25 | secondaryButtonLabel: ShieldConfiguration.Label(text: "Don't unlock.", color: .label)
26 | )
27 | return config
28 | }
29 |
30 | override func configuration(shielding application: Application, in category: ActivityCategory) -> ShieldConfiguration {
31 | // Customize the shield as needed for applications shielded because of their category.
32 | let config = ShieldConfiguration(
33 | backgroundColor: .systemCyan,
34 | title: ShieldConfiguration.Label(text: "Do you really need to use this category?", color: .label),
35 | subtitle: ShieldConfiguration.Label(text: "Like are you sure?", color: .systemBrown),
36 | primaryButtonLabel: ShieldConfiguration.Label(text: "Unlock", color: .label),
37 | primaryButtonBackgroundColor: .systemGreen,
38 | secondaryButtonLabel: ShieldConfiguration.Label(text: "Don't unlock.", color: .label)
39 | )
40 | return config
41 | }
42 |
43 | override func configuration(shielding webDomain: WebDomain) -> ShieldConfiguration {
44 | // Customize the shield as needed for web domains.
45 | ShieldConfiguration()
46 | }
47 |
48 | override func configuration(shielding webDomain: WebDomain, in category: ActivityCategory) -> ShieldConfiguration {
49 | // Customize the shield as needed for web domains shielded because of their category.
50 | ShieldConfiguration()
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/xcshareddata/xcschemes/Screen Time.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
16 |
22 |
23 |
24 |
25 |
26 |
32 |
33 |
43 |
45 |
51 |
52 |
53 |
54 |
60 |
62 |
68 |
69 |
70 |
71 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/xcshareddata/xcschemes/Shield Action Extension.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
16 |
22 |
23 |
24 |
30 |
36 |
37 |
38 |
39 |
40 |
46 |
47 |
59 |
61 |
67 |
68 |
69 |
70 |
78 |
80 |
86 |
87 |
88 |
89 |
91 |
92 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/xcshareddata/xcschemes/Device Activity Monitor Extension.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
16 |
22 |
23 |
24 |
30 |
36 |
37 |
38 |
39 |
40 |
46 |
47 |
59 |
61 |
67 |
68 |
69 |
70 |
78 |
80 |
86 |
87 |
88 |
89 |
91 |
92 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/xcshareddata/xcschemes/Shield Configuration Extension.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
17 |
23 |
24 |
25 |
31 |
37 |
38 |
39 |
40 |
41 |
47 |
48 |
60 |
62 |
68 |
69 |
70 |
71 |
79 |
81 |
87 |
88 |
89 |
90 |
92 |
93 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/Screen Time.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 56;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 41AA52072C07243F00786F96 /* Screen_TimeApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52062C07243F00786F96 /* Screen_TimeApp.swift */; };
11 | 41AA52092C07243F00786F96 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52082C07243F00786F96 /* ContentView.swift */; };
12 | 41AA520B2C07244000786F96 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41AA520A2C07244000786F96 /* Assets.xcassets */; };
13 | 41AA520E2C07244000786F96 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41AA520D2C07244000786F96 /* Preview Assets.xcassets */; };
14 | 41AA521B2C0724C300786F96 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA521A2C0724C300786F96 /* Logger.swift */; };
15 | 41AA52242C07338300786F96 /* ShieldViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52232C07338300786F96 /* ShieldViewModel.swift */; };
16 | 41AA52262C07351300786F96 /* ShieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52252C07351300786F96 /* ShieldView.swift */; };
17 | 41AA522F2C07384000786F96 /* ManagedSettings.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41AA522E2C07384000786F96 /* ManagedSettings.framework */; };
18 | 41AA52322C07384000786F96 /* ShieldActionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52312C07384000786F96 /* ShieldActionExtension.swift */; };
19 | 41AA52372C07384000786F96 /* Shield Action Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 41AA522C2C07384000786F96 /* Shield Action Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
20 | 41AA52412C07386F00786F96 /* ManagedSettings.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41AA522E2C07384000786F96 /* ManagedSettings.framework */; };
21 | 41AA52432C07386F00786F96 /* ManagedSettingsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41AA52422C07386F00786F96 /* ManagedSettingsUI.framework */; };
22 | 41AA52462C07386F00786F96 /* ShieldConfigurationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52452C07386F00786F96 /* ShieldConfigurationExtension.swift */; };
23 | 41AA524B2C07386F00786F96 /* Shield Configuration Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 41AA52402C07386F00786F96 /* Shield Configuration Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
24 | 41AA52552C074C0B00786F96 /* DeviceActivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41AA52542C074C0B00786F96 /* DeviceActivity.framework */; };
25 | 41AA52582C074C0B00786F96 /* DeviceActivityMonitorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52572C074C0B00786F96 /* DeviceActivityMonitorExtension.swift */; };
26 | 41AA525D2C074C0B00786F96 /* Device Activity Monitor Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 41AA52532C074C0B00786F96 /* Device Activity Monitor Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
27 | 41AA526D2C0757C100786F96 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA521A2C0724C300786F96 /* Logger.swift */; };
28 | 41AA526E2C0757C100786F96 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA521A2C0724C300786F96 /* Logger.swift */; };
29 | 41AA526F2C0757C200786F96 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA521A2C0724C300786F96 /* Logger.swift */; };
30 | 41AA52772C075FE600786F96 /* ManagedSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */; };
31 | 41AA52782C075FE600786F96 /* ManagedSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */; };
32 | 41AA52792C075FE600786F96 /* ManagedSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */; };
33 | 41AA527A2C075FE600786F96 /* ManagedSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */; };
34 | /* End PBXBuildFile section */
35 |
36 | /* Begin PBXContainerItemProxy section */
37 | 41AA52352C07384000786F96 /* PBXContainerItemProxy */ = {
38 | isa = PBXContainerItemProxy;
39 | containerPortal = 41AA51FB2C07243F00786F96 /* Project object */;
40 | proxyType = 1;
41 | remoteGlobalIDString = 41AA522B2C07384000786F96;
42 | remoteInfo = "Shield Action Extension";
43 | };
44 | 41AA52492C07386F00786F96 /* PBXContainerItemProxy */ = {
45 | isa = PBXContainerItemProxy;
46 | containerPortal = 41AA51FB2C07243F00786F96 /* Project object */;
47 | proxyType = 1;
48 | remoteGlobalIDString = 41AA523F2C07386F00786F96;
49 | remoteInfo = "Shield Configuration Extension";
50 | };
51 | 41AA525B2C074C0B00786F96 /* PBXContainerItemProxy */ = {
52 | isa = PBXContainerItemProxy;
53 | containerPortal = 41AA51FB2C07243F00786F96 /* Project object */;
54 | proxyType = 1;
55 | remoteGlobalIDString = 41AA52522C074C0B00786F96;
56 | remoteInfo = "Device Activity Monitor Extension";
57 | };
58 | /* End PBXContainerItemProxy section */
59 |
60 | /* Begin PBXCopyFilesBuildPhase section */
61 | 41AA523B2C07384000786F96 /* Embed Foundation Extensions */ = {
62 | isa = PBXCopyFilesBuildPhase;
63 | buildActionMask = 2147483647;
64 | dstPath = "";
65 | dstSubfolderSpec = 13;
66 | files = (
67 | 41AA524B2C07386F00786F96 /* Shield Configuration Extension.appex in Embed Foundation Extensions */,
68 | 41AA52372C07384000786F96 /* Shield Action Extension.appex in Embed Foundation Extensions */,
69 | 41AA525D2C074C0B00786F96 /* Device Activity Monitor Extension.appex in Embed Foundation Extensions */,
70 | );
71 | name = "Embed Foundation Extensions";
72 | runOnlyForDeploymentPostprocessing = 0;
73 | };
74 | /* End PBXCopyFilesBuildPhase section */
75 |
76 | /* Begin PBXFileReference section */
77 | 41AA52032C07243F00786F96 /* Screen Time.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Screen Time.app"; sourceTree = BUILT_PRODUCTS_DIR; };
78 | 41AA52062C07243F00786F96 /* Screen_TimeApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Screen_TimeApp.swift; sourceTree = ""; };
79 | 41AA52082C07243F00786F96 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
80 | 41AA520A2C07244000786F96 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
81 | 41AA520D2C07244000786F96 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
82 | 41AA521A2C0724C300786F96 /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; };
83 | 41AA52232C07338300786F96 /* ShieldViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShieldViewModel.swift; sourceTree = ""; };
84 | 41AA52252C07351300786F96 /* ShieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShieldView.swift; sourceTree = ""; };
85 | 41AA52272C0735A800786F96 /* Screen Time.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Screen Time.entitlements"; sourceTree = ""; };
86 | 41AA522C2C07384000786F96 /* Shield Action Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Shield Action Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
87 | 41AA522E2C07384000786F96 /* ManagedSettings.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ManagedSettings.framework; path = System/Library/Frameworks/ManagedSettings.framework; sourceTree = SDKROOT; };
88 | 41AA52312C07384000786F96 /* ShieldActionExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShieldActionExtension.swift; sourceTree = ""; };
89 | 41AA52332C07384000786F96 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
90 | 41AA52342C07384000786F96 /* Shield_Action_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Shield_Action_Extension.entitlements; sourceTree = ""; };
91 | 41AA52402C07386F00786F96 /* Shield Configuration Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Shield Configuration Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
92 | 41AA52422C07386F00786F96 /* ManagedSettingsUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ManagedSettingsUI.framework; path = System/Library/Frameworks/ManagedSettingsUI.framework; sourceTree = SDKROOT; };
93 | 41AA52452C07386F00786F96 /* ShieldConfigurationExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShieldConfigurationExtension.swift; sourceTree = ""; };
94 | 41AA52472C07386F00786F96 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
95 | 41AA52482C07386F00786F96 /* Shield_Configuration_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Shield_Configuration_Extension.entitlements; sourceTree = ""; };
96 | 41AA52532C074C0B00786F96 /* Device Activity Monitor Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Device Activity Monitor Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
97 | 41AA52542C074C0B00786F96 /* DeviceActivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DeviceActivity.framework; path = System/Library/Frameworks/DeviceActivity.framework; sourceTree = SDKROOT; };
98 | 41AA52572C074C0B00786F96 /* DeviceActivityMonitorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceActivityMonitorExtension.swift; sourceTree = ""; };
99 | 41AA52592C074C0B00786F96 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
100 | 41AA525A2C074C0B00786F96 /* Device_Activity_Monitor_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Device_Activity_Monitor_Extension.entitlements; sourceTree = ""; };
101 | 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSettingsStore.swift; sourceTree = ""; };
102 | /* End PBXFileReference section */
103 |
104 | /* Begin PBXFrameworksBuildPhase section */
105 | 41AA52002C07243F00786F96 /* Frameworks */ = {
106 | isa = PBXFrameworksBuildPhase;
107 | buildActionMask = 2147483647;
108 | files = (
109 | );
110 | runOnlyForDeploymentPostprocessing = 0;
111 | };
112 | 41AA52292C07384000786F96 /* Frameworks */ = {
113 | isa = PBXFrameworksBuildPhase;
114 | buildActionMask = 2147483647;
115 | files = (
116 | 41AA522F2C07384000786F96 /* ManagedSettings.framework in Frameworks */,
117 | );
118 | runOnlyForDeploymentPostprocessing = 0;
119 | };
120 | 41AA523D2C07386F00786F96 /* Frameworks */ = {
121 | isa = PBXFrameworksBuildPhase;
122 | buildActionMask = 2147483647;
123 | files = (
124 | 41AA52412C07386F00786F96 /* ManagedSettings.framework in Frameworks */,
125 | 41AA52432C07386F00786F96 /* ManagedSettingsUI.framework in Frameworks */,
126 | );
127 | runOnlyForDeploymentPostprocessing = 0;
128 | };
129 | 41AA52502C074C0B00786F96 /* Frameworks */ = {
130 | isa = PBXFrameworksBuildPhase;
131 | buildActionMask = 2147483647;
132 | files = (
133 | 41AA52552C074C0B00786F96 /* DeviceActivity.framework in Frameworks */,
134 | );
135 | runOnlyForDeploymentPostprocessing = 0;
136 | };
137 | /* End PBXFrameworksBuildPhase section */
138 |
139 | /* Begin PBXGroup section */
140 | 41AA51FA2C07243F00786F96 = {
141 | isa = PBXGroup;
142 | children = (
143 | 41AA52052C07243F00786F96 /* Screen Time */,
144 | 41AA52302C07384000786F96 /* Shield Action Extension */,
145 | 41AA52442C07386F00786F96 /* Shield Configuration Extension */,
146 | 41AA52562C074C0B00786F96 /* Device Activity Monitor Extension */,
147 | 41AA522D2C07384000786F96 /* Frameworks */,
148 | 41AA52042C07243F00786F96 /* Products */,
149 | );
150 | sourceTree = "";
151 | };
152 | 41AA52042C07243F00786F96 /* Products */ = {
153 | isa = PBXGroup;
154 | children = (
155 | 41AA52032C07243F00786F96 /* Screen Time.app */,
156 | 41AA522C2C07384000786F96 /* Shield Action Extension.appex */,
157 | 41AA52402C07386F00786F96 /* Shield Configuration Extension.appex */,
158 | 41AA52532C074C0B00786F96 /* Device Activity Monitor Extension.appex */,
159 | );
160 | name = Products;
161 | sourceTree = "";
162 | };
163 | 41AA52052C07243F00786F96 /* Screen Time */ = {
164 | isa = PBXGroup;
165 | children = (
166 | 41AA52272C0735A800786F96 /* Screen Time.entitlements */,
167 | 41AA52142C07245100786F96 /* App */,
168 | 41AA52192C0724B400786F96 /* Extentions */,
169 | 41AA52222C07337500786F96 /* View Models */,
170 | 41AA52152C07245500786F96 /* Views */,
171 | 41AA52172C07245E00786F96 /* Resources */,
172 | 41AA520C2C07244000786F96 /* Preview Content */,
173 | );
174 | path = "Screen Time";
175 | sourceTree = "";
176 | };
177 | 41AA520C2C07244000786F96 /* Preview Content */ = {
178 | isa = PBXGroup;
179 | children = (
180 | 41AA520D2C07244000786F96 /* Preview Assets.xcassets */,
181 | );
182 | path = "Preview Content";
183 | sourceTree = "";
184 | };
185 | 41AA52142C07245100786F96 /* App */ = {
186 | isa = PBXGroup;
187 | children = (
188 | 41AA52062C07243F00786F96 /* Screen_TimeApp.swift */,
189 | );
190 | path = App;
191 | sourceTree = "";
192 | };
193 | 41AA52152C07245500786F96 /* Views */ = {
194 | isa = PBXGroup;
195 | children = (
196 | 41AA52252C07351300786F96 /* ShieldView.swift */,
197 | 41AA52082C07243F00786F96 /* ContentView.swift */,
198 | );
199 | path = Views;
200 | sourceTree = "";
201 | };
202 | 41AA52172C07245E00786F96 /* Resources */ = {
203 | isa = PBXGroup;
204 | children = (
205 | 41AA520A2C07244000786F96 /* Assets.xcassets */,
206 | );
207 | path = Resources;
208 | sourceTree = "";
209 | };
210 | 41AA52192C0724B400786F96 /* Extentions */ = {
211 | isa = PBXGroup;
212 | children = (
213 | 41AA521A2C0724C300786F96 /* Logger.swift */,
214 | 41AA52762C075FE600786F96 /* ManagedSettingsStore.swift */,
215 | );
216 | path = Extentions;
217 | sourceTree = "";
218 | };
219 | 41AA52222C07337500786F96 /* View Models */ = {
220 | isa = PBXGroup;
221 | children = (
222 | 41AA52232C07338300786F96 /* ShieldViewModel.swift */,
223 | );
224 | path = "View Models";
225 | sourceTree = "";
226 | };
227 | 41AA522D2C07384000786F96 /* Frameworks */ = {
228 | isa = PBXGroup;
229 | children = (
230 | 41AA522E2C07384000786F96 /* ManagedSettings.framework */,
231 | 41AA52422C07386F00786F96 /* ManagedSettingsUI.framework */,
232 | 41AA52542C074C0B00786F96 /* DeviceActivity.framework */,
233 | );
234 | name = Frameworks;
235 | sourceTree = "";
236 | };
237 | 41AA52302C07384000786F96 /* Shield Action Extension */ = {
238 | isa = PBXGroup;
239 | children = (
240 | 41AA52312C07384000786F96 /* ShieldActionExtension.swift */,
241 | 41AA52332C07384000786F96 /* Info.plist */,
242 | 41AA52342C07384000786F96 /* Shield_Action_Extension.entitlements */,
243 | );
244 | path = "Shield Action Extension";
245 | sourceTree = "";
246 | };
247 | 41AA52442C07386F00786F96 /* Shield Configuration Extension */ = {
248 | isa = PBXGroup;
249 | children = (
250 | 41AA52452C07386F00786F96 /* ShieldConfigurationExtension.swift */,
251 | 41AA52472C07386F00786F96 /* Info.plist */,
252 | 41AA52482C07386F00786F96 /* Shield_Configuration_Extension.entitlements */,
253 | );
254 | path = "Shield Configuration Extension";
255 | sourceTree = "";
256 | };
257 | 41AA52562C074C0B00786F96 /* Device Activity Monitor Extension */ = {
258 | isa = PBXGroup;
259 | children = (
260 | 41AA52572C074C0B00786F96 /* DeviceActivityMonitorExtension.swift */,
261 | 41AA52592C074C0B00786F96 /* Info.plist */,
262 | 41AA525A2C074C0B00786F96 /* Device_Activity_Monitor_Extension.entitlements */,
263 | );
264 | path = "Device Activity Monitor Extension";
265 | sourceTree = "";
266 | };
267 | /* End PBXGroup section */
268 |
269 | /* Begin PBXNativeTarget section */
270 | 41AA52022C07243F00786F96 /* Screen Time */ = {
271 | isa = PBXNativeTarget;
272 | buildConfigurationList = 41AA52112C07244000786F96 /* Build configuration list for PBXNativeTarget "Screen Time" */;
273 | buildPhases = (
274 | 41AA51FF2C07243F00786F96 /* Sources */,
275 | 41AA52002C07243F00786F96 /* Frameworks */,
276 | 41AA52012C07243F00786F96 /* Resources */,
277 | 41AA523B2C07384000786F96 /* Embed Foundation Extensions */,
278 | );
279 | buildRules = (
280 | );
281 | dependencies = (
282 | 41AA52362C07384000786F96 /* PBXTargetDependency */,
283 | 41AA524A2C07386F00786F96 /* PBXTargetDependency */,
284 | 41AA525C2C074C0B00786F96 /* PBXTargetDependency */,
285 | );
286 | name = "Screen Time";
287 | productName = "Screen Time";
288 | productReference = 41AA52032C07243F00786F96 /* Screen Time.app */;
289 | productType = "com.apple.product-type.application";
290 | };
291 | 41AA522B2C07384000786F96 /* Shield Action Extension */ = {
292 | isa = PBXNativeTarget;
293 | buildConfigurationList = 41AA52382C07384000786F96 /* Build configuration list for PBXNativeTarget "Shield Action Extension" */;
294 | buildPhases = (
295 | 41AA52282C07384000786F96 /* Sources */,
296 | 41AA52292C07384000786F96 /* Frameworks */,
297 | 41AA522A2C07384000786F96 /* Resources */,
298 | );
299 | buildRules = (
300 | );
301 | dependencies = (
302 | );
303 | name = "Shield Action Extension";
304 | productName = "Shield Action Extension";
305 | productReference = 41AA522C2C07384000786F96 /* Shield Action Extension.appex */;
306 | productType = "com.apple.product-type.app-extension";
307 | };
308 | 41AA523F2C07386F00786F96 /* Shield Configuration Extension */ = {
309 | isa = PBXNativeTarget;
310 | buildConfigurationList = 41AA524C2C07386F00786F96 /* Build configuration list for PBXNativeTarget "Shield Configuration Extension" */;
311 | buildPhases = (
312 | 41AA523C2C07386F00786F96 /* Sources */,
313 | 41AA523D2C07386F00786F96 /* Frameworks */,
314 | 41AA523E2C07386F00786F96 /* Resources */,
315 | );
316 | buildRules = (
317 | );
318 | dependencies = (
319 | );
320 | name = "Shield Configuration Extension";
321 | productName = "Shield Configuration Extension";
322 | productReference = 41AA52402C07386F00786F96 /* Shield Configuration Extension.appex */;
323 | productType = "com.apple.product-type.app-extension";
324 | };
325 | 41AA52522C074C0B00786F96 /* Device Activity Monitor Extension */ = {
326 | isa = PBXNativeTarget;
327 | buildConfigurationList = 41AA525E2C074C0B00786F96 /* Build configuration list for PBXNativeTarget "Device Activity Monitor Extension" */;
328 | buildPhases = (
329 | 41AA524F2C074C0B00786F96 /* Sources */,
330 | 41AA52502C074C0B00786F96 /* Frameworks */,
331 | 41AA52512C074C0B00786F96 /* Resources */,
332 | );
333 | buildRules = (
334 | );
335 | dependencies = (
336 | );
337 | name = "Device Activity Monitor Extension";
338 | productName = "Device Activity Monitor Extension";
339 | productReference = 41AA52532C074C0B00786F96 /* Device Activity Monitor Extension.appex */;
340 | productType = "com.apple.product-type.app-extension";
341 | };
342 | /* End PBXNativeTarget section */
343 |
344 | /* Begin PBXProject section */
345 | 41AA51FB2C07243F00786F96 /* Project object */ = {
346 | isa = PBXProject;
347 | attributes = {
348 | BuildIndependentTargetsInParallel = 1;
349 | LastSwiftUpdateCheck = 1540;
350 | LastUpgradeCheck = 1540;
351 | TargetAttributes = {
352 | 41AA52022C07243F00786F96 = {
353 | CreatedOnToolsVersion = 15.4;
354 | };
355 | 41AA522B2C07384000786F96 = {
356 | CreatedOnToolsVersion = 15.4;
357 | };
358 | 41AA523F2C07386F00786F96 = {
359 | CreatedOnToolsVersion = 15.4;
360 | };
361 | 41AA52522C074C0B00786F96 = {
362 | CreatedOnToolsVersion = 15.4;
363 | };
364 | };
365 | };
366 | buildConfigurationList = 41AA51FE2C07243F00786F96 /* Build configuration list for PBXProject "Screen Time" */;
367 | compatibilityVersion = "Xcode 14.0";
368 | developmentRegion = en;
369 | hasScannedForEncodings = 0;
370 | knownRegions = (
371 | en,
372 | Base,
373 | );
374 | mainGroup = 41AA51FA2C07243F00786F96;
375 | productRefGroup = 41AA52042C07243F00786F96 /* Products */;
376 | projectDirPath = "";
377 | projectRoot = "";
378 | targets = (
379 | 41AA52022C07243F00786F96 /* Screen Time */,
380 | 41AA522B2C07384000786F96 /* Shield Action Extension */,
381 | 41AA523F2C07386F00786F96 /* Shield Configuration Extension */,
382 | 41AA52522C074C0B00786F96 /* Device Activity Monitor Extension */,
383 | );
384 | };
385 | /* End PBXProject section */
386 |
387 | /* Begin PBXResourcesBuildPhase section */
388 | 41AA52012C07243F00786F96 /* Resources */ = {
389 | isa = PBXResourcesBuildPhase;
390 | buildActionMask = 2147483647;
391 | files = (
392 | 41AA520E2C07244000786F96 /* Preview Assets.xcassets in Resources */,
393 | 41AA520B2C07244000786F96 /* Assets.xcassets in Resources */,
394 | );
395 | runOnlyForDeploymentPostprocessing = 0;
396 | };
397 | 41AA522A2C07384000786F96 /* Resources */ = {
398 | isa = PBXResourcesBuildPhase;
399 | buildActionMask = 2147483647;
400 | files = (
401 | );
402 | runOnlyForDeploymentPostprocessing = 0;
403 | };
404 | 41AA523E2C07386F00786F96 /* Resources */ = {
405 | isa = PBXResourcesBuildPhase;
406 | buildActionMask = 2147483647;
407 | files = (
408 | );
409 | runOnlyForDeploymentPostprocessing = 0;
410 | };
411 | 41AA52512C074C0B00786F96 /* Resources */ = {
412 | isa = PBXResourcesBuildPhase;
413 | buildActionMask = 2147483647;
414 | files = (
415 | );
416 | runOnlyForDeploymentPostprocessing = 0;
417 | };
418 | /* End PBXResourcesBuildPhase section */
419 |
420 | /* Begin PBXSourcesBuildPhase section */
421 | 41AA51FF2C07243F00786F96 /* Sources */ = {
422 | isa = PBXSourcesBuildPhase;
423 | buildActionMask = 2147483647;
424 | files = (
425 | 41AA52092C07243F00786F96 /* ContentView.swift in Sources */,
426 | 41AA521B2C0724C300786F96 /* Logger.swift in Sources */,
427 | 41AA52072C07243F00786F96 /* Screen_TimeApp.swift in Sources */,
428 | 41AA52772C075FE600786F96 /* ManagedSettingsStore.swift in Sources */,
429 | 41AA52262C07351300786F96 /* ShieldView.swift in Sources */,
430 | 41AA52242C07338300786F96 /* ShieldViewModel.swift in Sources */,
431 | );
432 | runOnlyForDeploymentPostprocessing = 0;
433 | };
434 | 41AA52282C07384000786F96 /* Sources */ = {
435 | isa = PBXSourcesBuildPhase;
436 | buildActionMask = 2147483647;
437 | files = (
438 | 41AA52322C07384000786F96 /* ShieldActionExtension.swift in Sources */,
439 | 41AA52782C075FE600786F96 /* ManagedSettingsStore.swift in Sources */,
440 | 41AA526D2C0757C100786F96 /* Logger.swift in Sources */,
441 | );
442 | runOnlyForDeploymentPostprocessing = 0;
443 | };
444 | 41AA523C2C07386F00786F96 /* Sources */ = {
445 | isa = PBXSourcesBuildPhase;
446 | buildActionMask = 2147483647;
447 | files = (
448 | 41AA52462C07386F00786F96 /* ShieldConfigurationExtension.swift in Sources */,
449 | 41AA52792C075FE600786F96 /* ManagedSettingsStore.swift in Sources */,
450 | 41AA526E2C0757C100786F96 /* Logger.swift in Sources */,
451 | );
452 | runOnlyForDeploymentPostprocessing = 0;
453 | };
454 | 41AA524F2C074C0B00786F96 /* Sources */ = {
455 | isa = PBXSourcesBuildPhase;
456 | buildActionMask = 2147483647;
457 | files = (
458 | 41AA52582C074C0B00786F96 /* DeviceActivityMonitorExtension.swift in Sources */,
459 | 41AA527A2C075FE600786F96 /* ManagedSettingsStore.swift in Sources */,
460 | 41AA526F2C0757C200786F96 /* Logger.swift in Sources */,
461 | );
462 | runOnlyForDeploymentPostprocessing = 0;
463 | };
464 | /* End PBXSourcesBuildPhase section */
465 |
466 | /* Begin PBXTargetDependency section */
467 | 41AA52362C07384000786F96 /* PBXTargetDependency */ = {
468 | isa = PBXTargetDependency;
469 | target = 41AA522B2C07384000786F96 /* Shield Action Extension */;
470 | targetProxy = 41AA52352C07384000786F96 /* PBXContainerItemProxy */;
471 | };
472 | 41AA524A2C07386F00786F96 /* PBXTargetDependency */ = {
473 | isa = PBXTargetDependency;
474 | target = 41AA523F2C07386F00786F96 /* Shield Configuration Extension */;
475 | targetProxy = 41AA52492C07386F00786F96 /* PBXContainerItemProxy */;
476 | };
477 | 41AA525C2C074C0B00786F96 /* PBXTargetDependency */ = {
478 | isa = PBXTargetDependency;
479 | target = 41AA52522C074C0B00786F96 /* Device Activity Monitor Extension */;
480 | targetProxy = 41AA525B2C074C0B00786F96 /* PBXContainerItemProxy */;
481 | };
482 | /* End PBXTargetDependency section */
483 |
484 | /* Begin XCBuildConfiguration section */
485 | 41AA520F2C07244000786F96 /* Debug */ = {
486 | isa = XCBuildConfiguration;
487 | buildSettings = {
488 | ALWAYS_SEARCH_USER_PATHS = NO;
489 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
490 | CLANG_ANALYZER_NONNULL = YES;
491 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
492 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
493 | CLANG_ENABLE_MODULES = YES;
494 | CLANG_ENABLE_OBJC_ARC = YES;
495 | CLANG_ENABLE_OBJC_WEAK = YES;
496 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
497 | CLANG_WARN_BOOL_CONVERSION = YES;
498 | CLANG_WARN_COMMA = YES;
499 | CLANG_WARN_CONSTANT_CONVERSION = YES;
500 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
501 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
502 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
503 | CLANG_WARN_EMPTY_BODY = YES;
504 | CLANG_WARN_ENUM_CONVERSION = YES;
505 | CLANG_WARN_INFINITE_RECURSION = YES;
506 | CLANG_WARN_INT_CONVERSION = YES;
507 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
508 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
509 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
510 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
511 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
512 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
513 | CLANG_WARN_STRICT_PROTOTYPES = YES;
514 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
515 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
516 | CLANG_WARN_UNREACHABLE_CODE = YES;
517 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
518 | COPY_PHASE_STRIP = NO;
519 | DEBUG_INFORMATION_FORMAT = dwarf;
520 | ENABLE_STRICT_OBJC_MSGSEND = YES;
521 | ENABLE_TESTABILITY = YES;
522 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
523 | GCC_C_LANGUAGE_STANDARD = gnu17;
524 | GCC_DYNAMIC_NO_PIC = NO;
525 | GCC_NO_COMMON_BLOCKS = YES;
526 | GCC_OPTIMIZATION_LEVEL = 0;
527 | GCC_PREPROCESSOR_DEFINITIONS = (
528 | "DEBUG=1",
529 | "$(inherited)",
530 | );
531 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
532 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
533 | GCC_WARN_UNDECLARED_SELECTOR = YES;
534 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
535 | GCC_WARN_UNUSED_FUNCTION = YES;
536 | GCC_WARN_UNUSED_VARIABLE = YES;
537 | IPHONEOS_DEPLOYMENT_TARGET = 16.0;
538 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
539 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
540 | MTL_FAST_MATH = YES;
541 | ONLY_ACTIVE_ARCH = YES;
542 | SDKROOT = iphoneos;
543 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
544 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
545 | };
546 | name = Debug;
547 | };
548 | 41AA52102C07244000786F96 /* Release */ = {
549 | isa = XCBuildConfiguration;
550 | buildSettings = {
551 | ALWAYS_SEARCH_USER_PATHS = NO;
552 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
553 | CLANG_ANALYZER_NONNULL = YES;
554 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
555 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
556 | CLANG_ENABLE_MODULES = YES;
557 | CLANG_ENABLE_OBJC_ARC = YES;
558 | CLANG_ENABLE_OBJC_WEAK = YES;
559 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
560 | CLANG_WARN_BOOL_CONVERSION = YES;
561 | CLANG_WARN_COMMA = YES;
562 | CLANG_WARN_CONSTANT_CONVERSION = YES;
563 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
564 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
565 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
566 | CLANG_WARN_EMPTY_BODY = YES;
567 | CLANG_WARN_ENUM_CONVERSION = YES;
568 | CLANG_WARN_INFINITE_RECURSION = YES;
569 | CLANG_WARN_INT_CONVERSION = YES;
570 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
571 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
572 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
573 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
574 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
575 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
576 | CLANG_WARN_STRICT_PROTOTYPES = YES;
577 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
578 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
579 | CLANG_WARN_UNREACHABLE_CODE = YES;
580 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
581 | COPY_PHASE_STRIP = NO;
582 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
583 | ENABLE_NS_ASSERTIONS = NO;
584 | ENABLE_STRICT_OBJC_MSGSEND = YES;
585 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
586 | GCC_C_LANGUAGE_STANDARD = gnu17;
587 | GCC_NO_COMMON_BLOCKS = YES;
588 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
589 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
590 | GCC_WARN_UNDECLARED_SELECTOR = YES;
591 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
592 | GCC_WARN_UNUSED_FUNCTION = YES;
593 | GCC_WARN_UNUSED_VARIABLE = YES;
594 | IPHONEOS_DEPLOYMENT_TARGET = 16.0;
595 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
596 | MTL_ENABLE_DEBUG_INFO = NO;
597 | MTL_FAST_MATH = YES;
598 | SDKROOT = iphoneos;
599 | SWIFT_COMPILATION_MODE = wholemodule;
600 | VALIDATE_PRODUCT = YES;
601 | };
602 | name = Release;
603 | };
604 | 41AA52122C07244000786F96 /* Debug */ = {
605 | isa = XCBuildConfiguration;
606 | buildSettings = {
607 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
608 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
609 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
610 | CODE_SIGN_ENTITLEMENTS = "Screen Time/Screen Time.entitlements";
611 | CODE_SIGN_STYLE = Automatic;
612 | CURRENT_PROJECT_VERSION = 1;
613 | DEVELOPMENT_ASSET_PATHS = "\"Screen Time/Preview Content\"";
614 | DEVELOPMENT_TEAM = U7XVUW953J;
615 | ENABLE_PREVIEWS = YES;
616 | GENERATE_INFOPLIST_FILE = YES;
617 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
618 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
619 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
620 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
621 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
622 | LD_RUNPATH_SEARCH_PATHS = (
623 | "$(inherited)",
624 | "@executable_path/Frameworks",
625 | );
626 | MARKETING_VERSION = 1.0;
627 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time";
628 | PRODUCT_NAME = "$(TARGET_NAME)";
629 | SWIFT_EMIT_LOC_STRINGS = YES;
630 | SWIFT_VERSION = 5.0;
631 | TARGETED_DEVICE_FAMILY = "1,2";
632 | };
633 | name = Debug;
634 | };
635 | 41AA52132C07244000786F96 /* Release */ = {
636 | isa = XCBuildConfiguration;
637 | buildSettings = {
638 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
639 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
640 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
641 | CODE_SIGN_ENTITLEMENTS = "Screen Time/Screen Time.entitlements";
642 | CODE_SIGN_STYLE = Automatic;
643 | CURRENT_PROJECT_VERSION = 1;
644 | DEVELOPMENT_ASSET_PATHS = "\"Screen Time/Preview Content\"";
645 | DEVELOPMENT_TEAM = U7XVUW953J;
646 | ENABLE_PREVIEWS = YES;
647 | GENERATE_INFOPLIST_FILE = YES;
648 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
649 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
650 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
651 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
652 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
653 | LD_RUNPATH_SEARCH_PATHS = (
654 | "$(inherited)",
655 | "@executable_path/Frameworks",
656 | );
657 | MARKETING_VERSION = 1.0;
658 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time";
659 | PRODUCT_NAME = "$(TARGET_NAME)";
660 | SWIFT_EMIT_LOC_STRINGS = YES;
661 | SWIFT_VERSION = 5.0;
662 | TARGETED_DEVICE_FAMILY = "1,2";
663 | };
664 | name = Release;
665 | };
666 | 41AA52392C07384000786F96 /* Debug */ = {
667 | isa = XCBuildConfiguration;
668 | buildSettings = {
669 | CODE_SIGN_ENTITLEMENTS = "Shield Action Extension/Shield_Action_Extension.entitlements";
670 | CODE_SIGN_STYLE = Automatic;
671 | CURRENT_PROJECT_VERSION = 1;
672 | DEVELOPMENT_TEAM = U7XVUW953J;
673 | GENERATE_INFOPLIST_FILE = YES;
674 | INFOPLIST_FILE = "Shield Action Extension/Info.plist";
675 | INFOPLIST_KEY_CFBundleDisplayName = "Shield Action Extension";
676 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
677 | LD_RUNPATH_SEARCH_PATHS = (
678 | "$(inherited)",
679 | "@executable_path/Frameworks",
680 | "@executable_path/../../Frameworks",
681 | );
682 | MARKETING_VERSION = 1.0;
683 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Shield-Action-Extension";
684 | PRODUCT_NAME = "$(TARGET_NAME)";
685 | SKIP_INSTALL = YES;
686 | SWIFT_EMIT_LOC_STRINGS = YES;
687 | SWIFT_VERSION = 5.0;
688 | TARGETED_DEVICE_FAMILY = "1,2";
689 | };
690 | name = Debug;
691 | };
692 | 41AA523A2C07384000786F96 /* Release */ = {
693 | isa = XCBuildConfiguration;
694 | buildSettings = {
695 | CODE_SIGN_ENTITLEMENTS = "Shield Action Extension/Shield_Action_Extension.entitlements";
696 | CODE_SIGN_STYLE = Automatic;
697 | CURRENT_PROJECT_VERSION = 1;
698 | DEVELOPMENT_TEAM = U7XVUW953J;
699 | GENERATE_INFOPLIST_FILE = YES;
700 | INFOPLIST_FILE = "Shield Action Extension/Info.plist";
701 | INFOPLIST_KEY_CFBundleDisplayName = "Shield Action Extension";
702 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
703 | LD_RUNPATH_SEARCH_PATHS = (
704 | "$(inherited)",
705 | "@executable_path/Frameworks",
706 | "@executable_path/../../Frameworks",
707 | );
708 | MARKETING_VERSION = 1.0;
709 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Shield-Action-Extension";
710 | PRODUCT_NAME = "$(TARGET_NAME)";
711 | SKIP_INSTALL = YES;
712 | SWIFT_EMIT_LOC_STRINGS = YES;
713 | SWIFT_VERSION = 5.0;
714 | TARGETED_DEVICE_FAMILY = "1,2";
715 | };
716 | name = Release;
717 | };
718 | 41AA524D2C07386F00786F96 /* Debug */ = {
719 | isa = XCBuildConfiguration;
720 | buildSettings = {
721 | CODE_SIGN_ENTITLEMENTS = "Shield Configuration Extension/Shield_Configuration_Extension.entitlements";
722 | CODE_SIGN_STYLE = Automatic;
723 | CURRENT_PROJECT_VERSION = 1;
724 | DEVELOPMENT_TEAM = U7XVUW953J;
725 | GENERATE_INFOPLIST_FILE = YES;
726 | INFOPLIST_FILE = "Shield Configuration Extension/Info.plist";
727 | INFOPLIST_KEY_CFBundleDisplayName = "Shield Configuration Extension";
728 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
729 | LD_RUNPATH_SEARCH_PATHS = (
730 | "$(inherited)",
731 | "@executable_path/Frameworks",
732 | "@executable_path/../../Frameworks",
733 | );
734 | MARKETING_VERSION = 1.0;
735 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Shield-Configuration-Extension";
736 | PRODUCT_NAME = "$(TARGET_NAME)";
737 | SKIP_INSTALL = YES;
738 | SWIFT_EMIT_LOC_STRINGS = YES;
739 | SWIFT_VERSION = 5.0;
740 | TARGETED_DEVICE_FAMILY = "1,2";
741 | };
742 | name = Debug;
743 | };
744 | 41AA524E2C07386F00786F96 /* Release */ = {
745 | isa = XCBuildConfiguration;
746 | buildSettings = {
747 | CODE_SIGN_ENTITLEMENTS = "Shield Configuration Extension/Shield_Configuration_Extension.entitlements";
748 | CODE_SIGN_STYLE = Automatic;
749 | CURRENT_PROJECT_VERSION = 1;
750 | DEVELOPMENT_TEAM = U7XVUW953J;
751 | GENERATE_INFOPLIST_FILE = YES;
752 | INFOPLIST_FILE = "Shield Configuration Extension/Info.plist";
753 | INFOPLIST_KEY_CFBundleDisplayName = "Shield Configuration Extension";
754 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
755 | LD_RUNPATH_SEARCH_PATHS = (
756 | "$(inherited)",
757 | "@executable_path/Frameworks",
758 | "@executable_path/../../Frameworks",
759 | );
760 | MARKETING_VERSION = 1.0;
761 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Shield-Configuration-Extension";
762 | PRODUCT_NAME = "$(TARGET_NAME)";
763 | SKIP_INSTALL = YES;
764 | SWIFT_EMIT_LOC_STRINGS = YES;
765 | SWIFT_VERSION = 5.0;
766 | TARGETED_DEVICE_FAMILY = "1,2";
767 | };
768 | name = Release;
769 | };
770 | 41AA525F2C074C0B00786F96 /* Debug */ = {
771 | isa = XCBuildConfiguration;
772 | buildSettings = {
773 | CODE_SIGN_ENTITLEMENTS = "Device Activity Monitor Extension/Device_Activity_Monitor_Extension.entitlements";
774 | CODE_SIGN_STYLE = Automatic;
775 | CURRENT_PROJECT_VERSION = 1;
776 | DEVELOPMENT_TEAM = U7XVUW953J;
777 | GENERATE_INFOPLIST_FILE = YES;
778 | INFOPLIST_FILE = "Device Activity Monitor Extension/Info.plist";
779 | INFOPLIST_KEY_CFBundleDisplayName = "Device Activity Monitor Extension";
780 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
781 | IPHONEOS_DEPLOYMENT_TARGET = 17.5;
782 | LD_RUNPATH_SEARCH_PATHS = (
783 | "$(inherited)",
784 | "@executable_path/Frameworks",
785 | "@executable_path/../../Frameworks",
786 | );
787 | MARKETING_VERSION = 1.0;
788 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Device-Activity-Monitor-Extension";
789 | PRODUCT_NAME = "$(TARGET_NAME)";
790 | SKIP_INSTALL = YES;
791 | SWIFT_EMIT_LOC_STRINGS = YES;
792 | SWIFT_VERSION = 5.0;
793 | TARGETED_DEVICE_FAMILY = "1,2";
794 | };
795 | name = Debug;
796 | };
797 | 41AA52602C074C0B00786F96 /* Release */ = {
798 | isa = XCBuildConfiguration;
799 | buildSettings = {
800 | CODE_SIGN_ENTITLEMENTS = "Device Activity Monitor Extension/Device_Activity_Monitor_Extension.entitlements";
801 | CODE_SIGN_STYLE = Automatic;
802 | CURRENT_PROJECT_VERSION = 1;
803 | DEVELOPMENT_TEAM = U7XVUW953J;
804 | GENERATE_INFOPLIST_FILE = YES;
805 | INFOPLIST_FILE = "Device Activity Monitor Extension/Info.plist";
806 | INFOPLIST_KEY_CFBundleDisplayName = "Device Activity Monitor Extension";
807 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
808 | IPHONEOS_DEPLOYMENT_TARGET = 17.5;
809 | LD_RUNPATH_SEARCH_PATHS = (
810 | "$(inherited)",
811 | "@executable_path/Frameworks",
812 | "@executable_path/../../Frameworks",
813 | );
814 | MARKETING_VERSION = 1.0;
815 | PRODUCT_BUNDLE_IDENTIFIER = "com.mac.Screen-Time.Device-Activity-Monitor-Extension";
816 | PRODUCT_NAME = "$(TARGET_NAME)";
817 | SKIP_INSTALL = YES;
818 | SWIFT_EMIT_LOC_STRINGS = YES;
819 | SWIFT_VERSION = 5.0;
820 | TARGETED_DEVICE_FAMILY = "1,2";
821 | };
822 | name = Release;
823 | };
824 | /* End XCBuildConfiguration section */
825 |
826 | /* Begin XCConfigurationList section */
827 | 41AA51FE2C07243F00786F96 /* Build configuration list for PBXProject "Screen Time" */ = {
828 | isa = XCConfigurationList;
829 | buildConfigurations = (
830 | 41AA520F2C07244000786F96 /* Debug */,
831 | 41AA52102C07244000786F96 /* Release */,
832 | );
833 | defaultConfigurationIsVisible = 0;
834 | defaultConfigurationName = Release;
835 | };
836 | 41AA52112C07244000786F96 /* Build configuration list for PBXNativeTarget "Screen Time" */ = {
837 | isa = XCConfigurationList;
838 | buildConfigurations = (
839 | 41AA52122C07244000786F96 /* Debug */,
840 | 41AA52132C07244000786F96 /* Release */,
841 | );
842 | defaultConfigurationIsVisible = 0;
843 | defaultConfigurationName = Release;
844 | };
845 | 41AA52382C07384000786F96 /* Build configuration list for PBXNativeTarget "Shield Action Extension" */ = {
846 | isa = XCConfigurationList;
847 | buildConfigurations = (
848 | 41AA52392C07384000786F96 /* Debug */,
849 | 41AA523A2C07384000786F96 /* Release */,
850 | );
851 | defaultConfigurationIsVisible = 0;
852 | defaultConfigurationName = Release;
853 | };
854 | 41AA524C2C07386F00786F96 /* Build configuration list for PBXNativeTarget "Shield Configuration Extension" */ = {
855 | isa = XCConfigurationList;
856 | buildConfigurations = (
857 | 41AA524D2C07386F00786F96 /* Debug */,
858 | 41AA524E2C07386F00786F96 /* Release */,
859 | );
860 | defaultConfigurationIsVisible = 0;
861 | defaultConfigurationName = Release;
862 | };
863 | 41AA525E2C074C0B00786F96 /* Build configuration list for PBXNativeTarget "Device Activity Monitor Extension" */ = {
864 | isa = XCConfigurationList;
865 | buildConfigurations = (
866 | 41AA525F2C074C0B00786F96 /* Debug */,
867 | 41AA52602C074C0B00786F96 /* Release */,
868 | );
869 | defaultConfigurationIsVisible = 0;
870 | defaultConfigurationName = Release;
871 | };
872 | /* End XCConfigurationList section */
873 | };
874 | rootObject = 41AA51FB2C07243F00786F96 /* Project object */;
875 | }
876 |
--------------------------------------------------------------------------------