Hiya,
I am having issues trying to use previews in the xcode 15 beta, i am using an M2 macbook air with 8gb of ram.
I am using MacOS Sonoma and iOS 17.0 Beta 1 and am struggling using previews, the base simulator works but no previews.
I am not receiving any error so am very confused.
Any help would be majorly appreciated.
Thanks,
Gus
Dive into the vast array of tools, services, and support available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Is it possible to merge or split a string catalog? It doesn't seem possible now.
The workaround i use now is eidting the xcstrings file in TextEdit.
Hi
Is anyone aware of a way to emulate the digital crown within the Vision Pro Simulator? I've tried various key/scrolling combinations without any luck.
I am interested to see how the progressive immersion mode works.
Thanks
Throughout the WWDC guides and videos, Apple claims existing iOS and iPadOS apps will run in the visionOS Pro Simulator "unmodified." But none of my existing UIKit apps do.
xrOS is installed and it does run for new project templates. But even after making sure "Apple Vision (Designed for iPad)" is added to my project settings, the destination never appears in the picker UI.
What is Xcode detecting? If existing apps must be using SwiftUI or somesuch, then Apple needs to state that as a requirement.
And if that is the case, is there a migration example of meeting this requirement without breaking or rewriting my apps?
using #if os(visionOS) does not work in beta 2, but I have noticed in the simulator that I really need to use thicker lines and darker colors for better legibility. Is there a way to do this in beta 2 yet?
I'm new to iOS development, although I've been through some basic tutorials. I never went as far as publishing an app. I hope what I describe makes sense to someone who has gone through the process.
I was tasked with updating our iOS app as the previous developer is no longer with the company I was invited to the team by the admin so I have access to all devices/profiles/certificates in the dev portal.
The problem:
In the step of linking the UDID to this profile, an error occurs, this device identifier has been duplicated. Not sure how this is possible if I can't add one with the same UDID? So I disabled the two duplicates, thinking this would allow me to add the new entry. No, same error. And now, I can't even reactivate ANY of the other two that I previously deactivated because there is already a device with the same UDID in the list!
Anyone know how to set Side By Side Comparison in the new commit UI? New UI seems to missing a lot of features like multi-select of files to discard/stage...
Xcode 14 introduced some ridiculous Info.plist management bugs which are not yet fixed in Xcode 15:
The bugs are manifested in the General and Info tabs of target management:
-The Build value in the General tab is not in sync with the CFBundleVersion value in the Info tab (that is, changing the value in the General tab won't affect the Info tab and vice versa).
-The App Category value in the General tab isn't in sync with the LSApplicationCategoryType value in the Info tab.
-Additional document type properties in the Info tab cannot be added: clicking "Click here to add..." doesn't do anything.
-Document types in Info tab cannot be deleted: once you added a document type instance (even as a test) there's no way to remove it.
I'm new to Apple development and decided to learn using SwiftData and Xcode 15 beta 4 (though I'm starting to think I don't need that extra challenge). I've worked through many issues--with you all's help--but this is one I can't figure out and hasn't shown up in my searches.
I'm working on the traditional task list app (with a Task model). I've tried several approaches to app structure, but each time I eventually hit this same error. It doesn't happen when I set up the new Xcode project, but eventually it does. I've cleaned the build folder, restarted the Simulator, and even rebooted the Macbook I'm working on.
Here's what happens when I click Product > Run:
the app builds successfully
the Simulator displays a white screen as expected
then the error appears.
Here are the error messages:
In the debug area it says:
SwiftData/ModelContainer.swift:159: Fatal error: failed to find a currently active container for Task
Failed to find any currently loaded container for Task)
and in the warning in the editor says Thread 1: Fatal error: failed to find a currently active container for Task
The debugger is highlighting this line in the call stack (not sure if that's useful as a newbie):
#7 0x0000000100bb6d90 in Task.init(id:title:priority:) at /var/folders/3v/q8g4z9bx4lb9z6t7mhgwgghw0000gn/T/swift-generated-sources/@__swiftmacro_10BadgerTool4Task5ModelfMm_.swift:2
Here's the code:
The Task model isn't complex:
// Task.swift
import Foundation
import SwiftData
@Model
class Task {
@Attribute(.unique) var id: UUID
var title: String
var priority: String
init(id: UUID = UUID(), title: String, priority: String = "None") {
self.id = id
self.title = title
self.priority = priority
}
}
I have the model container set in the context of the highest view:
// BadgerToolApp.swift
import SwiftUI
import SwiftData
@main
struct BadgerToolApp: App {
var body: some Scene {
WindowGroup {
NavView()
.modelContainer(for: Task.self)
}
}
}
I tried moving all other views one layer down (which is why the unnecessary NavView is there):
// NavView.swift
import SwiftUI
import SwiftData
struct NavView: View {
@State var selectedCollection: Collection?
@State var selectedTask: Task?
var body: some View {
NavigationSplitView(
sidebar: {
SideBarView(selectedCollection: $selectedCollection, selectedTask: $selectedTask)
},
content: {
ContentListView(selectedCollection: $selectedCollection, selectedTask: $selectedTask)
},
detail: {
TaskDetailView(selectedCollection: $selectedCollection, selectedTask: $selectedTask)
}
)
}
}
Trying to isolate my mistake
I removed everything else related to SwiftData (except for the imports) and gave my views hard-coded data for the simulator like this:
// SideBarView.swift
import SwiftUI
import SwiftData
struct SideBarView: View {
@Binding var selectedCollection: Collection?
@Binding var selectedTask: Task?
let collections = presetCollections //temp data
var body: some View {
List(collections, id: \.id, selection: $selectedCollection){ collection in
NavigationLink(collection.name, value: collection)
}
List{
Text("All Tasks")
Text("Settings")
}
.navigationTitle("Collections")
}
}
Everything works as expected if
I comment out the .modelContainer() modifier on the call to NavView view
I change the Task definition from the @Model class to a regular struct like this:
// Task.swift
// with @Model removed
import Foundation
struct Task: Hashable {
var id: UUID
var title: String
var priority: String
init(id: UUID = UUID(), title: String, priority: String = "None") {
self.id = id
self.title = title
self.priority = priority
}
}
What am I missing?
Could it be a bug?
Thanks for your help!
I've always thought that it just didn't work for me, because there was no feedback.
Users can upvote their own posts, yet they don't by default upon posting them. Reddit, for comparison, continues to allow users to remove their own-post upvotes, but upvotes them for the user by default. Other forums like Stack Overflow disallow own-post upvoting.
This forum has the worst of both worlds, for users can gain an algorithmic advantage by upvoting their own. It might seem like a minor issue, because it is. But it's an issue in my eyes regardless.
None of my existing apps (both in-AppStore and in-development) nor even a brand new WatchOS app can be installed to my Apple Watch. While using Xcode to build and deploy to my Watch, I get this:
”Waiting to reconnect to Apple Watch
Xcode will continue when the operation completes.”
However, this dialog persists and never completes.
I’m running all of the latest: MacOS 14 beta 4, Xcode 15 beta 5, Watch OS 10 beta 4, iOS 17 beta 4.
I’ve tried resetting my Watch (with “Erase All” option) and restarting the Mac, the phone and the watch.
Any help?
It seems that Xcode Cloud currently only uses Intel machines for running the workflow jobs.
When will Apple Silicon machines be available and supported?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Xcode
Apple Silicon
Xcode Cloud
wwdc2023-10224
I regularly see questions from folks who’ve run into problems with their third-party IDE on macOS. Specifically, the issue is that their IDE is invoking Apple’s command-line tools — things like clang and ld — and that’s failing in some way. This post collects my ideas on how to investigate, and potentially resolve, issues like this.
If you have any questions or comments, please put them in a new thread here on DevForums. Tag it appropriately so that I see it. Good tags include Compiler, Linker, LLVM, and Command Line Tools.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Investigating Third-Party IDE Integration Problems
Many third-party IDEs rely on Apple tools. For example, the IDE might run clang to compile C code or run ld to link object files. These IDEs typically don’t include the tools themselves. Rather, they rely on you to install Xcode or Apple’s Command Line Tools package. These are available at Apple > Developer > Downloads
Occasionally I see folks having problems with this. They most typically report that basic stuff, like compiling a simple C program, fails with some mysterious error. If you’re having such a problem, follow the steps below to investigate it.
IMPORTANT Some IDEs come with their own tools for compiling and linking. Such IDEs are not the focus of this post. If you have problems with an IDE like that, contact its vendor.
Select Your Tools
macOS has a concept of the current command-line tools. This can either point to the tools within Xcode or to an installed Command Line Tools package. To see which tools are currently selected, run xcode-select with the --print-path argument. This is what you’ll see if you have Xcode installed in the Applications folder:
% xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
Note All of the tools I discuss here are documented in man pages. If you’re not familiar with those, see Reading UNIX Manual Pages.
And this is what you’ll see with a Command Line Tools package selected.
% xcode-select --print-path
/Library/Developer/CommandLineTools
There are two common problems with this:
It points to something you’ve deleted.
It points to something unexpected.
Run the command above to see the current state. If necessary, change the state using the --switch option. For example:
% xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
% clang -v
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
…
% sudo xcode-select --switch ~/XcodeZone/Xcode-beta.app
% clang -v
Apple clang version 15.0.0 (clang-1500.0.38.1)
…
I have Xcode 14.3 in the Applications folder and thus clang runs Clang 14.0.3. I have Xcode 15.0b5 in ~/XcodeZone, so switching to that yields Clang 15.0.0.
It’s possible to run one specific command with different tools. See Select Your Tools Temporarily, below.
Run a Simple Test
A good diagnostic test is to use the selected command-line tools to compile a trivial test program. Consider this C [1] example:
% cat hello.c
#include <stdio.h>
int main(int argc, char ** argv) {
printf("Hello Cruel World!\n");
return 0;
}
% clang -o hello hello.c
% ./hello
Hello Cruel World!
IMPORTANT If possible, run this from Terminal rather than, say, over SSH.
You may need to expand this test program to exercise your specific case. For example, if your program is hitting an error when it tries to import the Core Foundation framework, add that import to your test program:
% cat hello.c
#include <stdio.h>
#include <CoreFoundation/CoreFoundation.h>
int main(int argc, char ** argv) {
printf("Hello Cruel World!\n");
return 0;
}
When you compile your test program, you might see one of these results:
Your test program compiles.
Your test program fails with a similar error.
Your test program fails with a different error.
I’ll explore each case in turn.
[1] For a C++ example, see C++ Issues, below.
If your test program compiles…
If your test program compiles from the shell, that proves that your basic command-line tools setup is fine. If the same program fails to compile in your IDE, there’s something IDE-specific going on here. I can’t help you with that. I recommend that you escalate the issue via the support channel for your IDE.
If your test program fails with a similar error…
If your test program fails with an error similar to the one you’re seeing in your IDE, there are two possibilities:
There’s a bug in your test program’s code.
There’s an environmental issue that’s affecting your command-line tools setup.
Don’t rule out the first possibility. I regularly see folks bump into problems like this, where it turns out to be a bug in their code. For a specific example, see C++ Issues, below.
Assuming, however, that your test program’s code is OK, it’s time to investigate environmental issues. See Vary Your Environment, below.
If your test program fails with a different error…
If your test program fails with a different error, look at the test program’s code to confirm that it’s correct, and that it accurately reflects the code you’re trying to run in your IDE.
Vary Your Environment
If your test program fails with the same error as you’re seeing in your IDE, and you are sure that the code is correct, it’s time to look for environmental factors. I typically do this with the steps described in the next sections, which are listed from most to least complex.
These steps only tell you where things are going wrong, not what is going wrong. However, that’s often enough to continue the investigation of your issue.
Vary Your Shell
Try running your commands in a different shell. macOS’s default shell is zsh. Try running your commands in bash instead:
% bash
…
bash-3.2$ clang -o hello hello.c
bash-3.2$ ./hello
Hello Cruel World!
Or if you’ve switched your shell to bash, try it in zsh.
Vary Your User Account
Some problems are caused by settings tied to your user account. To investigate whether that’s an issue here:
Use System Settings > Users & Groups to create a new user.
Log in as that user.
Run your test again.
Vary Your Mac
Some problems are system wide, so you need to test on a different Mac. The easiest way to do that is to set up a virtual machine (VM) and run your test there. Or, if you have a separate physical Mac, run your test on that.
Vary Your Site
If you’re working for an organisation, they may have installed software on your Mac that causes problems. If you have a Mac at home, try running your test there.
It’s also possible that your network is causing problems [1]. If you have a laptop, try taking it to a different location to see if that changes things.
[1] I rarely see this when building a simple test program, but it do see it with other stuff, like code signing.
C++ Issues
If you’re using C++, here’s a simple test you can try:
% cat hello.cpp
#include <iostream>
int main()
{
std::cout << "Hello Cruel World!\n";
}
% clang++ -o hello hello.cpp
% ./hello
Hello Cruel World!
A classic problem with C++ relates to name mangling. Consider this example:
% cat hello.c
#include <stdio.h>
#include "hello-core.h"
int main(int argc, char ** argv) {
HCSayHello();
return 0;
}
% cat hello-core.cpp
#include "hello-core.h"
#include <iostream>
extern void HCSayHello() {
std::cout << "Hello Cruel World!\n";
}
% cat hello-core.h
extern void HCSayHello();
% clang -c hello.c
% clang++ -c hello-core.cpp
% clang++ -o hello hello.o hello-core.o
Undefined symbols for architecture x86_64:
"_HCSayHello", referenced from:
_main in hello.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The issue here is that C++ generates a mangled name for HCSayHello:
% nm hello-core.o | grep HCSayHello
0000000000000000 T __Z10HCSayHellov
whereas C uses the non-mangled name:
% nm hello.o | grep HCSayHello
U _HCSayHello
The fix is an appropriate application of extern "C":
% cat hello-core.h
extern "C" {
extern void HCSayHello();
};
Select Your Tools Temporarily
Sometimes you want to temporarily run a command from a particular tools package. To continue my earlier example, I currently have Xcode 14.3 installed in the Applications folder and Xcode 15.0b5 in ~/XcodeZone. Xcode 14.3 is the default but I can override that with the DEVELOPER_DIR environment variable:
% clang -v
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
…
% DEVELOPER_DIR=~/XcodeZone/Xcode-beta.app/Contents/Developer clang -v
Apple clang version 15.0.0 (clang-1500.0.38.1)
…
Revision History
2025-01-27 Remove the full width characters. These were a workaround for a forums platform bug that’s since been fixed. Made other minor editorial changes.
2023-07-31 First posted.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
xcselect
Compiler
Linker
Command Line Tools
We use Storyboards and custom fonts in our app. Once we started developing new features for iOS 17 and did the first build in Xcode 15, we've noticed that in quite a few places incorrect fonts are set to views. In some places it is incorrect weight, while in other it's completely different font.
Some observations:
Fonts may change the next time app is build. E.g., instead of SF Pro Display Semibold we got SF Pro Display Heavy, and then after few relaunches it switched to Nunito Bold 😵💫
We’ve ensured that correct font is set in Storyboard, and even tried to re-assign it. That didn’t help.
All custom fonts are properly added to a target and are registered in info.plist
All custom fonts are listed in UIFont.familyNames, so they are indeed registered with the system.
Wrong fonts are loaded on both development environment and in TestFlight builds
We’ve never experienced anything similar before Xcode 15
What we've tried:
Re-assigning fonts in Storyboard.
Creating new Storyboard in Xcode 15 and copying screens into it.
I wonder if anybody else having similar issues and maybe knows the workaround.
Thank you.
P.S. I've filed a Feedback to Apple: FB12903371
I am using SwiftData for my model. Until Xcode 15 beta 4 I did not have issues. Since beta 5 I am receiving the following red warning multiple times:
'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release
This seems to be a CoreData warning. However, I am not using CoreData directly. I have no way to change the config of CoreData as used by SwiftData.
My model just uses UUID, Int, String, Double, some of them as optionals or Arrays. I only use one attribute (.unique).
I'm unable to debug on iPhone 12 running iOS 17 beta 3 via network. I'm running Xcode 15 beta 6
Device shows in devices and simulators and I can debug when connected with cable.
However the "Connect Via Network" option is frayed out, oddly however the checkbox is ticked
I'm developing a app using RoomPlan so network connectivity is a must for debugging
Anyone else encountered this and know how to get around this problem
Other devices running iOS 16 connect via network just fine
I have checked that my scheme is shared and I do in fact have the scheme in my xcode project. But whenever I try to run Xcode cloud, it fails with the message that "A scheme named 'MyAppScheme' does not exist in MyAppProject.xcodeproj"
Any tips on what I could be doing wrong?
Xcode Cloud always exports archive using ad-hoc, development and app-store profiles. This uses up 5-6 more minutes always for my app. How to disable and allow export only in single distribution profile
Topic:
Developer Tools & Services
SubTopic:
Xcode Cloud
Tags:
Signing Certificates
Xcode Cloud
wwdc2023-10224
wwdc2023-10278
Is it possible to reset the device list without paying the Apple Tax? I recently let my developer account lapse due to financial issues but it gets to me that I cant write and run apps I wrote on the phone I own. Now I cant even test them on it because I cant reset the device list. Is there any solution?