possibly fix the launch crash

add new package to track cloudkit issues
This commit is contained in:
Trey t
2022-01-24 10:27:41 -06:00
parent af19d57a62
commit 24be0073ae
4 changed files with 34 additions and 14 deletions

View File

@@ -21,6 +21,7 @@
1C683FCC2792281400745862 /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C683FC92792281400745862 /* Stats.swift */; };
1C6B377A2799B78A001EF820 /* BGView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C6B37792799B78A001EF820 /* BGView.swift */; };
1C744F2C278CE15600953A57 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C744F2B278CE15600953A57 /* AppDelegate.swift */; };
1C747CC9279F06EB00762CBD /* CloudKitSyncMonitor in Frameworks */ = {isa = PBXBuildFile; productRef = 1C747CC8279F06EB00762CBD /* CloudKitSyncMonitor */; };
1CA037702799FFA600D26164 /* ContentModeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA0376F2799FFA600D26164 /* ContentModeViewModel.swift */; };
1CA03773279A293D00D26164 /* OnboardingTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03772279A293D00D26164 /* OnboardingTime.swift */; };
1CA03775279A294800D26164 /* OnboardingDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03774279A294800D26164 /* OnboardingDay.swift */; };
@@ -174,6 +175,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1C747CC9279F06EB00762CBD /* CloudKitSyncMonitor in Frameworks */,
1CD90B6C278C7F78001C4FEA /* CloudKit.framework in Frameworks */,
1C2618FA2795E41D00FDC148 /* Charts in Frameworks */,
);
@@ -388,6 +390,7 @@
name = "Feels (iOS)";
packageProductDependencies = (
1C2618F92795E41D00FDC148 /* Charts */,
1C747CC8279F06EB00762CBD /* CloudKitSyncMonitor */,
);
productName = "Feels (iOS)";
productReference = 1CD90AF5278C7DE0001C4FEA /* iFeel.app */;
@@ -504,6 +507,7 @@
mainGroup = 1CD90AE5278C7DDF001C4FEA;
packageReferences = (
1C2618F82795E41D00FDC148 /* XCRemoteSwiftPackageReference "ChartsPackage" */,
1C747CC7279F06EB00762CBD /* XCRemoteSwiftPackageReference "CloudKitSyncMonitor" */,
);
productRefGroup = 1CD90AF6278C7DE0001C4FEA /* Products */;
projectDirPath = "";
@@ -1140,6 +1144,14 @@
kind = branch;
};
};
1C747CC7279F06EB00762CBD /* XCRemoteSwiftPackageReference "CloudKitSyncMonitor" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/ggruen/CloudKitSyncMonitor";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
@@ -1148,6 +1160,11 @@
package = 1C2618F82795E41D00FDC148 /* XCRemoteSwiftPackageReference "ChartsPackage" */;
productName = Charts;
};
1C747CC8279F06EB00762CBD /* CloudKitSyncMonitor */ = {
isa = XCSwiftPackageProductDependency;
package = 1C747CC7279F06EB00762CBD /* XCRemoteSwiftPackageReference "CloudKitSyncMonitor" */;
productName = CloudKitSyncMonitor;
};
/* End XCSwiftPackageProductDependency section */
/* Begin XCVersionGroup section */

View File

@@ -10,6 +10,15 @@
"version": null
}
},
{
"package": "CloudKitSyncMonitor",
"repositoryURL": "https://github.com/ggruen/CloudKitSyncMonitor",
"state": {
"branch": null,
"revision": "980208a30685713c4c4eb10897206a2e2574ed3f",
"version": "1.1.1"
}
},
{
"package": "swift-algorithms",
"repositoryURL": "https://github.com/apple/swift-algorithms",

View File

@@ -17,7 +17,6 @@ struct FeelsApp: App {
let persistenceController = PersistenceController.shared
init() {
persistenceController.fillInMissingDates()
BGTaskScheduler.shared.cancelAllTaskRequests()
BGTaskScheduler.shared.register(forTaskWithIdentifier: BGTask.updateDBMissingID, using: nil) { (task) in
BGTask.runFillInMissingDatesTask(task: task as! BGProcessingTask)
@@ -38,6 +37,7 @@ struct FeelsApp: App {
if phase == .active {
UIApplication.shared.applicationIconBadgeNumber = 0
persistenceController.fillInMissingDates()
}
}
}

View File

@@ -17,12 +17,7 @@ class PersistenceController {
static let shared = PersistenceController.persistenceController
private static var persistenceController: PersistenceController {
#if targetEnvironment(simulator)
return PersistenceController(inMemory: false)
#else
return PersistenceController(inMemory: false)
#endif
}
public var viewContext: NSManagedObjectContext {
@@ -142,16 +137,15 @@ class PersistenceController {
func fillInMissingDates() {
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: false)]
let entries = try! viewContext.fetch(fetchRequest)
if let earliestDate = entries.last?.forDate {
let diffInDays = Calendar.current.dateComponents([.day], from: earliestDate, to: Date()).day
for idx in 1..<diffInDays! {
let searchDay = Calendar.current.date(byAdding: .day, value: -idx, to: Date())
if entries.filter({ Calendar.current.isDate($0.forDate!, inSameDayAs:searchDay!) }).isEmpty {
self.add(mood: .missing, forDate: searchDay!)
if let earliestDate = entries.last?.forDate,
let diffInDays = Calendar.current.dateComponents([.day], from: earliestDate, to: Date()).day,
diffInDays > 1 {
for idx in 1..<diffInDays {
if let searchDay = Calendar.current.date(byAdding: .day, value: -idx, to: Date()),
entries.filter({ Calendar.current.isDate($0.forDate!, inSameDayAs:searchDay) }).isEmpty {
self.add(mood: .missing, forDate: searchDay)
}
}
}