Hi,
I'm working in unity and I've implemented Firebase Phone Number Authentication in it. Everything works fine when I directly install build from xCode. App Attest screen shows up, user receives OTP on their phone and login works. But when I download the same build from TestFlight, it gets stuck after the user sends OTP request.
I've added Push Notifications and App Attest in capabilities. I've also additionally added Remote Notifications.
In device log I see an error about mobile provisioning file but I've added that to my account also. Is this expected behavior that phone number authentication does not work on TestFlight? If yes, how can I get this approved from apple since they need to test it before approving it.
Thanks!
Xcode
RSS for tagBuild, test, and submit your app using Xcode, Apple's integrated development environment.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Can we use Icon Composer to drive an app icon for iOS 26 apps today? I get errors uploading a build to TestFlight internal testing about missing App icon dimensions for an iOS 26 app.
Trying to use SwiftUI Preview in Xcode 16.2 on complex project, I have no access to Developer Apple team, instead I am using manually installed provision profiles to test on iPhone.
So, SwiftUI Preview does not work with diagnostic error "Failure: Framework Agent preparation failed: Could not find a team ID"
I am a bit confused. My understanding previously was that a modulemap was required in order to have a bridging header be generated. Now it has come to my attention that a modulemap is both a build input and something you can put in the Modules folder of the built product if you so choose.
I have tried reading the clang modulemap documentation, but am really struggling to connect most of what it says to the problem at hand.
In a project I am working on, the generation of the modulemap file is quite problematic. The framework imports C++ libraries and itself writes Objective-C++ wrappers for them. Currently, the modulemap file is both set as the Module Map File in "Build Settings" and presumably used when the Swift project later imports it.
In this project the modulemap is a list of the objective-c++ header files then export *
I am trying to understand what I would lose if I do one or both of two things:
What happens if I dont set this module map file in the build settings for the objective-c++ framework?
What happens if I dont have a modulemap involved whatsoever in this objective-c++ framework and then it is imported into Swift?
And does any of this change if its compiled as a static vs dynamic library? What if I embed it vs not embed it?
Because the build in the real project is so complicated its hard to isolate what is going on. So I built a smaller sample app.
There is CFramework which has an objective-c++ class. There is SwiftProject which imports that framework and is purely Swift. It imports the module and uses it.
I did not write a modulemap file, and the Swift project builds just fine. In the timeline it:
Prepares packages
Computes target dependency graph
Builds static cache for iPhoneSimulator18.2sdk
As near as I can tell even though the objective-c++ framework is not built with a modulemap in its build settings and there is not a modulemap included in the framework everything works. So then the modulemap file is useless? Perhaps it speeds things up but what step would theoretically be skippable?
Hello,
I've noticed the prices of my products in my Xcode synced StoreKit configuration are not updated when I change the price in App Store Connect. I tried to manually sync the file, to remove and add it again to my project but old initial prices are still used.
In the screenshot below, the price is currently $2.99 but the file still uses the initial price of $1.99. It makes testing a little bit painful because I'm never sure which product is being shown.
Is this a bug?
Is there a way to get the live production App Store prices be used instead of the starting prices?
I filed a feedback for this: FB17798486
Regards,
Axel
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
StoreKit Test
StoreKit
App Store Connect
Xcode
Hi everyone,
does anyone also have the problem that e.g. the modifier .classEffect() does not work?
it is not recognized, although I have the required versions and languages all up to date.
I can't get any further, even ChatGPT was at the end of its wisdom 😬.
maybe someone has the same problem and a solution for it.
many thanks in advance
Topic:
Developer Tools & Services
SubTopic:
Xcode
When I try to build my project in Xcode (from Unity AR) project, it throws me these errors:
I feel like I've tried everything to make the LaunchScreen work. I downloaded xcode the night I tried running this build, so the whole deleting and redownloading and restarting everything didn't work. I've tried making sure my macbook and terminal are fully up to date. I literally can't find a solution! Please help!!
I will also say, I'm fairly new to App building, Xcode, and Unity. But this does seem like a barrier that is stopping me from testing my project.
Topic:
Developer Tools & Services
SubTopic:
Xcode
I am experimenting with Foundation Models using the new #Playground macro. It is pretty useful.
One thing I am finding though, is that the playground constantly executing is distracting, when I restructure my code and know that the intermediate results are broken and I don’t care about them.
I would like to disable the Playground, make some bigger code changes, and then enable Plaground again.
How do I enable and disable the Playground from constantly running?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Hi there,
When using devicectl to manage files:
It's unclear for which domains the username should be provided
It's unclear how to determine the username
Listing files
USAGE: devicectl device info files [<options>] --device <uuid|ecid|serial_number|udid|name|dns_name> --domain-type <domain-type>
FILE OPTIONS:
--username <username> The username of the user we should target. Only relevant for certain domains.
--domain-type <domain-type>
The file service domain. Valid values are: temporary, appDataContainer, appGroupDataContainer, systemCrashLogs. You must specify a valid domain and
identifier pair. Certain domains must be accompanied by an identifier that provides additional context. For example, if the domain is an app data
container, the identifier is the bundle ID of the app. For temporary directories, the identifier is a unique client-provided string which is used to
get your own space, separate from those of other clients.
--domain-identifier <domain-identifier>
A unique string used to provide additional context to the domain.
--username The username of the user we should target. Only relevant for certain domains.
In the domains, the username requirements are not mentioned.
Copying files
USAGE: devicectl device copy to --device <uuid|ecid|serial_number|udid|name|dns_name> --source <source> [--destination <destination>] [--user <user>] --domain-type <domain-type> [--domain-identifier <domain-identifier>] [--remove-existing-content <remove-existing-content>] [--verbose] [--quiet] [--timeout <seconds>] [--json-output <path>] [--log-output <path>]
DEVICE OPTIONS:
-d, --device <uuid|ecid|serial_number|udid|name|dns_name>
The identifier, ECID, serial number, UDID, user-provided name, or DNS name of the device.
FILE OPTIONS:
--source <source> The item which should be copied.
--destination <destination>
The location to which the item should be copied.
-u, --user <user> The name of the user we should target. Only relevant for certain domains.
--domain-type <domain-type>
The file service domain. Valid values are: temporary, appDataContainer, appGroupDataContainer, systemCrashLogs. You must specify a valid domain and
identifier pair. Certain domains must be accompanied by an identifier that provides additional context. For example, if the domain is an app data
container, the identifier is the bundle ID of the app. For temporary directories, the identifier is a unique client-provided string which is used to
get your own space, separate from those of other clients.
--domain-identifier <domain-identifier>
A unique string used to provide additional context to the
-u, --user The name of the user we should target. Only relevant for certain domains.
The "certain domains" are not specified.
user vs username
The list files command takes:
--username <username> The username of the user we should target. Only relevant for certain domains
The copy command takes:
-u, --user <user> The name of the user we should target. Only relevant for certain domains.
Is there a difference between username and user?
How do we figure out the user or username?
From https://developer.apple.com/forums/thread/749649 I learned that about the "mobile" value, but why, and how?
It would help if these arguments could be explained in more detail.
Is SFSymbol Customization officially valid as a method for using SVG in embedded widgets (lock-screen & watchOS)?
I use this in UnitedPizzaHelper but wonder whether this is the prime cause why all widgets of this app gets missing on iOS devices? This issue only happened on at least 2 device in the recent 12 months (they are all on iOS 18, and one of them is running iOS 18.5... Rebooting device won't work.), and we currently have no clue how to troubleshoot this.
Update: The guy running iOS 18.5 told me that the widgets are now discoverable after waiting for minutes. Seems that this is a random issue.
ive been using the mac m1 for almmost a year and it used to run vision pro simulator on xcode 15 quite smoothly but now its quitting unexpectedly showing errors in loading the realtiykit content
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Reality Composer Pro
visionOS
iPad and iOS apps on visionOS
Hi guys, i have an issue with my app, i am able to view in app purchase products from my deployed hybrid app (Ionic 8 with Capacitor 7) IOS platform.
My inapp products are displaying on real device os 18.5 but on simulators there are no products. Is there a bug or something.
Simulators tested 16 Pro max iPad m4, and iPad 5th gen all 18.5
other versions below the products does show and on real device.
Your assistance will be much appreciated.
Topic:
Developer Tools & Services
SubTopic:
Xcode
As far as I know, there was a time that you can capture GPU workload for opengles game app on iOS using Xcode. However, currently I'm using Xcode version 15.2 and iOS18,it seems the "capture GPU workload" button is always disabled when I'm trying to debug my game app which is using opengles api for graphics rendering no matter switchinng "GPU Frame Capture" to "OpenGL ES" or "Metal" or "Automatically" in the scheme. And I'm not able to capture GPU workload for my game on iOS.
The only way to make the "capture GPU workload" button enabled is creating a new project using metal api for graphics rendering. But I don't want to change the graphics API, because it will cause a lot.
Does Xcode still support capturing GPU workload for OpenGLES game app on iOS? If not, is there an alternative way?
Topic:
Developer Tools & Services
SubTopic:
Xcode
For Xcode 15 and Xcode 16, whenever I try to use the Refactor->Rename command I get a spinning busy cursor for a short while then I get an alert that says:
Rename Failed
Refactoring engine failure.
This happens on several projects and I've tried removing the derived data folder, but am at a loss to find additional troubleshooting steps.
Are there other files I might remove or reset to get my "Refactoring Engine" back into shape?
Topic:
Developer Tools & Services
SubTopic:
Xcode
I am trying to perform an unstash operation. I RC on the stash to restore, select "Apply Stashed Changes". It then launches a comparison window to allow me to cherrypick the changes I want to include. However, the button along the bottom, "Apply Changes" is grayed out and remains so no matter what I do. Switching stashes, exiting and restarting xcode. TG i made an emergency project backup right before I did the stash, just for a case like this.
Bug? Feature?
Topic:
Developer Tools & Services
SubTopic:
Xcode
I am sort of trying to do the opposite of what others are doing. I have a target called CopyFramework that creates a CopyFramework.framework within my main xcproj file.
I set up this target because a specific framework (we can call it Tools.xcframework) is distributed as a binary. That framework file lives within the code.
Tools.xcframework is structured like so
Tools.xcframework (Coding/testBuild/DynamicToolFrameworks/Tools.xcframework)
info.plist
ios-arm64/
Tools.xcframework/
Tools (executable file)
Tools.bundle
Headers/
Info.plist
Modules/
Tools.swiftmodule/
arm64-apple-ios.abi.json
arm64-apple-ios.private.swiftinterface
arm64-apple-ios.swiftdoc
arm64-apple-ios.swiftinterface
module.modulemap
module.private.modulemap
PrivateHeaders/
ios-arm64_x86_64-simulator/
When the CopyFramework target is run xcode does a few steps which copy the correct version of this framework to derived data.
Process Tools.xcframework (iOS)
Coding/testBuild/DynamicToolFrameworks/Tools.xcframework
/Library/Developer/Xcode/DerivedData/testBuild-sha/Build/Products/Debug-iphoneos/Tools.framework ios
cd /Users/calebkierum/Coding/testBuild
builtin-process-xcframework --xcframework Coding/testBuild/DynamicToolFrameworks/Tools.xcframework --platform ios --target-path Library/Developer/Xcode/DerivedData/testBuild-sha/Build/Products/Debug-iphoneos
Meaning essentially that the Tools.xcframework for the proper platform is taken from Tools.xcframework/ios-arm64 and copied to Library/Developer/Xcode/DerivedData/testBuild-sha/Build/Products/Debug-iphoneos/Tools.xcframework
I am writing a Swift Package that needs to be able to reference the correct Tools.xcframework. I have set it up like so:
let package = Package(
name: "CoreObjC",
platforms: [.iOS(.v17), .macCatalyst(.v17)],
products: [
.library(name: "CoreObjC", targets: ["CoreObjC"]),
],
dependencies: [
// Does something to here ???
//.package(path: "../testBuild")
],
targets: [
.target(
name: "CoreObjC",
dependencies: [
// Here I would like to be referencing the CopyFramework.framework target within my buildTest.xcproj file
.product(name: "CopyFramework", package: /*??? its not in a swift package its a part of an xcproj file*/)
],
path: "CoreObjC",
publicHeadersPath: "Headers",
linkerSettings: [
.linkedFramework("Tools", .when(platforms: [.iOS])),
.linkedLibrary("c++")
]
),
],
cxxLanguageStandard: CXXLanguageStandard.gnucxx14
)
Now obviously this does not work. I do not know how to communicate to the Package.swift file that the binary dependency is a framework target within my xcproj file. If I do run the target CopyFramework followed by building CoreObjC it works though (so long as you comment out the bits trying to reference CopyFramework). Running the CopyFramework target processes the Tools.xcframework and copies the proper xcframework sub folder to Derived data and the Swift Package build system seems to be able to see it.
Is there a way I can get rid of this manual step? Make it so that when I build the CoreObjC target (swift package) that either CopyFramework is run or some other process is run to get the proper xcframework out of Coding/testBuild/DynamicToolFrameworks/Tools.xcframework and into DerivedData?
Is it even theoretically possible to have a Swift Package reference a target in a normal xcproj file?
I have an iOS app, and I am trying to add a companion WatchOS app. My iOS app depends on 2 libraries:
GoogleMobileAds
FirebaseAnalyticsWithoutAdIdSupport
When I add a new target for WatchOS, the preview build starts to fail. I am not adding any libraries to WatchOS. The Google Ads and Firebase Analytics libs are only under the iOS target.
I am unable to run the preview, I get an error when trying to build the watch scheme. The preview does not work. The build just crashes. I've included the error log below.
But, here are the steps I've tried so far:
Delete folders inside Derived Data
Run a clean build (Cmd + Option + Shift + K)
Delete scheme and create a new one
Reset Package Cache
Restart Xcode
Restart Macbook
But, it just does not work. I do not understand why the watchOS target is erroring for "GoogleUserMessagingPlatform" and "GoogleMobileAdsTarget" when those packages are not linked/used for the watchOS.
SchemeBuildError: Failed to build the scheme “timerWatch Watch App”
While building for watchOS Simulator, no library for this platform was found in '/Users/k/Library/Developer/Xcode/DerivedData/timer-dhkdhvfcqtfgskfdxpmupujswtuh/SourcePackages/artifacts/swift-package-manager-google-user-messaging-platform/UserMessagingPlatform/UserMessagingPlatform.xcframework'. (in target 'UserMessagingPlatformTarget' from project 'GoogleUserMessagingPlatform')
Build target UserMessagingPlatformTarget:
/Users/k/Library/Developer/Xcode/DerivedData/timer-dhkdhvfcqtfgskfdxpmupujswtuh/SourcePackages/artifacts/swift-package-manager-google-user-messaging-platform/UserMessagingPlatform/UserMessagingPlatform.xcframework:1:1: error: While building for watchOS Simulator, no library for this platform was found in '/Users/k/Library/Developer/Xcode/DerivedData/timer-dhkdhvfcqtfgskfdxpmupujswtuh/SourcePackages/artifacts/swift-package-manager-google-user-messaging-platform/UserMessagingPlatform/UserMessagingPlatform.xcframework'. (in target 'UserMessagingPlatformTarget' from project 'GoogleUserMessagingPlatform')
Build target GoogleMobileAdsTarget:
/Users/k/Library/Developer/Xcode/DerivedData/timer-dhkdhvfcqtfgskfdxpmupujswtuh/SourcePackages/artifacts/swift-package-manager-google-mobile-ads/GoogleMobileAds/GoogleMobileAds.xcframework:1:1: error: While building for watchOS Simulator, no library for this platform was found in '/Users/k/Library/Developer/Xcode/DerivedData/timer-dhkdhvfcqtfgskfdxpmupujswtuh/SourcePackages/artifacts/swift-package-manager-google-mobile-ads/GoogleMobileAds/GoogleMobileAds.xcframework'. (in target 'GoogleMobileAdsTarget' from project 'GoogleMobileAds')
Hi! I am getting this error since an xcode update when trying to build my project.
Module 'audioplayers' not found (in target 'Runner' from project 'Runner').
Thank you in advance for any help!
Topic:
Developer Tools & Services
SubTopic:
Xcode
We are trying to create a screentime app using the Family Controls as well as Device activity frameworks. The build succeeds but while pushing to an iphone we are getting an info.plist file for deviceactivity.framework could not be found error. For reference when using the Screentime API a physical device must be used not a simulator. When we remove the device activity framework this error also occurs for the family controls framework. We have added the Family Controls(development) Capability and applied for the distribution capability. We have redownloaded xcode multiple times on the main device, deleted derived data, and redownloaded all of the iphone SDKs and the issue still persists.
Just wondering if it is possible to configure a secondary macbook to act as a run destination in Xcode, similar to how you would configure an iPhone as a run destination.
I have tried connecting my device via USB-C and I can see that my macbook detects the second macbook via USB but it does not show up when trying to add devices in Xcode. I suppose this flow might not be supported?