possibly fix the launch crash
add new package to track cloudkit issues
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user