Hi,
when I display an HTML page with a on Safari iOS, I get a nice UI. Great! At the first look I see a video frame with an arrow-in-a-circle button in the middle. Very nice. I click on the arrow and I get a fullscreen view while the video begins to play. I watch the video then I pause it then I click on the top-left x button. So I go back to my html page and the video is perfectly there as it was before.
But, there is an annoying new detail. The video frame is really dark, it still presents all the controls and a "different" arrow button to play it again. In other words that nice video-frame, that nice picture, is not longer visible on the page. That nice page with nice pictures has now an almost-black rectangle. Too bad.
Sure I can click on the video (outside the controls) then the controls and the black overlaying frame disappear. I can see that nice picture again. Finally. Well, but the arrow-in-a-circle button to play the video disappeared. Now the user cannot longer understand that's a video to play. It looks just like any other pictures to admire statically.
Is any way to get the previous first look of the video? The one clear, with the current frame and the arrow-in-a-circle look?
Posts under iOS tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Xcode 16.2 archive fails to compile XIB
Xcode Archive command fails most of the time while compiling an XIB which was created in older Xcode.
XIB was updated in Xcode 16.2 version also which did not fix this issue.
Archive from Xcode app works but Xcode build command fails and no reason shown by the command.
** ARCHIVE FAILED **
The following build commands failed:
CompileXIB /Users…/Resources/Nibs/<XIB_NAME>.xib
I am a developer on an enterprise application. Our team just updated our pipeline to build our app on the iOS 18 SDK instead of the 17.4 SDK and this has caused a lot of our ui elements to change and several crashes within the app resulting in just the simple error message "Swift runtime failure: unhandled C++ / Objective-C exception".
Why is just updating the SDK causing all these issues? Is there anyway to keep the previous version or will we have to go component by component to fix the constraints and crashes? These issues seem to be happening to our users on iOS 18 and beyond.
I am developing a video streaming app for iPhone.
Minimum version is IOS 13.
I want to connect an external USB camera to the iPhone app and stream from it.
I have looked through a lot of information and have not found how to do this.
Is it possible to do this? Is there any documentation on this?
I have my main app that connect to multiple internal modules. These modules are built with Xcode 15.4 on Jenkins.
If I use these modules as xcframework in main app and try to build main app with Xcode 16.2 it will give error.
Framework built with older version of Swift.
I thought we have ABI stability with new Xcode versions.
Any idea what can be issue?
Hi.
I am writing a little MDM application.
Despite the basic task (add a password for 'remove profile' button in settings), it seems I am stuck with a problem:
When I try to enroll my device with enrollment.mobileconfig file, Apple Configurator app, I receive an error
The profile “Enrollment Profile” could not be installed because it is invalid.
Make sure the profile is valid and try installing it again.
The original architecture of my .mobileconfig contains of two payloads (com.apple.security.scep , com.apple.mdm), and it works correctly. However, when I try to add a third payload of com.apple.profileRemovalPassword , I receive the error stated above.
From logs collected on iPhone, here's what was found :
Failed to parse profile data. Error: NSError:
Desc : The profile “Enrollment Profile” is invalid.
Sugg : A profile containing an MDM payload must be removable.
US Desc: The profile “Enrollment Profile” is invalid.
US Sugg: A profile containing an MDM payload must be removable.
Domain : MCProfileErrorDomain
Code : 1000
Type : MCFatalError
Params : (
"Enrollment Profile"
)
...Underlying error:
NSError:
Desc : A profile containing an MDM payload must be removable.
US Desc: A profile containing an MDM payload must be removable.
Domain : MCProfileErrorDomain
Code : 1000
Type : MCFatalError
Extra info:
{
isPrimary = 1;
}
My main dictionary contains
HasRemovalPasscode
Also, I have tried playing around with
PayloadRemovalDisallowed
setting it to true and false, however, I keep getting the same error message.
There is also a second error produced:
Profile MCConfigurationProfile, version 1:
Display Name: “Enrollment Profile”
Description : “***”
Identifier : ***
UUID : ***
Organization: ***
Is Stub : No
Locked : Yes
Removal passcode present
Encrypted : No
Trusted : 0
Signed : No
Device Type : 0
Payloads:
Payload MCSCEPPayload, version 1
Description : “***”
Identifier : ***
UUID : ***
Type : com.apple.security.scep
Display name: ***
Organization: ***
Payload MCMDMPayload, version 1
Description : “***”
Identifier : ***
UUID : ***
Type : com.apple.mdm
Organization: ***
Payload MCRemovalPasswordPayload, version 1
Identifier : com.examp Can't parse profile: <decode: missing data>
The code for com.apple.profileRemovalPassword is taken from apple documentation (https://developer.apple.com/documentation/devicemanagement/profileremovalpassword)
I have also tried the automatic way - creating it from Apple Configurator, so it is correct in terms of syntax 100%.
Several important notes:
Creating a fresh new profile with just password removal protection single payload allows to perform a download of the profile
If I comment out the whole com.apple.mdm payload block, I will be able to download this profile on iPhone also
The com.apple.mdm block is also valid by itself, and works correctly
I have tried implementing other types of "dummy" payloads - for example com.apple.dock
<dict>
<key>PayloadType</key>
<string>com.apple.dock</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>com.example.test.dock</string>
<key>PayloadUUID</key>
<string>22222222-3333-4444-5555-666666666666</string>
<key>PersistentApps</key>
<array/>
</dict>
And everything worked out fine.
So my hypothetical conclusion out of these four notes might be in some type of interconnection between mdm and profileRemovalPassword, which isn't really listed anywhere? Or am I missing something ? Thank you in advance.
In iOS 18, i use CNContactPickerViewController to access to Contacts (i know it is one-time access).
After first pick up one contact, the Setting > Apps > my app > Contacts shows Private Access without any option to close it.
Is there any way to close it and undisplay it ?
I tried to uninstall and reinstall my app, but it didn't work.
We have identified an issue when using NumberFormatter with the locale set to it_IT. Specifically, when formatting numbers with exactly four integer digits, the grouping separator is not applied: for example, the number is displayed as 4000,00 instead of the expected 4.000,00. This behavior occurs only with four-digit integers; for instance, 40.000,00 is formatted correctly. The issue appears to affect only iOS 18.4 and later versions.
Description
When using UIDocumentPickerViewController with allowsMultipleSelection = false, I expect that selecting a file will dismiss only the document picker.
However, if a user quickly taps the same file multiple times, the picker dismisses both itself and the presenting view controller (i.e., it pops two levels from the view controller stack), which leads to unintended behavior and breaks presentation flow.
Expected Behavior
Only UIDocumentPickerViewController should be dismissed when a file is selected—even if the user taps quickly or multiple times on the same file.
Actual Behavior
When tapping the same file multiple times quickly, the picker dismisses not only itself but also the parent view controller it was presented from.
Steps to Reproduce
Create a simple view controller and present another one modally over it.
From that presented view controller, present a UIDocumentPickerViewController with allowsMultipleSelection = false.
Tap quickly on the same file in the picker 2 times.
Result: Both the document picker and the presenting view controller are dismissed.
Reproducible Code Snippet
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
addLabel("Parent View Controller")
DispatchQueue.main.async { [unowned self] in
let child = UIViewController()
child.view.backgroundColor = .yellow
present(child, animated: true)
child.addLabel("Child View Controller")
let vc = UIDocumentPickerViewController(
forOpeningContentTypes: [.pdf, .jpeg, .png],
asCopy: true
)
vc.allowsMultipleSelection = false
child.present(vc, animated: true)
}
}
}
extension UIViewController {
func addLabel(_ text: String) {
let label = UILabel(frame: CGRect(x: 0, y: 50, width: view.bounds.width, height: 30))
label.text = text
view.addSubview(label)
}
}
Environment
Device: iPhone 15 Pro and others
iOS version: 18.2 (reproduces on multiple iOS versions)
Occurs with: .pdf, .jpeg, .png file types
Mode: Both simulator and real device
Notes
Happens consistently with fast multiple taps on the same file.
This breaks expected view controller stack behavior.
All of a sudden, after iOS 18.4 was released, I am having tons of navigation problems in my app in production. Buttons navigating to empty pages, views seeming to 'freeze', top navigation bar mismatched with the content of the page. It seems that iOS 18.4 broke a critical piece of UIKit + SwiftUI bridging functionality that my project relies on.
** Originally posted in 'Core OS' topic but realized 'UI Frameworks > General' made more sense. My bad. **
My application is written with both UIKit and SwiftUI components. Here is a breakdown of my setup:
UIApplicationDelegate >
UIWindow >
rootViewController of window is a UITabBarController >
each tab is a UINavigationController
rootViewController of nav controller is a UIHostingController >
rootView of the hosting controller is a SwiftUI View
In my SwiftUI views, I have been using NavigationLink for horizontal 'push' style navigation in my SwiftUI views. I do not use NavigationView, I only rely on the bridging capabilities of UINavigationController to action on my NavigationLinks. This has never been an issue, until iOS 18.4 was released. Now, when running iOS 18.4, I am having all sorts of unexpected behavior in the UI. I will break down 2 of these use cases here:
Use case A:
In one of my SwiftUI views, I have a ForEach for which each element's view is a NavigationLink. This is using the NavigationLink(_ destination:,label:) initializer. Navigating forward from here works/looks normal.
However, once I try to navigate backward from that destination (tap the 'Back' button in top left), the view goes blank and the navigation bar at the top of the page (which is maintained by the UINavigationController instance) does not change. If I call popToRootViewController on that nav controller, the navigation bar at the top of the page returns to its normal state, but the view is still blank.
It is not until after I have called popToRootViewController, and then navigate to a different tab of the UITabBarController and return to the initial tab, does the SwiftuI content view (the one with the ForEach) finally redraw and the view hierarchy is restored.
Here is a warning that is logged in the console when I tap the 'Back ' button:
Top view controller's view unexpectedly not in window for navigation transition. Skipping layout. nav = <UINavigationController: 0x1110bbe00>, topVC = <TtGC7SwiftUI19UIHostingControllerV5MyApp10MyPage: 0x106814e00>
EDIT: If I replace the NavigationLink with a call to UINavigationController.pushViewController, I am still seeing the exact same behavior. Pressing back button makes the view empty > need to pop to root view controller and switch tabs in order to restore the view.
Use case B
Another instance of this issue happens whenever I try to use a NavigationLink inside of a view that itself was the destination of a NavigationLink in its parent view (i.e.: Root view > detail view > sub-detail view). For example, take the detail view destination in use case A. I have tapped a NavigationLink from the ForEach and landed on the detail view. Again, so far things work/look normal. Now, if I tap on another NavigationLink from that detail view, the view does not transition to the new page. The top navigation bar does transition, and shows the title and actions associated with this second destination. However, the view of this second destination is not displayed.
It is worth noting that the same warning I mentioned above is also logged when I tap the NavigationLink to navigate to this second destination.
Top view controller's view unexpectedly not in window for navigation transition. Skipping layout. nav = <UINavigationController: 0x109859400>, topVC = <TtGC7SwiftUI19UIHostingControllerVVS_19BridgedPresentation8RootView: 0x300ab8000>
Strangely, if I switch to a different tab of the UITabBarController and back to the initial tab, this second destination's view is successfully rendered. It seems that switching tabs in this UITabBarController is calling something in either SwiftUI or UIKit that is redrawing my views.
Conclusion
This is a serious issue with UIKit + SwiftUI bridging support. I have never had problems like this until devices started running iOS 18.4, and there is nothing in the iOS 18.4 changelog that suggests this was an intentional change. All of a sudden, after updating to the latest iOS version, my app is totally broken.
I want to be clear that I'm not using deprecated NavigationLink methods in these instances. My app's minimum deployment target is iOS 16.
I know that there are more modern navigation APIs like navigation stack, etc. I am looking for answers about my use case: whether it is officially unsupported as of iOS 18.4, whether this setup should be supported and this is indeed some sort of bug in iOS, or anything in-between. I'm happy to provide formatted code if needed for discussion purposes. This is about my entire app's view hierarchy so there are a lot of disparate lines of code that make up this problem.
All of a sudden, after iOS 18.4 was released, I am having tons of navigation problems in my app in production. Buttons navigating to empty pages, views seeming to 'freeze', top navigation bar mismatched with the content of the page. It seems that iOS 18.4 broke a critical piece of UIKit + SwiftUI bridging functionality that my project relies on.
My application is written with both UIKit and SwiftUI components. Here is a breakdown of my setup:
UIApplicationDelegate >
UIWindow >
rootViewController of window is a UITabBarController >
each tab is a UINavigationController
rootViewController of nav controller is a UIHostingController >
rootView of the hosting controller is a SwiftUI View
In my SwiftUI views, I have been using NavigationLink for horizontal 'push' style navigation in my SwiftUI views. I do not use NavigationView, I only rely on the bridging capabilities of UINavigationController to action on my NavigationLinks. This has never been an issue, until iOS 18.4 was released. Now, when running iOS 18.4, I am having all sorts of unexpected behavior in the UI. I will break down 2 of these use cases here:
Use case A:
In one of my SwiftUI views, I have a ForEach for which each element's view is a NavigationLink. This is using the NavigationLink(_ destination:,label:) initializer. Navigating forward from here works/looks normal.
However, once I try to navigate backward from that destination (tap the 'Back' button in top left), the view goes blank and the navigation bar at the top of the page (which is maintained by the UINavigationController instance) does not change. If I call popToRootViewController on that nav controller, the navigation bar at the top of the page returns to its normal state, but the view is still blank.
It is not until after I have called popToRootViewController, and then navigate to a different tab of the UITabBarController and return to the initial tab, does the SwiftuI content view (the one with the ForEach) finally redraw and the view hierarchy is restored.
Here is a warning that is logged in the console when I tap the 'Back ' button:
Top view controller's view unexpectedly not in window for navigation transition. Skipping layout. nav = <UINavigationController: 0x1110bbe00>, topVC = <TtGC7SwiftUI19UIHostingControllerV5MyApp10MyPage: 0x106814e00>
EDIT: If I replace the NavigationLink with a call to UINavigationController.pushViewController, I am still seeing the exact same behavior. Pressing back button makes the view empty > need to pop to root view controller and switch tabs in order to restore the view.
Use case B
Another instance of this issue happens whenever I try to use a NavigationLink inside of a view that itself was the destination of a NavigationLink in its parent view (i.e.: Root view > detail view > sub-detail view). For example, take the detail view destination in use case A. I have tapped a NavigationLink from the ForEach and landed on the detail view. Again, so far things work/look normal. Now, if I tap on another NavigationLink from that detail view, the view does not transition to the new page. The top navigation bar does transition, and shows the title and actions associated with this second destination. However, the view of this second destination is not displayed.
It is worth noting that the same warning I mentioned above is also logged when I tap the NavigationLink to navigate to this second destination.
Top view controller's view unexpectedly not in window for navigation transition. Skipping layout. nav = <UINavigationController: 0x109859400>, topVC = <TtGC7SwiftUI19UIHostingControllerVVS_19BridgedPresentation8RootView: 0x300ab8000>
Strangely, if I switch to a different tab of the UITabBarController and back to the initial tab, this second destination's view is successfully rendered. It seems that switching tabs in this UITabBarController is calling something in either SwiftUI or UIKit that is redrawing my views.
Conclusion
This is a serious issue with UIKit + SwiftUI bridging support. I have never had problems like this until devices started running iOS 18.4, and there is nothing in the iOS 18.4 changelog that suggests this was an intentional change. All of a sudden, after updating to the latest iOS version, my app is totally broken.
I want to be clear that I'm not using deprecated NavigationLink methods in these instances. My app's minimum deployment target is iOS 16.
I know that there are more modern navigation APIs like navigation stack, etc. I am looking for answers about my use case: whether it is officially unsupported as of iOS 18.4, whether this setup should be supported and this is indeed some sort of bug in iOS, or anything in-between. I'm happy to provide formatted code if needed for discussion purposes. This is about my entire app's view hierarchy so there are a lot of disparate lines of code that make up this problem.
Consider the following example of a List view containing sections of rows.
import SwiftUI
struct ListSectionView: View {
@State private var sectionHeaders = ["section1", "section2", "section3"]
var body: some View {
List {
ForEach(sectionHeaders, id: \.self) { sectionHeader in
Section(header: Text(sectionHeader)) {
Text("1")
Text("2")
Text("3")
}
}
.onMove { indices, newOffset in
// ...
}
}
}
}
I would like to reorder the sections within the list by dragging the respective section header to its new position in the list - similar to moving individual rows via onMove-dragging but with the sections instead of the rows.
The above approach does not work. It "activates" moving the rows and then the .onMove code acts on those. The sections themselves are not moved.
How can I move/reorder the sections within the list?
Thanks.
On an iOS 18 device, after installing the application and initially denying local network permission when prompted, manually enabling this permission in the system settings does not resolve the issue. After uninstalling and reinstalling the app, although local network access is granted, the app cannot discover smart hardware devices over the local area network (LAN) or proceed with configuration. The smart hardware sends configuration data packets over the LAN, but the app fails to receive these packets. This issue persists even after another uninstall and reinstall of the app. However, rebooting the device restores normal functionality.
Steps to Reproduce:
Install the application on an iOS 18 device.
Upon first launch, deny the request for local network permissions.
Manually enable local network permissions via "Settings" > [App Name].
Uninstall and then reinstall the application.
Attempt to discover and configure smart hardware devices using the app. Notice that the app fails to receive configuration data packets sent by the smart hardware over the LAN.
Expected Result:
The application should be able to normally receive configuration data packets from smart hardware devices over the LAN and successfully complete the configuration process after obtaining local network permissions.
Actual Result:
Even after being granted local network permissions, the application cannot discover devices or receive configuration data packets over the LAN unless the iPhone device is rebooted. (reinstall app and obtaining local network permissions is not work too.)
We're observing new crashes specifically on iOS 18.4 devices with this pattern:
Exception Type: SIGTRAP
Exception Codes: fault addr: 0x000000019bc0f088
Crashed Thread: 0
Thread 0
0 libsystem_malloc.dylib _xzm_xzone_malloc_from_tiny_chunk.cold.1 + 36
1 libsystem_malloc.dylib __xzm_xzone_malloc_from_tiny_chunk + 612
2 libsystem_malloc.dylib __xzm_xzone_find_and_malloc_from_tiny_chunk + 112
3 libsystem_malloc.dylib __xzm_xzone_malloc_tiny_outlined + 312
4 CoreGraphics CG::Path::Path(CG::Path const&) + 132
5 CoreGraphics _CGPathCreateMutableCopyByTransformingPath + 112
6 CoreGraphics _CGFontCreateGlyphPath + 144
7 CoreGraphics _CGGlyphBuilderLockBitmaps + 1112
8 CoreGraphics _render_glyphs + 292
9 CoreGraphics _draw_glyph_bitmaps + 1116
10 CoreGraphics _ripc_DrawGlyphs + 1464
11 CoreGraphics CG::DisplayList::executeEntries(std::__1::__wrap_iter<std::__1::shared_ptr<CG::DisplayListEntry const>*>, std::__1::__wrap_iter<std::__1::shared_ptr<CG::DisplayListEntry const>*>, CGContextDelegate*, CGRenderingState*, CGGStack*, CGRect const*, __CFDictionary const*, bool) + 1328
12 CoreGraphics _CGDisplayListDrawInContextDelegate + 340
13 QuartzCore _CABackingStoreUpdate_ + 612
14 QuartzCore ____ZN2CA5Layer8display_Ev_block_invoke + 120
15 QuartzCore -[CALayer _display] + 1512
16 QuartzCore CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 420
17 QuartzCore CA::Context::commit_transaction(CA::Transaction*, double, double*) + 476
18 QuartzCore CA::Transaction::commit() + 644
19 UIKitCore ___34-[UIApplication _firstCommitBlock]_block_invoke_2 + 36
20 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
21 CoreFoundation ___CFRunLoopDoBlocks + 352
22 CoreFoundation ___CFRunLoopRun + 868
23 CoreFoundation _CFRunLoopRunSpecific + 572
24 GraphicsServices _GSEventRunModal + 168
25 UIKitCore -[UIApplication _run] + 816
26 UIKitCore _UIApplicationMain + 336
27 app _main + 132
28 dyld __dyld_process_info_create + 33284
Key Observations:
Crash occurs during font glyph path creation (CGFontCreateGlyphPath)
Involves memory allocation in malloc's xzone implementation
100% reproducible on iOS 18.4, not seen in prior OS versions
Occurs during standard CALayer rendering operations
Not tied to any specific font family or glyph content
Questions for Apple:
Is this crash signature recognized as a known issue in iOS 18.4's CoreGraphics?
Could changes to xzone memory management in iOS 18.4 interact poorly with font rendering?
Are there specific conditions that might trigger SIGTRAP in CGPathCreateMutableCopyByTransformingPath?
Any recommended mitigations for text rendering while awaiting system updates?
After updating to iOS 18.4, our web application (with service workers) crashes on devices that accessed it prior to the update. This issue also affects hybrid mobile apps using the same web application; reinstalling the app resolves it by refetching and reinstalling service workers. Debugging is challenging because clearing the cache or reinstalling the app fixes the problem, and no useful error logs are available. Has anyone encountered similar crashes related to service workers after an iOS update and have any insights into the cause?
Title: Frequent SIGSEGV crashes in QuartzCore's copy_image (iOS 18.4)
We're experiencing numerous crashes with the following signature:
Exception Codes: fault addr: 0x00000000000000e0
Crashed Thread: 0
Thread 0
0 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1972
1 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1260
2 QuartzCore CA::Render::prepare_image(CGImage*, CGColorSpace*, unsigned int, double) + 24
3 QuartzCore CA::Layer::prepare_contents(CALayer*, CA::Transaction*) + 220
4 QuartzCore CA::Layer::prepare_commit(CA::Transaction*) + 284
5 QuartzCore CA::Context::commit_transaction(CA::Transaction*, double, double*) + 488
6 QuartzCore CA::Transaction::commit() + 644
7 UIKitCore ___34-[UIApplication _firstCommitBlock]_block_invoke_2 + 36
8 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
9 CoreFoundation ___CFRunLoopDoBlocks + 352
10 CoreFoundation ___CFRunLoopRun + 868
11 CoreFoundation _CFRunLoopRunSpecific + 572
12 GraphicsServices _GSEventRunModal + 168
13 UIKitCore -[UIApplication _run] + 816
14 UIKitCore _UIApplicationMain + 336
15 kugou _main + 132
16 dyld __dyld_process_info_create + 33284
Observations:
1.Crashes consistently occur in Core Animation's image processing pipeline
2.100% of occurrences are on iOS 18.4 devices
3.Crash signature suggests memory access violation during image/copy operations
4.Not tied to any specific device model
Questions for Apple:
1.Is this crash pattern recognized as a known issue in iOS 18.4?
2.Are there specific conditions that could trigger SEGV_ACCERR in CA::Render::copy_image?
3.Could this be related to color space handling or image format requirements changes?
4.Any recommended workarounds while waiting for a system update?
I'm trying to load a Safari Extension onto my physical iPhone 15 running iOS 18.4 but am seeing the following message: "iOS 18.4 is not installed."
When I click the Get button I see that the download has failed with the following error message. I tried updating my laptop to Sequoia and I also deleted and re-installed Xcode but that didn't fix it. Any thoughts?
Download failed.
Domain: DVTDownloadableErrorDomain
Code: 41
User Info: {
DVTErrorCreationDateKey = "2025-04-08 06:00:22 +0000";
}
--
Download failed.
Domain: DVTDownloadableErrorDomain
Code: 41
--
Failed fetching catalog for assetType (com.apple.MobileAsset.iOSSimulatorRuntime), serverParameters ({
RequestedBuild = 22E238;
})
Domain: DVTDownloadsUtilitiesErrorDomain
Code: -1
--
Download failed due to a bad URL. (Catalog download for com.apple.MobileAsset.iOSSimulatorRuntime)
Domain: com.apple.MobileAssetError.Download
Code: 49
User Info: {
checkConfiguration = 1;
}
--
System Information
macOS Version 15.4 (Build 24E248)
Xcode 16.3 (23785) (Build 16E140)
Timestamp: 2025-04-07T23:00:22-07:00
Hello,
I'm experiencing an issue where WKWebView consistently fails to load a specific URL on the iOS 18.4 simulator (Xcode 16.3). The error is as follows:
Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."
UserInfo={
_kCFStreamErrorCodeKey=-4,
_kCFStreamErrorDomainKey=4,
NSUnderlyingError=Error Domain=kCFErrorDomainCFNetwork Code=-1005,
NSErrorFailingURLKey=[REDACTED]
}
Key Observations:
This URL fails consistently only on the iOS 18.4 simulator.
The same URL loads without issue in iOS 18.3 and 18.2 simulators.
The backend is serving a valid HTTPS certificate chain, and the server appears to be presenting it properly.
The same application appears to work on a real iPhone running 18.4.
Certificate Chain for the Failing URL
Leaf: WR3 (Valid: Mar 17, 2025 – Jun 15, 2025)
Intermediate 1: GTS Root R1 (Valid: Dec 13, 2023 – Feb 20, 2029)
Intermediate 2: GlobalSign Root CA (Valid: Jun 19, 2020 – Jan 28, 2028)
Other URLs Work Fine in iOS 18.4 Simulator
WKWebView successfully loads the following URLs with similar or more complex certificate chains:
https://google.com → WR2, GTS Root R1, GlobalSign Root CA
https://amazon.com → DigiCert Global CA G2, DigiCert Global Root G2, VeriSign G5
https://stackoverflow.com → E5, ISRG Root X1
https://shopify.com → GlobalSign Root CA, GTS Root R4, WE1
This suggests the issue may not be with general network or certificate trust but instead something specific about how iOS 18.4 handles this domain or certificate configuration in the simulator.
Any insights on how to solve this would be greatly appreciated.
I'm using an AVCaptureSession to send video and audio samples to an AVAssetWriter. When I play back the resultant video, sometimes there is a significant lag between the audio compared with the video, so they're just not in sync. But sometimes they are, with the same code.
If I look at the very first presentation time stamps of the buffers being sent to the delegate, via
func captureOutput(_: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)
I see something like this:
Adding audio samples for pts time 227711.0855328798,
Adding video samples for pts time 227710.778785374
That is, the clock for audio vs video is behind: the first audio sample I receive is at 11.08 something, while the video video sample is earlier in time, at 10.778 something. The times are the presentation time stamps of the buffer, and the outputPresentationTimeStamp is the exact same number.
It feels like "video" vs the "audio" clock are just mismatched.
This doesn't always happen: sometimes they're synced. Sometimes they're not.
Any ideas? The device I'm recording is a webcam, on iPadOS, connected via the usb-c port.
Hello! 👋
I am noticing new failures in the iOS 18.5 Developer Beta build (22EF5042g) when calling the system call connect() (from C++ source, in network extension).
When using cell/mobile data (Mint & T-Mobile) this returns with EINTR (interrupted system call) right away. When I switch over to wifi, everything works fine.
Note: I have not tested on other mobile carriers; which could make a difference since T-Mobile/Mint are IPv6 networks.
FWIW, this is working in the previous developer beta (18.4).
Anyone have any ideas?