Is there a setting am I missing or Simulator is just broken on Beta 2 and won't go on the Internet?
Xcode 12.4 is working fine. Other devs see this as well.
Nothing in the release notes.
Any workaround?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Since iOS/iPadOS beta 6, I get a crash just by simply selecting an item in the sidebar of a navigation view. The selected item is part of an app mode, with conforms to the Observation protocol:
import SwiftUI
import Observation
@main
struct MREAApp: App {
@State private var appModel = AppModel.shared
var body: some Scene {
WindowGroup {
ContentView()
.environment(appModel)
}
}
}
@Observable class AppModel {
static var shared = AppModel()
var selectedFolder: Folder? = nil
}
struct Folder: Hashable, Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
@Environment(AppModel.self) private var appModel
var folders = [Folder(name: "Recents"), Folder(name: "Deleted"), Folder(name: "Custom")]
var body: some View {
NavigationSplitView {
SidebarView(appModel: appModel, folders: folders)
} detail: {
if let folder = appModel.selectedFolder {
Text(folder.name)
}
else {
Text("No selection")
}
}
}
}
struct SidebarView: View {
@Bindable var appModel: AppModel
var folders: [Folder]
var body: some View {
List(selection: $appModel.selectedFolder) {
ForEach(folders, id: \.self) { folder in
NavigationLink(value: folder) {
Text(folder.name)
}
}
}
}
}
To reproduce the bug, just tap on one of the item.
Oddly enough, this works fine in the Simulator.
macOS 14 beta 5 is not affected either.
Apple folks: FB12981860
Calling DNSServiceNATPortMappingCreate returns kDNSServiceErr_NoError like expected but the port mapping actually fails right away in the callback.
I'm calling this in a daemon via XPC. Are there new restrictions or permissions required?
I'm in the process of migrating to the Observation framework but it seems like it is not compatible with didSet. I cannot find information about if this is just not supported or a new approach needs to be implemented?
import Observation
@Observable class MySettings {
var windowSize: CGSize = .zero
var isInFullscreen = false
var scalingMode: ScalingMode = .scaled {
didSet {
...
}
}
...
}
This code triggers this error:
Instance member 'scalingMode' cannot be used on type 'MySettings'; did you mean to use a value of this type instead?
Anyone knows what needs to be done? Thanks!
For some reason, a List will reset its selection to nil when the app is in the background.
Steps to reproduce the issue:
Run attached sample project
Once the app has launched, select a name in the sidebar
Move the app to the background
Wait a few seconds
Bring back the app to the foreground
Expected result:
The list selection should still be valid
Actual result:
The list selection is set to nil
Notes:
I’m using a StateObject, which should be the way to ensure that data isn’t regenerated when views are rendered. Is this a bug or something else needs to be taken care of?
class AppModel: ObservableObject {
@Published var selectedPerson: Person?
}
@main
struct NilListSelectionApp: App {
@StateObject var appModel = AppModel()
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(appModel)
}
}
}
struct Person: Identifiable, Hashable {
let id: UUID
let firstname: String
init(firstname: String) {
id = UUID()
self.firstname = firstname
}
}
struct ContentView: View {
@EnvironmentObject private var appModel: AppModel
var body: some View {
NavigationSplitView {
SidebarView()
} detail: {
PersonView(person: appModel.selectedPerson)
}
}
}
struct SidebarView: View {
@EnvironmentObject private var appModel: AppModel
private let persons = [Person(firstname: "Joe"), Person(firstname: "Jane")]
var body: some View {
List(persons, id:\.self, selection: $appModel.selectedPerson) { person in
Text(person.firstname).tag(person)
}
.listStyle(.sidebar)
}
}
struct PersonView: View {
let person: Person?
var body: some View {
if let person {
Text(person.firstname)
}
else {
Text("No Selection")
}
}
}
Xcode 26.2 RC has been out for over 24 hours and it's still not possible to submit apps.
Hi,My iOS Swift app contains a in-house built framework (A), which is also using Swift. This framework includes 2 in-house built frameworks (B and C) using Objective-C."Embedded Content Contains Swift Code" is set to YES for the app and to NO for the A, B and C frameworks.When I try to submit the app to iTC, I get these errors:ERROR ITMS-90205: "Invalid Bundle. The bundle at 'yourapp.app/Frameworks/A.framework' contains disallowed nested bundles."...ERROR ITMS-90206: "Invalid Bundle. The bundle at 'yourapp.app/Frameworks/A.framework' contains disallowed file 'Frameworks'."...How can I fix those?
In my app, I'd like to be able to share a .csv file via ShareLink and Transferable. I watched the "Meet Transferable" WWDC22 video and it should be possible as the presenter demonstrated that use case.
However, when I try this on my end, I am able to share the content but somehow it is treated by iOS as plaintext and when sharing by email or messages, it will just add the text content to the body.
If I try to share via AirDrop, it creates a random filename with the .txt extension even though I specify .commaSeparatedText.
The only way this somewhat works is when saving to files. It will save as a .csv file but the filename is set to "comma-separated values".
Here's some code:
struct MyArchive {
enum ValidationError: Error {
case invalid
}
var filename: String {
return "myarchive.csv"
}
init(csvData: Data) throws {
//...
}
func convertToCSV() throws -> Data {
let test = "Name,Email\nPete,pete@example.com"
if let data = test.data(using: .utf8) {
return data
}
else {
throw ValidationError.invalid
}
}
}
extension MyArchive: Transferable {
static var transferRepresentation: some TransferRepresentation {
DataRepresentation(contentType: .commaSeparatedText) { archive in
try archive.convertToCSV()
} importing: { data in
try MyArchive(csvData: data)
}
}
}
And in my View:
struct View: View {
var body: some View {
//...
let csv = MyArchive()
ShareLink(
item: csv,
preview: SharePreview(
csv.filename,
image: Image(systemName: "doc.plaintext")
)
)
}
}
I'm at the point that I wonder if I'm doing something wrong or this just doesn't work in iOS 16 beta 1.
Any hints?
Thanks!
The new Mac virtual display feature on visionOS 2 offers a curved/panoramic window. I was wondering if this is simply a property that can be applied to a window, or if it involves an immersive mode or SceneKit/RealityKit?
I understand this is a known issue, but it’s truly unacceptable that it remains unresolved. Allowing users to customize toolbars is a fundamental macOS feature, and it has been broken since the release of macOS 15.
How is it possible that this issue persists even in macOS 15.3 beta (24D5040f)?
FB15513599
import SwiftUI
struct ContentView: View {
@State private var showEditItem = false
var body: some View {
VStack {
VStack {
Text("Instructions to reproduce the crash")
.font(.title)
.padding()
Text("""
1. Click on "Toggle Item"
2. In the menu go to File > New Window
3. In new window, click on "Toggle Item"
""")
}
.padding()
Button {
showEditItem.toggle()
} label: {
Text("Toggle Item")
}
}
.padding()
.toolbar(id: "main") {
ToolbarItem(id: "new") {
Button {
} label: {
Text("New…")
}
}
if showEditItem {
ToolbarItem(id: "edit") {
Button {
} label: {
Text("Edit…")
}
}
}
}
}
}
Isn't there no way to set the default filename to use when we want to save a DataRepresentation to a file?
If I export to JSON, the filename is "JSON.json" is used by iOS, even if I set the name to use in SharePreview.
struct ContentView: View {
let car = Car(id: UUID(), name: "911", items:
[Item(id: UUID(),date: .now, desc: "oil change"),
Item(id: UUID(),date: .now, desc: "Battery")])
var body: some View {
VStack {
ShareLink(item: car, preview: SharePreview(car.name))
}
.padding()
}
}
extension UTType {
static var car: UTType = UTType(exportedAs: "com.acme.cararchive")
}
struct Car: Codable {
let id: UUID
let name: String
let items: [Item]
}
extension Car: Transferable {
static var transferRepresentation: some TransferRepresentation {
DataRepresentation(contentType: .json) { archive in
try JSONEncoder().encode(archive)
} importing: { data in
try JSONDecoder().decode(Car.self, from: data)
}
}
}
struct Item: Codable {
let id: UUID
let date: Date
let desc: String
}
Is there a way to force a window to resize according to an aspect ratio? This is possible in AppKit via the NSWindow.contentAspectRatio property but I cannot find something similar for SwiftUI.
Basically, I want the window to maintain the aspect ratio of its contents.
When I try to run my iPad app in the simulator, I get this error:
dyld[25133]: Symbol not found: _$s21DeveloperToolsSupport15PreviewRegistryPAAE04makeD0AA0D0VyKFZ
Referenced from: <40E6A0C8-6B05-3C87-8F68-D333EF2586EA> /Users/me/Library/Developer/CoreSimulator/Devices/DAE1996F-4A59-49CA-B55D-FE2AF0E6461F/data/Containers/Bundle/Application/B49E91FE-89D5-4496-831D-31B87A6F1170/My.app/My
Expected in: <31FB64EE-D651-3287-9607-1ED38855E80F> /Library/Developer/CoreSimulator/Volumes/xrOS_21N5165g/Library/Developer/CoreSimulator/Profiles/Runtimes/xrOS 1.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/DeveloperToolsSupport.framework/DeveloperToolsSupport
Message from debugger: killed
Is this a bug, my iPad app is not compatible or there's something I need to do?
We had a few users reporting this issue where our app is unable to connect to StoreKit.
Failed product request from the App Store server: systemError(Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.storekitagent" UserInfo={NSDebugDescription=connection to service named com.apple.storekitagent})
This occurs when calling Product.products(for:).
Some users mentioned they had to restart their Mac in safe mode to make the error go away, some had DNS cache issues and clearing those helped, or some found the culprit to be Adguard.
What could be causing this error as it is not very clear what's causing it?
When displaying a view using a navigation Split View as a sheet, the toolbar button will disappear if you leave the app and resume it.
import SwiftUI
struct Folder: Hashable, Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
@State private var showingSettings = false
var body: some View {
VStack {
Button {
showingSettings.toggle()
} label: {
Text("Settings")
}
}
.sheet(isPresented: $showingSettings, content: {
SettingsView()
})
.padding()
}
}
struct SettingsView: View {
@Environment(\.dismiss) private var dismiss
@State private var selectedFolder: Folder? = nil
private var folders = [Folder(name: "Recents"), Folder(name: "Deleted"), Folder(name: "Custom")]
var body: some View {
NavigationSplitView {
SidebarView(selectedFolder: $selectedFolder, folders: folders)
} detail: {
VStack {
if let folder = selectedFolder {
Text(folder.name)
}
else {
Text("No selection")
}
}
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button {
dismiss()
} label: {
Text("Cancel")
}
}
ToolbarItem(placement: .confirmationAction) {
Button {
dismiss()
} label: {
Text("Save")
}
}
}
}
}
}
struct SidebarView: View {
@Binding var selectedFolder: Folder?
var folders: [Folder]
var body: some View {
List(selection: $selectedFolder) {
ForEach(folders) { folder in
NavigationLink(value: folder) {
Text(folder.name)
}
}
}
}
}
Steps to reproduce the issue:
Launch the attached project on an iPad or iPad simulator
Tap the Settings button
Select one item in the sidebar
Use the app switcher to open an other app or just leave the app
Bring back the app
Result:
Both Cancel and Save buttons are gone.
Note:
This will not occur if no item is selected in the sidebar.
FB12991687