I used to be able to show my app's icon in the UI using this code:
if let icon = UIImage(named: "AppIcon") {
Image(uiImage: icon)
.resizable()
.frame(width: 64, height: 64)
.cornerRadius(10)
}
But this doesn't work when building with Xcode 16 and iOS 18 SDK.
How can I show my app's icon in the UI without resorting to duplicating the asset?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
CloudKit was working perfectly in iOS 16. However after updating to iOS 17 RC on my devices iCloud sync no longer works properly.
The app has a package called CloudKitSyncMonitor which shows the sync status. Normally it would say Synced with iCloud but on iOS 17 it is either stuck in the Syncing or Sync not started state and the data doesn’t update. This mostly happens after a reinstall of the app. After some time it randomly decides to work until I uninstall the app.
I’m really confused what could be the problem if it was working fine on iOS 16 but barely works properly on iOS 17? This is currently the code I have for the DataController:
import SwiftUI
import CoreData
class DataController {
var container: NSPersistentCloudKitContainer
@AppStorage(wrappedValue:true,"syncEnabled",store:UserDefaults(suiteName: "group.com.ip18.SubManager")) var syncEnabled
static let shared = DataController()
init() {
container = NSPersistentCloudKitContainer(name: "Subscriptions")
load(syncEnabled: syncEnabled)
}
func load(syncEnabled: Bool = true) {
container = NSPersistentCloudKitContainer(name: "Subscriptions")
let url = URL.storeURL(for: "group.com.ip18.SubManager", databaseName: "Subscriptions")
let storeDescription = NSPersistentStoreDescription(url:url)
if syncEnabled {
storeDescription.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.ip18.SubManager")
} else {
storeDescription.cloudKitContainerOptions = nil
}
let remoteChangeKey = "NSPersistentStoreRemoteChangeNotificationOptionKey"
storeDescription.setOption(true as NSNumber, forKey: remoteChangeKey)
storeDescription.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey)
container.persistentStoreDescriptions = [storeDescription]
container.viewContext.automaticallyMergesChangesFromParent = true
/*
// Only initialize the schema when building the app with the
// Debug build configuration.
#if DEBUG
do {
// Use the container to initialize the development schema.
try container.initializeCloudKitSchema(options: [])
} catch {
// Handle any errors.
}
#endif
*/
container.loadPersistentStores(completionHandler: {(storeDescription,error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error)")
}
})
}
}
I've been seeing a high number of BGTaskScheduler related crashes, all of them coming from iOS 18.4. I've encountered this myself once on launch upon installing my app, but haven't been able to reproduce it since, even after doing multiple relaunches and reinstalls. Crash report attached at the bottom of this post.
I am not even able to symbolicate the reports despite having the archive on my MacBook:
Does anyone know if this is an iOS 18.4 bug or am I doing something wrong when scheduling the task? Below is my code for scheduling the background task on the view that appears when my app launches:
.onChange(of: scenePhase) { newPhase in
if newPhase == .active {
#if !os(macOS)
let request = BGAppRefreshTaskRequest(identifier: "notifications")
request.earliestBeginDate = Calendar.current.date(byAdding: .hour, value: 3, to: Date())
do {
try BGTaskScheduler.shared.submit(request)
Logger.notifications.log("Background task scheduled. Earliest begin date: \(request.earliestBeginDate?.description ?? "nil", privacy: .public)")
} catch let error {
// print("Scheduling Error \(error.localizedDescription)")
Logger.notifications.error("Error scheduling background task: \(error.localizedDescription, privacy: .public)")
}
#endif
...
}
2025-02-23_19-53-50.2294_+0000-876d2b8ec083447af883961da90398f00562f781.crash
I noticed I can no longer view the last 24 hours in sales and trends, the option has been replaced with “Yesterday” which shows nothing. Is this intentional or a bug?