What to do when a bug in Apple's software means your app will no longer work in the next iOS release?

So the iOS 11 release date draws ever nearer.


I've found bug in core data which means my app will not work in iOS 11 with no workaround. Core Data simply refuses to open the previously supported binary datastore. It's not an error in my code, I'm using core data in a way that's supported. The bug only happens with one type of datastore, but works fine in others.


Core data reports it as an unsupported attribute when opening a database, but has not problem storing it as the unsupported value.


So when a user upgrades to iOS11, they can't open or create any files.


I can't migrate the data in iOS 11 because I can't open the file to fix it.


I've submitted a radar bug report (33895450), but Apple hasn't commented on it, for all I know, no one has even looked at it. It's got a super simple xcode project attached with full details on how to replicate the problem, which happens every single time.


So come iOS 11 release day, my app is hosed. I can't work on any other iOS 11 issues because my app won't open in iOS 11.


I can't find any way to escalate the issue. Apple seems to have dropped the priotirisation, but this is data loss and application crash.


I looked at requesting technical support, but when I go there, they specifically state they won't work with pre release software.


I'll put some links in replies, because otherwise Apple will moderate this question and I'll lose even more days on help.

I had an issue with Core Data, but I'm not 100% sure when it occured. I believe it was going from iOS9 to iOS10. I had a similar problem, and it would not open under any circumstance. It was a long time ago, so I'm not going to say for sure that I can solve this. I haven't done any upgrade with iOS11, I'm just going to wait until tomorrow. The code below fixed the issue I had with CoreData. You are welcome to try it.


lazy var persistentContainer: NSPersistentContainer = {
       
        let container = NSPersistentContainer(name: APP_FILENAME)
        let seededData = APP_FILENAME
        var persistentStoreDescriptions: NSPersistentStoreDescription
        let storeUrl = self.applicationDocumentsDirectory.appendingPathComponent("\(APP_FILENAME).sqlite")
       
        if !FileManager.default.fileExists(atPath: (storeUrl.path)) {
            if let seededDataUrl = Bundle.main.url(forResource: seededData, withExtension: "sqlite") {
                try! FileManager.default.copyItem(at: seededDataUrl, to: storeUrl)
            }
        }
        container.persistentStoreDescriptions = [NSPersistentStoreDescription(url: storeUrl)]
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
            if let error = error {
                fatalError("Unresolved error \(error),")
            }
        })
        return container
    }()
What to do when a bug in Apple's software means your app will no longer work in the next iOS release?
 
 
Q