I am trying to test this simulated Error.
The issue is, I can't get this to trigger through the simulatedError function.
Error will always end up as an unknown error
Example code snippet:
@available(iOS 17.0, *)
func testPurchase_InvalidQuantity() async throws {
// Arrange
testSession.clearTransactions()
testSession.resetToDefaultState()
let productID = "consumable_1"
try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase)
guard let product = await fetchProduct(identifier: productID) else {
XCTFail("Failed to fetch test product")
return
}
let option = Product.PurchaseOption.quantity(4)
let result = await manager.purchase(product: product, options: option)
switch result {
case .success:
XCTFail("Expected failure due to invalid quantity")
case .failure(let error):
print("Received error: \(error.localizedDescription)")
switch error {
case .purchaseError(let purchaseError):
XCTAssertEqual(purchaseError.code, StoreKitPurchaseError.invalidQuantity.code)
default:
XCTFail("Unexpected error: \(error)")
}
}
}
In the above code snippet, I have an Unexpected Error.
But if i remove try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase) I will receive a XCTFail in the success of my result.
So when I set the quantity to a -1, only then can I correctly receive an invalidQuantity.
Does anyone know why the try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase) would fail to work as directed? I have tests for all the generic errors for loadProducts API and the simulatedError works great for them
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
I tried to monitor the device's network status with Network framework code below.
let networkMonitor = NWPathMonitor(requiredInterfaceType: .cellular)
networkMonitor.pathUpdateHandler = { [weak self] path in
if path.status == .satisfied {
print("Cellular Satisfied")
} else {
print("Cellular Unsatisfied")
}
}
When I run the app in my iPhone(iOS 15.5) and turn cellular on/off, iPhone suddenly loses connection with XCode.
Lost connection to the debugger on “...'s iPhone”.
Domain: IDEDebugSessionErrorDomain
Code: 12
Recovery Suggestion: Restore the connection to “...'s iPhone” and run “...” again, or if “...” is still running, you can attach to it by selecting Debug > Attach to Process > ....
User Info: {
DVTErrorCreationDateKey = "2022-06-23 02:16:30 +0000";
IDERunOperationFailingWorker = DBGLLDBLauncher;
}
Analytics Event: com.apple.dt.IDERunOperationWorkerFinished : {
"device_model" = "iPhone13,2";
"device_osBuild" = "15.5 (19F77)";
"device_platform" = "com.apple.platform.iphoneos";
"launchSession_schemeCommand" = Run;
"launchSession_state" = 2;
"launchSession_targetArch" = arm64;
"operation_duration_ms" = 5861;
"operation_errorCode" = 12;
"operation_errorDomain" = IDEDebugSessionErrorDomain;
"operation_errorWorker" = DBGLLDBLauncher;
"operation_name" = IDEiPhoneRunOperationWorkerGroup;
"param_consoleMode" = 0;
"param_debugger_attachToExtensions" = 0;
"param_debugger_attachToXPC" = 1;
"param_debugger_type" = 5;
"param_destination_isProxy" = 0;
"param_destination_platform" = "com.apple.platform.iphoneos";
"param_diag_MainThreadChecker_stopOnIssue" = 0;
"param_diag_MallocStackLogging_enableDuringAttach" = 0;
"param_diag_MallocStackLogging_enableForXPC" = 1;
"param_diag_allowLocationSimulation" = 1;
"param_diag_gpu_frameCapture_enable" = 0;
"param_diag_gpu_shaderValidation_enable" = 0;
"param_diag_gpu_validation_enable" = 0;
"param_diag_memoryGraphOnResourceException" = 0;
"param_diag_queueDebugging_enable" = 1;
"param_diag_runtimeProfile_generate" = 0;
"param_diag_sanitizer_asan_enable" = 0;
"param_diag_sanitizer_tsan_enable" = 0;
"param_diag_sanitizer_tsan_stopOnIssue" = 0;
"param_diag_sanitizer_ubsan_stopOnIssue" = 0;
"param_diag_showNonLocalizedStrings" = 0;
"param_diag_viewDebugging_enabled" = 1;
"param_diag_viewDebugging_insertDylibOnLaunch" = 1;
"param_install_style" = 0;
"param_launcher_UID" = 2;
"param_launcher_allowDeviceSensorReplayData" = 0;
"param_launcher_kind" = 0;
"param_launcher_style" = 0;
"param_launcher_substyle" = 0;
"param_runnable_appExtensionHostRunMode" = 0;
"param_runnable_productType" = "com.apple.product-type.application";
"param_runnable_swiftVersion" = "5.6";
"param_runnable_type" = 2;
"param_testing_launchedForTesting" = 0;
"param_testing_suppressSimulatorApp" = 0;
"param_testing_usingCLI" = 0;
"sdk_canonicalName" = "iphoneos15.4";
"sdk_osVersion" = "15.4";
"sdk_variant" = iphoneos;
}
In my opinion, it seems like an error of XCode. Plz let me know if there's any solution.
Also, there's a similar issue here : https://developer.apple.com/forums/thread/681459
Hi,
What's the difference Swift Packages Frameworks ? for me I see them the same as not an expert developer ? Which should I use ?for example for a SwiftUI UI Kit to be distributed online for sale ?
Kind Regards
Topic:
Developer Tools & Services
SubTopic:
Xcode
I followed this guide, and added com.apple.developer.spatial-audio.profile-access as an entitlement to the app (via the + Capability button – Spatial Audio Profile). I have a audio graph that outputs to AVAudioEngine.
However, the Xcode Cloud build ended up with this error:
Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, key 'com.apple.developer.spatial-audio.profile-access' in 'Payload/…' is not supported.
This guide says it's available on iOS. Does it mean not on iOS 17? In which case how can I provide fallback for iOS 17?
When trying to use the watchOS preview the simulator fails to load and throws about 15 errors. Clearly the simulator is trying to load all of the iOS packages to the watchOS simulator. However, these packages clearly aren't included in the watchOS app. Furthermore, both apps build successfully to the main simulators, just not the previews. Having a list of errors that simply should not be there is a pretty big annoyance when something is going wrong. How do I fix this?
Hello, I used to add openssl static libraries (libssl.a, libcrypto.a) that, I created on Mac, and add them after to my C++ project within XCode. With Xcode 14.2 (and before) all works fine. Switching to Xcode 15.2, tons of link errors rise (ld: Undefined symbols).
I tried _ld_classic to force use 'old' linker but no success. Rebuild the static libraries with multiple config param or upgrade to recent openssl library does not help.
Any clues what went wrong when linking static libraries with Xcode 15.2 project?
Thx.
Topic:
Developer Tools & Services
SubTopic:
Xcode
In Xcode Version 16.2 (16C5032a) - and previous versions too, the download container in the Devices & Simulators functionality no longer works.
It will start downloading the container, however it will also:
show NO download progress
fail to download the whole container (the downloaded container is missing whole directories, eg. AppData/Library is missing - where my application stores the CoreData db)
show no errors
This was tested with the XCode version stated above (and previous versions) and with iPhone XR (18.1.1 - MR42CN/A) and with iPad (17.7.2 - MR7F2FD/A).
How can I debug this issue / make the Xcode download the whole container?
Running on Mac mini 15.1.1 (24B91).
Topic:
Developer Tools & Services
SubTopic:
Xcode
Hello Everyone,
Planning to add one Devoloper to my team for Xcode app development.
whats best to configure Xcloud ,Git and push updates to the main branches .
and i prefer not to use third party software or additional tools .
Thanks a lot and much appreciated
Please see detail here.
Topic:
Developer Tools & Services
SubTopic:
Xcode
What I am trying to do is very simple.
Environment description:
macOS Catalina version 10.15.7 iOS Simulator version 12.3 Target device iPhone 11 (iOS 13.2.2)
Open Safari > go to website > mictests.com
Result: "Could not find any media devices. It is very likely that your browser does not allow access to these devices."
The Simulator does have access to the microphone. I can use Siri just fine. Only Safari cannot access the mic. I'm really stuck here, any ideas are welcome.
We are encountering a persistent code signing error with in-app purchase capabilities in our iOS app. Despite having the com.apple.developer.in-app-purchase entitlement properly configured in the app's entitlements file and the In-App Purchase capability enabled in both Xcode and the App ID configuration in the Apple Developer Portal, we continue to receive the error: "The provisioning profile 'iOS Team Provisioning Profile: does not include the com.apple.developer.in-app-purchase entitlement." We have attempted multiple solutions including:
Regenerating provisioning profiles
Cleaning and rebuilding the project
Switching between automatic and manual signing
Removing and re-adding the in-app purchase capability
Verifying all entitlements and capabilities configurations
The error persists despite the entitlement being correctly set in the entitlements file and the capability being enabled in the App ID. This appears to be an issue with how the provisioning profile is being generated or how the entitlement is being recognized by Xcode's code signing system.
I can sucessfully send pushes to an app (which has been installed/run via Xcode) when the pushes are going through the Apple sandbox server.
However I want to test the server is configured correctly to send them through the Apple production server.
In the Xcode scheme I tried to change the build configuration to release (and ticked debug executable off) ,however the pushes still only work when sent through the sandbox.
Is there a way of installing/running the app using Xcode such that its compatible with the push production environment?
Does the APS Environment entitlement come into play here? this only ever says development.
(The app is on behalf of a 3rd party company, they've added me to their apple developer account but with limited powers, I can't upload to Testflight nor make an ad-hoc release with with to test with)
I'm trying to use Xcode UI tests for the first time. I added a UI Tests target and set up the signing, then opened the default AppnameUITests.swift file. I added a new function named testAboutPage(), clicked inside the block and clicked the Record UI Test button (red circle) at the bottom of the editor window. If the app is already running when I do this, Xcode crashes immediately. If the app is not running, Xcode builds and runs the app, then crashes.
I've seen reports of this going back years, but none of the posts have a solution. I do have a crash log to share. Does anyone know how to get past this?
This forum won't let me upload the complete crash log because it exceeds the size limit, but here's the first part through the stack trace of the crashed thread:
Process: Xcode [46652]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 16.2 (23507)
Build Info: IDEApplication-23507000000000000~2 (16C5032a)
App Item ID: 497799835
App External ID: 870964517
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 503
Date/Time: 2025-02-04 12:58:05.5200 -0800
OS Version: macOS 15.3 (24D60)
Report Version: 12
Anonymous UUID: 144B0B99-8D44-736B-0D9A-1F6FA6DF85F7
Time Awake Since Boot: 48000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process: Xcode [46652]
Application Specific Information:
abort() called
Application Specific Signatures:
((result)) != nil
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x18a3b3720 __pthread_kill + 8
1 libsystem_pthread.dylib 0x18a3ebf70 pthread_kill + 288
2 libsystem_c.dylib 0x18a2f8908 abort + 128
3 IDEKit 0x109e81554 +[IDEAssertionHandler _handleAssertionWithLogString:assertionSignature:assertionReason:extraBacktrace:] + 964
4 IDEKit 0x109e819e4 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] + 876
5 DVTFoundation 0x10600d358 _DVTAssertionHandler + 424
6 DVTFoundation 0x10600d4d8 _DVTAssertionFailureHandler + 196
7 IDEKit 0x10a1f99e4 -[IDEUIRecordingManager _workspaceTabController] + 176
8 IDEKit 0x10a1fa528 __94-[IDEUIRecordingManager _startRecordingWithLaunchSession:alwaysAskForAPIAccess:reservedNames:]_block_invoke_3 + 252
9 DVTFoundation 0x10611fc9c __DVT_CALLING_CLIENT_BLOCK__ + 16
10 DVTFoundation 0x1061206c4 __DVTDispatchAsync_block_invoke + 152
11 libdispatch.dylib 0x18a237854 _dispatch_call_block_and_release + 32
12 libdispatch.dylib 0x18a2395b4 _dispatch_client_callout + 20
13 libdispatch.dylib 0x18a248040 _dispatch_main_queue_drain + 984
14 libdispatch.dylib 0x18a247c58 _dispatch_main_queue_callback_4CF + 44
15 CoreFoundation 0x18a5139d0 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
16 CoreFoundation 0x18a4d35bc __CFRunLoopRun + 1996
17 CoreFoundation 0x18a4d2734 CFRunLoopRunSpecific + 588
18 HIToolbox 0x195a41530 RunCurrentEventLoopInMode + 292
19 HIToolbox 0x195a47348 ReceiveNextEventCommon + 676
20 HIToolbox 0x195a47508 _BlockUntilNextEventMatchingListInModeWithFilter + 76
21 AppKit 0x18e04a848 _DPSNextEvent + 660
22 AppKit 0x18e9b0c24 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
23 AppKit 0x18e03d874 -[NSApplication run] + 480
24 IDEKit 0x109e50f14 -[IDEApplication run] + 192
25 AppKit 0x18e014068 NSApplicationMain + 888
26 dyld 0x18a06c274 start + 2840
Is there any way to modify the behaviour of this command? I really dislike that it adds a break after the opening parenthesis and would also prefer it to use the traditional multi-line style where the lines are aligned with their semicolons.
Alternatively, is there a way to run the "Format File with 'swift-format'" command without implicitly triggering "Format to Multiple Lines", as it apparently does? Having to reformat my method's signatures afterwards really makes this feature unattractive to me at the moment.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Hi,
Regarding the bundle identifiers of App that I remove from App Store Connect will they be locked forever andI can't reuse them ?
Kind Regards
Topic:
Developer Tools & Services
SubTopic:
Xcode
Currently I only see the right eye view when running my test app on the Vision Simulator. But to be able to evaluate if what I'm doing is actually possible on the device before buying one for developing my app I like to be able to switch between viewing the right eye and left eye in the simulator.
Hello all!
My application written with C++/CMake and when building have some troubles with adding test environment for StoreKit every time - it need to be done manually.
Is there any way to add StoreKit environment settings with CMake and when executed command like this $ cmake -g Xcode ... StoreKit test environment were automatically added?
I have a M2 macbook pro Which has storage problem. I work with react native and xcode. So I was wondering If I can keep react native projects in external hard drive that could run in xcode and also work with git. ??
Topic:
Developer Tools & Services
SubTopic:
Xcode
I'm trying to build an app for Mac from an external source and the build process fails due to the requirement of a provisioning profile. I'm new to developing in Xcode and as far as I've know rn, you need to have a developer account to create a profile. I just want to test the app locally. Not sure if a profile is required for that.
What I want?
I expect to use xcrun devicectl device process launch --device <uuid> <bundle-identifier> --payload-url <URL> to launch my app and pass the specified URL as I usually do in iPhone.
What I do?
Let's say the app A which I'm developing.
I try to use UIApplication.open(:options:completionHandler:) in another app to open the app A with registered schema. And whether app A is cold launch or background resumption, app A can go foreground with receiving URL.
If I use xcrun devicectl as above described, app A can still be opened. However, app A can't receive URL which I pass through --payload-url option. That's different from in iOS.
BTW: I as well try YouTube with UIApplication.open and xcrun devicectl, the former way work, the latter way not work.
Topic:
Developer Tools & Services
SubTopic:
Xcode