Hello, my client invited me to his account as an admin. But his account is not an Organization one, it Individual. My Apple ID already has a paid apple developer account and I'd like to create a new app for his account (since he invited me as an admin). It shows his name under my name when I'm on the Add Apps page, but when I choose to Register a new bundle ID in Certificates, Identifiers & Profiles, it chooses my account not his. How can I create an app for him? Maybe he needs to change his account to Organization?
Post
Replies
Boosts
Views
Activity
Hello, I have an app that you can select apps and then start monitoring.
When I restrict the apps by button click, and monitor the activity, the scheduled time works and intervalDidEnd cancels shielding apps.
But when I schedule shielding apps, intervalDidStart doesn't start shielding.
What am I missing here?
I have already added FamilyControls capability.
import SwiftUI
@main
struct TestingScreenTimeAPIApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
import SwiftUI
struct ContentView: View {
@StateObject var model = MyModel.shared
@State var isPresented = false
var body: some View {
VStack {
Button("Select Apps") {
isPresented = true
}
.familyActivityPicker(isPresented: $isPresented, selection: $model.selectionToDiscourage)
Button("Start monitoring") {
model.startMonitoring()
}
.padding()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import Foundation
import FamilyControls
import DeviceActivity
class MyModel: ObservableObject {
static let shared = MyModel()
private init() {}
var selection: FamilyActivitySelection? = nil
var selectionToDiscourage = FamilyActivitySelection() {
willSet {
selection = newValue
}
}
func startMonitoring() {
let intervalStart = DateComponents(hour: 11, minute: 09)
let intervalEnd = DateComponents(hour: 13, minute: 14)
let schedule = DeviceActivitySchedule(
intervalStart: intervalStart,
intervalEnd: intervalEnd,
repeats: true)
let center = DeviceActivityCenter()
do {
try center.startMonitoring(.activity, during: schedule)
} catch {
print ("Error: \(error)")
}
}
}
extension DeviceActivityName {
static let activity = Self("activity")
}
import UIKit
import FamilyControls
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
Task {
do {
try await AuthorizationCenter.shared.requestAuthorization(for: .individual)
} catch {
print("Error: \(error.localizedDescription)")
}
}
return true
}
}
import DeviceActivity
import FamilyControls
import ManagedSettings
class DeviceActivityMonitorExtension: DeviceActivityMonitor {
let store = ManagedSettingsStore()
override func intervalDidStart(for activity: DeviceActivityName) {
super.intervalDidStart(for: activity)
let model = MyModel.shared
if model.selection != nil {
let applications = model.selection!.applicationTokens
store.shield.applications = applications.isEmpty ? nil : applications
}
}
override func intervalDidEnd(for activity: DeviceActivityName) {
super.intervalDidEnd(for: activity)
store.shield.applications?.removeAll()
}
}
Hi, I'm developing an app like Opal which uses Screen Time API. So the user should be able to create modes to activate it later, like an alarm. There's a list of durations and mode names and there should be selected apps, so whenever the user turns the switch on, app restricting should be started. How can I save the selected apps in FirebaseFirestore, and then get that data to restrict the apps whenever the user turns the switch on? I've tried to save it as Strings, but I can't convert it later to ApplicationToken to insert it to Set.
Hi, I added the ShieldConfiguration Extension target to my app to customize the shield UI but there are only a few things we can change like Label, backgroundBlurStyle, backgroundColor, icon, etc. Is it possible to customize the whole UI by creating a new one, I want to add an animation for example, is it possible or we can only change the text, icon, button, and background, that's all?