I am running a very simple UI test on Xcode 14 beta 6 that sets up a StoreKit testing session and then attempts to bring up a purchase dialog. Unfortunately, PassbookUIService is crashing and thereby causing the purchase to be canceled. Here is the crash report:
PassbookUIService-2022-08-30-094331.ips.txt
For context, the UI test is very simple:
func testExample() throws {
_ = self.expectation(description: "Never fulfilled")
let session = try SKTestSession(configurationFileNamed: "CatsAndLlamas.storekit")
session.clearTransactions()
session.resetToDefaultState()
session.disableDialogs = false
let app = XCUIApplication()
app.launch()
let tablesQuery = app.tables
tablesQuery.staticTexts["Buy Product"].tap()
tablesQuery.cells.containing(.staticText, identifier:"Silver Llama").staticTexts["Subscribe"].tap()
waitForExpectations(timeout: 30)
}
On an iOS 15.5 simulator device, the UI test works as expected.
However, on an iOS 16 simulator device, the UI test behaves as if the purchase request were canceled before the dialog is even displayed.
This is when PassbookUIService crashes. I believe this crash is causing StoreKit (or StoreKitTest) to consider the purchase canceled.
(I have screenshots of the behavior but I’ve not been able to successfully include them in this post for some reason.)
Post
Replies
Boosts
Views
Activity
We’ve run into a strange issue here. We are running an iOS 13 simulator device on Monterey (x86_64) and an app on said device causes a crash (this is expected). However, when the crash reporter attempts to write out the crash report, it crashes. Here is an excerpt from the translated crash report:
Process: ReportCrash [88409]
Path: /System/Library/CoreServices/ReportCrash
Identifier: ReportCrash
Version: ???
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 503
Date/Time: 2022-06-01 15:45:32.9876 -0400
OS Version: macOS 12.3.1 (21E258)
Report Version: 12
Bridge OS Version: 6.4 (19P4243)
Anonymous UUID: 9D02B4AF-C468-6AD7-78E4-48395612A5A9
Time Awake Since Boot: 450000 seconds
System Integrity Protection: enabled
Crashed Thread: 3
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000001206c2008
Exception Codes: 0x0000000000000001, 0x00000001206c2008
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [88409]
VM Region Info: 0x1206c2008 is not in any region. Bytes after previous region: 289083401 Bytes before following region: 123140679340024
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
VM_ALLOCATE (reserved) 10f30e000-10f311000 [ 12K] r--/r-- SM=NUL ...(unallocated)
---> GAP OF 0x6ffefdae2000 BYTES
Stack Guard 70000cdf3000-70000cdf4000 [ 4K] ---/rwx SM=NUL
Application Specific Information:
Pid 91244 'SnoopLlama' CORPSE: Extracting
Completed 8, Recent: Pid 90229 'SnoopLlama' CORPSE
As best we can tell, this only happens on iOS 13 simulator devices (we’ve observed this behavior on iOS 13.4, 13.5, and 13.7) and Monterey x86_64. (It does not happen on iOS 14+, nor on Monterey arm64.) We’ve observed it on macOS 12.3.1 and 12.4, all with Xcode 13.3.1.
Has anybody run into this before?