iOS is the operating system for iPhone.

All subtopics
Posts under iOS topic

Post

Replies

Boosts

Views

Created

Can NEFilterControlProvider Be Used Without MDM in ADEP Distribution?
Hi~ I implemented network filtering on iOS using NEFilterControlProvider and NEFilterDataProvider. However, I found that their usage is restricted when distributing through the App Store. Does ADEP-based distribution allow the use of NEFilterControlProvider and NEFilterDataProvider? In TN3134, it states that NEPacketTunnelProvider requires MDM. Should I assume that NEFilterControlProvider and NEFilterDataProvider also require MDM in the same way? Thanks
1
0
104
Apr ’25
How to make a UIButton resize its custom font text using `configurationUpdateHandler`?
I've read in this post that in order to make the configuration of UIButton adjust my custom font's size automatically I need to add implementation to recalculate the font's size inside configurationUpdateHandler. But how would this look like? I also read something about matching the font's text style. But at this point I'm just guessing. Here's the code: let loginButton = UIButton(configuration: config, primaryAction: nil) loginButton.configurationUpdateHandler = { button in guard var config = button.configuration else { return } let traits = button.traitCollection let baseTitleFont = UIFont.customFont(ofSize: 18, weight: .semibold) let baseSubtitleFont = UIFont.customFont(ofSize: 18, weight: .regular) let scaledTitleFont = UIFontMetrics(forTextStyle: .body).scaledFont(for: baseTitleFont, compatibleWith: traits) let scaledSubtitleFont = UIFontMetrics(forTextStyle: .body).scaledFont(for: baseSubtitleFont, compatibleWith: traits) config.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { incoming in var outgoing = incoming outgoing.font = scaledTitleFont return outgoing } config.subtitleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { incoming in var outgoing = incoming outgoing.font = baseSubtitleFont return outgoing } button.configuration = config } Thanks in advance!
3
0
179
Apr ’25
AVPlayer Visual Accessibility Issues
AVPlayer has 3 visual accessibility issues with videos out of the box: The contrast fails for the current time in the video The contrast fails for the remaining time in the video The hit area is too small for the time slider. The WCAG AA requirement is a minimum hit size of 24 x 24. The height of the hit area of the offending region is 8. Is there a known fix for any of these? This can be reproduced with this code in an app playground: import SwiftUI import AVKit import UIKit struct ContentView: View { private let video = URL(string: "https://server15700.contentdm.oclc.org/dmwebservices/index.php?q=dmGetStreamingFile/p15700coll2/15.mp4/byte/json")! @State private var player: AVPlayer? var body: some View { VStack { VideoPlayerView(player: player) .frame(maxWidth: .infinity, maxHeight: 200) } .task { player = try? await loadPlayer(video: video) } } } private struct VideoPlayerView: UIViewControllerRepresentable { let player: AVPlayer? func makeUIViewController(context: Context) -> AVPlayerViewController { let controller = AVPlayerViewController() controller.player = player controller.modalPresentationStyle = .overFullScreen return controller } func updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) { uiViewController.player = player } } private func loadPlayer(video: URL) async throws -> AVPlayer { let videoAsset = AVURLAsset(url: video) let videoPlusSubtitles = AVMutableComposition() try await videoPlusSubtitles.add(videoAsset, withMediaType: .video) try await videoPlusSubtitles.add(videoAsset, withMediaType: .audio) return await AVPlayer(playerItem: AVPlayerItem(asset: videoPlusSubtitles)) } private extension AVMutableComposition { func add(_ asset: AVAsset, withMediaType mediaType: AVMediaType) async throws { let duration = try await asset.load(.duration) try await asset.loadTracks(withMediaType: mediaType).first.map { track in let newTrack = self.addMutableTrack(withMediaType: mediaType, preferredTrackID: kCMPersistentTrackID_Invalid) let range = CMTimeRangeMake(start: .zero, duration: duration) try newTrack?.insertTimeRange(range, of: track, at: .zero) } } }
2
0
186
Apr ’25
Is It Possible to Restore Previous Browser State After openURL on iOS?
Hi Everyone, I’m currently working on a flow where a web page redirects to our app to perform certain actions, and then returns the user back to the browser. However, on iOS, the only way to go back to the browser is by using the openURL method. The issue is that this method can only open the browser app itself—it can’t control which tab or page is shown, so the user doesn’t return to the original tab they came from. The same limitation also applies to Android. Furthermore, iOS doesn’t allow an app to programmatically return to the previous app (in this case, the browser). While Android doesn’t have an official way either, in some cases, the OS automatically returns to the previous app when ours is closed. I’d like to ask: Is there any known method or workaround that allows returning from my app back to Safari (or the default browser) and restoring the previously active web page or tab? Or, is there any way to programmatically return to the previous app from within my app? Thanks in advance for your support!
0
0
159
Apr ’25
Use cellular data on the app while connected to hardware's wifi that doesn't have internet connection
Hello, I am in a very similar situation as described in the thread: https://developer.apple.com/forums/thread/655183 Context: I am working on an app that receives data from a hardware device through its Wifi network, and the hardware is not connected to the internet. Now, I would need to call some API while still connected to hardware so I would need to use the cellular data. As mentioned on the thread, I can achieve this via Network framework, using the requiredInterfaceType property. But Is there any other way I can achieve this? I can also do some suggestion on the hardware if that's helpful. Thank you!
1
0
203
Apr ’25
How to disable auto restart on iOS 18
I have an iPhone 12 mini and I am currently using it as a modem for my router. Previously it was running iOS 14, but the DHCP on iOS 14 doesn't work and Apple didn't fix it until iOS 15. Recently I upgraded the system to iOS 18.4 to get DHCP back, but I got a bigger problem. The iPhone will restart itself after 3 days, and then I just lost internet connection. The hotspot will not be turned on until I climbed on my bookshelf to unlock my phone. After I googled it, I found that it is a feature that Apple introduced in iOS 18.1. While I couldn't find any setting to turn it off. If this cannot be controlled by the user, then it is anyway a BUG than a feature.
0
0
99
Apr ’25
Problems visualizing UIApplicationShortcutIcon with shortcuts
Hi Everybody, I am actually developing dynamic shortcuts for my app. I have a problem with the class UIApplicationShortcutIcon. When I pass a personalized icon in the parameter icon as a UIApplicationShortcutIcon(templateImageName: "nameOfTheAsset" I always visualize a black dot instead of my Icon. The icon is imported as .SVG file and rendered as a template. Sincerely I do not know what to do to solve this problem since the documentation is little. Hoping somebody can give some tips to solve the problem
1
0
71
Apr ’25
How do I test a new leaderboard added to a Published app with prior leaderboard?
Hi I have attempted to find a fix for my issue via documentation online and one phone support ( not code level support ) call to no end. I could continue to try various things but would like to see if someone else has encountered this issue and a fix for it. Background: My Game app is live on App Store and has 1 classic leaderboard . I am now getting ready to submit an update to the app and it also entails adding a new recurring leaderboard. I added the leaderboard in App Store. I however have NOT uploaded my new build yet. I have also not added my leaderboards ( currently live and not live ) to any set. When I try to submit scores using GKLeaderboard.submitScore(_:context:player:leaderboardIDs:completionHandler:) to the new non-live leaderboard it works ( gives me no error ) When I try to load the scores from the new non-live leaderboard GKLeaderboard.loadLeaderboards(IDs:completionHandler:) loadEntries(for:timeScope:range:completionHandler:) it fails. Error: "leaderboardID not found" I could try ( and will ) uploading the new build to AppStore connect and associating the new leaderboard to it before testing again. try associating each leaderboard to a set Is there anything else that I should be aware of ? Thanks in advance
2
0
189
Apr ’25
Xcode 16.0 iOS 12 support
We are preparing builds using Xcode 16.0 given we have a large set of users on iOS 12. Now we have doubts wether we will run into issues if we ship using it (even if it compiles, archives and uploads successfully) given the table columns and content has changed since the last time we checked this table: https://developer.apple.com/support/xcode/. 1- Is the Deployment Targets range for Xcode 16 value correct for iOS? (On the 24th of February it had iOS 12-18, now it has iOS 15-18) 2- Are we OK to ship for iOS 12 using xcode 16.3? Thanks, Joao Garcia
2
5
484
Apr ’25
UIPasteControl Not Recognizing Tap
I have an iOS app where I'm trying to paste something previously copied to the user's UIPasteboard. I came across the UIPasteControl as an option for a user to tap to silently paste without having the prompt "Allow Paste" pop up. For some reason, despite having what seemingly is the correct configurations for the UIPasteControl, on testing a tap, nothing is called. I expected override func paste(itemProviders: [NSItemProvider]) to fire, but it does not. Any help would be appreciated as there doesn't seem to be much info anywhere regarding UIPasteControl. import UniformTypeIdentifiers class ViewController: UIViewController { private let pasteControl = UIPasteControl() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBackground pasteControl.target = self pasteConfiguration = UIPasteConfiguration(acceptableTypeIdentifiers: [ UTType.text.identifier, UTType.url.identifier, UTType.plainText.identifier ]) view.addSubview(pasteControl) pasteControl.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ pasteControl.centerXAnchor.constraint(equalTo: view.centerXAnchor), pasteControl.centerYAnchor.constraint(equalTo: view.centerYAnchor), ]) } } extension ViewController { override func paste(itemProviders: [NSItemProvider]) { for provider in itemProviders { if provider.hasItemConformingToTypeIdentifier(UTType.url.identifier) { provider.loadObject(ofClass: URL.self) { [weak self] reading, _ in guard let url = reading as? URL else { return } print(url) } } else if provider.hasItemConformingToTypeIdentifier(UTType.plainText.identifier) { provider.loadObject(ofClass: NSString.self) { [weak self] reading, _ in guard let nsstr = reading as? NSString else { return } let str = nsstr as String if let url = URL(string: str) { print(url) } } } } } }
2
0
126
Apr ’25
Missing Files Xcode Build Error
I have an iOS app. When I install pods via CLI to my project for the first time, launch Xcode, and then run the app, everything works fine – no build errors. But after several instances of running the project on my device, all of a sudden build errors appear like: /Pods/FirebaseCrashlytics/Crashlytics/Crashlytics/Settings/Models/FIRCLSApplicationIdentifierModel.m:19:9 'Crashlytics/Shared/FIRCLSByteUtility.h' file not found /Pods/PostHog/vendor/libwebp/ph_sharpyuv_csp.h /Pods/PostHog/vendor/libwebp/ph_sharpyuv_csp.h: No such file or directory And I have no idea why if it's because of my PodFile or any Build Settings/Phases/Rules, but this keeps happening repeatedly and it's impossible to develop anything with this. I've tried a string of commands such as "pod deintegrate", "pod cache clean --all", removing PodFile.lock and doing pod install again, removing derived data, and cleaning build folder. I still keep running into the same build error and it's always after a few builds this happens, nothing is missing prior when the project successfully builds. Here is my PodFile for reference: # Uncomment the next line to define a global platform for your project platform :ios, '17.0' def google_utilities pod 'GoogleUtilities/AppDelegateSwizzler' pod 'GoogleUtilities/Environment' pod 'GoogleUtilities/ISASwizzler' pod 'GoogleUtilities/Logger' pod 'GoogleUtilities/MethodSwizzler' pod 'GoogleUtilities/NSData+zlib' pod 'GoogleUtilities/Network' pod 'GoogleUtilities/Reachability' pod 'GoogleUtilities/UserDefaults' end target 'SE' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for SE pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Auth' google_utilities end target 'NSE' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for NSE pod 'Firebase/Messaging' google_utilities end target 'targetApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! #Pods for targetApp pod 'Firebase/Core' pod 'Firebase/Crashlytics' pod 'Firebase/Messaging' pod 'Firebase/Firestore' pod 'Firebase/Storage' pod 'Firebase/Functions' pod 'PromiseKit', '~> 6.0' pod 'lottie-ios' pod 'GooglePlaces' pod 'JWTDecode', '~> 2.4' pod 'PostHog' pod 'Kingfisher', '~> 8.0' pod 'PhoneNumberKit' google_utilities end post_install do |installer| installer.aggregate_targets.each do |target| target.xcconfigs.each do |variant, xcconfig| xcconfig_path = target.client_root + target.xcconfig_relative_path(variant) IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) end end installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference xcconfig_path = config.base_configuration_reference.real_path IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0' end end end installer.pods_project.targets.each do |target| if target.name == 'BoringSSL-GRPC' target.source_build_phase.files.each do |file| if file.settings && file.settings['COMPILER_FLAGS'] flags = file.settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } file.settings['COMPILER_FLAGS'] = flags.join(' ') end end end end end And here is my only "Run Script" in Build Phases: "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" \ -gsp "${PROJECT_DIR}/targetApp/GoogleService-Info.plist" \ -p ios \ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
3
0
215
Apr ’25
EXC_BAD_ACCESS if Address or Thread Sanitizer is enabled
I'm getting EXC_BAD_ACCESS (code=2, address=0x7ff8a6e2fcce) when launching my app on the simulator with Address or Thread Sanitizer enabled. I'm running Xcode 16.3 (16E140) on macOS Sequoia 15.4.1 (24E263). The call stack looks like the following. On the device, there is no crash, but this message is printed to the console: malloc: nano zone abandoned due to inability to reserve vm space. (Not sure if it's related.) Does anybody know what is causing the crash? Thread 1 #0 0x0000000103361f5b in __sanitizer::MemoryMappingLayout::Next () #1 0x000000010336034b in __sanitizer::MemoryRangeIsAvailable () #2 0x000000010334db77 in __asan::InitializeShadowMemory () #3 0x0000000103395069 in __asan::AsanInitInternal() (.cold.1) () #4 0x000000010334d352 in __asan::AsanInitInternal () #5 0x0000000103394f65 in __asan_init.cold.1 () #6 0x000000010334d325 in __asan::AsanInitFromRtl () #7 0x0000000103343289 in wrap_malloc_default_zone () #8 0x00007ff801b15f86 in __malloc_init () #9 0x00007ffa160080be in libSystem_initializer () #10 0x000000010306eb11 in invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const () #11 0x000000010308f364 in invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const () #12 0x00000001030aad7c in invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const () #13 0x00000001030a83c9 in mach_o::Header::forEachLoadCommand () #14 0x00000001030a98c8 in mach_o::Header::forEachSection () #15 0x000000010308ef62 in dyld3::MachOAnalyzer::forEachInitializer () #16 0x000000010306e9ac in dyld4::Loader::findAndRunAllInitializers () #17 0x0000000103074da1 in dyld4::JustInTimeLoader::runInitializers () #18 0x00000001030807c5 in dyld4::APIs::runAllInitializersForMain () #19 0x000000010305efac in dyld4::prepare () #20 0x000000010305e36e in _dyld_sim_prepare () #21 0x000000010993b2a0 in dyld4::prepareSim () #22 0x0000000109939963 in dyld4::prepare () #23 0x000000010993981f in dyld4::start(dyld4::KernelArgs*, void*, void*)::$_0::operator()() const () #24 0x00000001099394da in start ()
8
1
467
Apr ’25
iOS18, certificates, mail app and domain
I'm totally baffled by the changes Apple made on iOS18 about certificates usage in the built-in mail application. They decided that self-signed are not accepted any more, fine. As long as you can install your own root CA and trust it, it should be fine. But NO! They have also decided that mail will only accept IMAP servers using a domain name, no more just and IP address. So you can't get any IP-based certificate that will be accepted by the mail app, even with the right SAN and al. I've tried two "identical" certs, one with a domain and one with an IP and the domain works while the IP fails, being rejected as non-valid by the app. The most funny part is that the IP cert is good enough to configure mail (can see the successful login), but is being rejected when reading emails. I'm really fed up with the "Apple police" that wants to push us not using our own storage anymore. My se case is simple, I have an IMAP server that is used by family to archive all emails and keep them organized, saved forever and away from being scanned. I need to access that server either when locally connected or through VPN. For VPN, I use split tunnels because I don't want all traffic to go to tunnel. Nor do I want to create my own local DNS server and have all VPN clients use such DNS server only for the sake of having a domain name for the IMAP server. Nor do I want to open an external port to redirect to my IMAP server (that works of course as then I can use DDNS ...). Talk about increased security! This is insane
4
0
119
Apr ’25
Game Center Authentication Crashing - Unity 6, Gamekit 3.0.2
When testing my development build for gamecenter authentication, the game crashes. I've breadcrumbed it to the "await GKLocalPlayer.Authenticate();" call. Can't find any documentation on this issue and have been looking through the forums! I've already done all of the usual stuff like verifying bundle identifiers match, ensuring game center is enabled for the app, setting up app store connect, using a sandbox account, etc... Please point me to some resources if you know any. Any help is appreciated, I'm starting to lose hope here!
2
0
256
Apr ’25
Arabic Text Appears Reversed and Broken in SwiftUI Lists, TextFields, and Pickers
Hello, I would like to report a critical issue with Arabic text rendering in SwiftUI apps on iOS and iPadOS. When using Arabic as the default language (Right-to-Left - RTL), Arabic text appears reversed and disconnected inside several SwiftUI components like: List Section TextField Picker Custom views (like StudentRowView) Even though the environment is set to .layoutDirection(.rightToLeft), the dynamic Arabic text is not rendered properly. Static headers display correctly, but any dynamic content (student names, notes, field titles) becomes broken and unreadable. Examples where the issue occurs: AboutView.swift → Arabic text inside List and Section SettingsView.swift → TextField placeholders and Picker options StudentRowView.swift → Student names and grade field titles Environment: SwiftUI 5 (Xcode 15+) iOS 17+ Reproducible 100% on both Simulator and real devices. Expected Behavior: Arabic text should appear properly connected, right-aligned, and readable without any manual workaround for each Text or TextField. Workarounds Tried: Manually setting .multilineTextAlignment(.trailing) (inefficient) Wrapping every Text inside an HStack with Spacer (hacky) Building custom UIKit views (defeats purpose of SwiftUI simplicity) Formal Feedback: I have submitted a Feedback Assistant report We hope this issue will be prioritized and fixed to improve SwiftUI's support for Arabic and other RTL languages. Thank you.
1
0
167
Apr ’25
iOS 18.4 HTTPS connection compatibility issue
We are experiencing a compatibility issue with our hybrid app related to the recent update in iPadOS 18.4, specifically concerning HTTPS connections. What are the key changes introduced in iPadOS 18.4 regarding HTTPS connections? Our app previously managed to bypass the DigitalSignature key usage missing error in the self-signed server certificate within the didReceiveAuthenticationChallenge method, as documented here: https://developer.apple.com/documentation/webkit/wknavigationdelegate/webview(_:didreceive:completionhandler:) . However, since the update to iPadOS 18.4, this method is no longer being called, resulting in direct failure of HTTPS connections. We are using cordova-ios 7.1. Thanks in advance for your help.
1
1
218
Apr ’25
System Data full after clearing safari, messages, offloading apps/reinstalling apps
I‘m getting tired of having to reinstall apps because of the amount of datas. I deleted alot of photos. Deleted apps. The thing that gets my storage full is the System data. I searched up for tutorials, it was full with clearing safari history or deleting old messages, offloading apps. I did them all, none of them decreased my system data and its at 12GB while my phone‘s GB is only up to 64GB. I use IOS 16 Iphone 11. Can someone help?
1
0
132
Apr ’25
Impact on iOS Due to Image Policy Changes with Android Target SDK 34
As the image access policy has changed with Android targeting SDK 34, I’m planning to update the way our app accesses photos. We are using the react-native-image-picker library to access images. On Android, the system no longer prompts the user for image access permissions, but on iOS, permission requests still appear. Since Android no longer requires explicit permissions, I’ve removed the permission request logic for Android. In this case, is it also safe to remove the permission request for iOS? In our app, photo access is only used for changing the user profile picture and attaching images when writing a post on the bulletin board. Are there any limitations or considerations for this kind of usage?
1
0
111
Apr ’25
Can NEFilterControlProvider Be Used Without MDM in ADEP Distribution?
Hi~ I implemented network filtering on iOS using NEFilterControlProvider and NEFilterDataProvider. However, I found that their usage is restricted when distributing through the App Store. Does ADEP-based distribution allow the use of NEFilterControlProvider and NEFilterDataProvider? In TN3134, it states that NEPacketTunnelProvider requires MDM. Should I assume that NEFilterControlProvider and NEFilterDataProvider also require MDM in the same way? Thanks
Replies
1
Boosts
0
Views
104
Activity
Apr ’25
How to make a UIButton resize its custom font text using `configurationUpdateHandler`?
I've read in this post that in order to make the configuration of UIButton adjust my custom font's size automatically I need to add implementation to recalculate the font's size inside configurationUpdateHandler. But how would this look like? I also read something about matching the font's text style. But at this point I'm just guessing. Here's the code: let loginButton = UIButton(configuration: config, primaryAction: nil) loginButton.configurationUpdateHandler = { button in guard var config = button.configuration else { return } let traits = button.traitCollection let baseTitleFont = UIFont.customFont(ofSize: 18, weight: .semibold) let baseSubtitleFont = UIFont.customFont(ofSize: 18, weight: .regular) let scaledTitleFont = UIFontMetrics(forTextStyle: .body).scaledFont(for: baseTitleFont, compatibleWith: traits) let scaledSubtitleFont = UIFontMetrics(forTextStyle: .body).scaledFont(for: baseSubtitleFont, compatibleWith: traits) config.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { incoming in var outgoing = incoming outgoing.font = scaledTitleFont return outgoing } config.subtitleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { incoming in var outgoing = incoming outgoing.font = baseSubtitleFont return outgoing } button.configuration = config } Thanks in advance!
Replies
3
Boosts
0
Views
179
Activity
Apr ’25
AVPlayer Visual Accessibility Issues
AVPlayer has 3 visual accessibility issues with videos out of the box: The contrast fails for the current time in the video The contrast fails for the remaining time in the video The hit area is too small for the time slider. The WCAG AA requirement is a minimum hit size of 24 x 24. The height of the hit area of the offending region is 8. Is there a known fix for any of these? This can be reproduced with this code in an app playground: import SwiftUI import AVKit import UIKit struct ContentView: View { private let video = URL(string: "https://server15700.contentdm.oclc.org/dmwebservices/index.php?q=dmGetStreamingFile/p15700coll2/15.mp4/byte/json")! @State private var player: AVPlayer? var body: some View { VStack { VideoPlayerView(player: player) .frame(maxWidth: .infinity, maxHeight: 200) } .task { player = try? await loadPlayer(video: video) } } } private struct VideoPlayerView: UIViewControllerRepresentable { let player: AVPlayer? func makeUIViewController(context: Context) -> AVPlayerViewController { let controller = AVPlayerViewController() controller.player = player controller.modalPresentationStyle = .overFullScreen return controller } func updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) { uiViewController.player = player } } private func loadPlayer(video: URL) async throws -> AVPlayer { let videoAsset = AVURLAsset(url: video) let videoPlusSubtitles = AVMutableComposition() try await videoPlusSubtitles.add(videoAsset, withMediaType: .video) try await videoPlusSubtitles.add(videoAsset, withMediaType: .audio) return await AVPlayer(playerItem: AVPlayerItem(asset: videoPlusSubtitles)) } private extension AVMutableComposition { func add(_ asset: AVAsset, withMediaType mediaType: AVMediaType) async throws { let duration = try await asset.load(.duration) try await asset.loadTracks(withMediaType: mediaType).first.map { track in let newTrack = self.addMutableTrack(withMediaType: mediaType, preferredTrackID: kCMPersistentTrackID_Invalid) let range = CMTimeRangeMake(start: .zero, duration: duration) try newTrack?.insertTimeRange(range, of: track, at: .zero) } } }
Replies
2
Boosts
0
Views
186
Activity
Apr ’25
Is It Possible to Restore Previous Browser State After openURL on iOS?
Hi Everyone, I’m currently working on a flow where a web page redirects to our app to perform certain actions, and then returns the user back to the browser. However, on iOS, the only way to go back to the browser is by using the openURL method. The issue is that this method can only open the browser app itself—it can’t control which tab or page is shown, so the user doesn’t return to the original tab they came from. The same limitation also applies to Android. Furthermore, iOS doesn’t allow an app to programmatically return to the previous app (in this case, the browser). While Android doesn’t have an official way either, in some cases, the OS automatically returns to the previous app when ours is closed. I’d like to ask: Is there any known method or workaround that allows returning from my app back to Safari (or the default browser) and restoring the previously active web page or tab? Or, is there any way to programmatically return to the previous app from within my app? Thanks in advance for your support!
Replies
0
Boosts
0
Views
159
Activity
Apr ’25
Use cellular data on the app while connected to hardware's wifi that doesn't have internet connection
Hello, I am in a very similar situation as described in the thread: https://developer.apple.com/forums/thread/655183 Context: I am working on an app that receives data from a hardware device through its Wifi network, and the hardware is not connected to the internet. Now, I would need to call some API while still connected to hardware so I would need to use the cellular data. As mentioned on the thread, I can achieve this via Network framework, using the requiredInterfaceType property. But Is there any other way I can achieve this? I can also do some suggestion on the hardware if that's helpful. Thank you!
Replies
1
Boosts
0
Views
203
Activity
Apr ’25
How to disable auto restart on iOS 18
I have an iPhone 12 mini and I am currently using it as a modem for my router. Previously it was running iOS 14, but the DHCP on iOS 14 doesn't work and Apple didn't fix it until iOS 15. Recently I upgraded the system to iOS 18.4 to get DHCP back, but I got a bigger problem. The iPhone will restart itself after 3 days, and then I just lost internet connection. The hotspot will not be turned on until I climbed on my bookshelf to unlock my phone. After I googled it, I found that it is a feature that Apple introduced in iOS 18.1. While I couldn't find any setting to turn it off. If this cannot be controlled by the user, then it is anyway a BUG than a feature.
Replies
0
Boosts
0
Views
99
Activity
Apr ’25
Problems visualizing UIApplicationShortcutIcon with shortcuts
Hi Everybody, I am actually developing dynamic shortcuts for my app. I have a problem with the class UIApplicationShortcutIcon. When I pass a personalized icon in the parameter icon as a UIApplicationShortcutIcon(templateImageName: "nameOfTheAsset" I always visualize a black dot instead of my Icon. The icon is imported as .SVG file and rendered as a template. Sincerely I do not know what to do to solve this problem since the documentation is little. Hoping somebody can give some tips to solve the problem
Replies
1
Boosts
0
Views
71
Activity
Apr ’25
How do I test a new leaderboard added to a Published app with prior leaderboard?
Hi I have attempted to find a fix for my issue via documentation online and one phone support ( not code level support ) call to no end. I could continue to try various things but would like to see if someone else has encountered this issue and a fix for it. Background: My Game app is live on App Store and has 1 classic leaderboard . I am now getting ready to submit an update to the app and it also entails adding a new recurring leaderboard. I added the leaderboard in App Store. I however have NOT uploaded my new build yet. I have also not added my leaderboards ( currently live and not live ) to any set. When I try to submit scores using GKLeaderboard.submitScore(_:context:player:leaderboardIDs:completionHandler:) to the new non-live leaderboard it works ( gives me no error ) When I try to load the scores from the new non-live leaderboard GKLeaderboard.loadLeaderboards(IDs:completionHandler:) loadEntries(for:timeScope:range:completionHandler:) it fails. Error: "leaderboardID not found" I could try ( and will ) uploading the new build to AppStore connect and associating the new leaderboard to it before testing again. try associating each leaderboard to a set Is there anything else that I should be aware of ? Thanks in advance
Replies
2
Boosts
0
Views
189
Activity
Apr ’25
Programmatically Setting Constraints for CollectionViewCell Elements
Is there any possibility to update constraints for elements inside CollectionViewCell with button tap? And where to put the code inside CellForItem or Inside CollectionViewCell Class File?
Replies
2
Boosts
0
Views
93
Activity
Apr ’25
Xcode 16.0 iOS 12 support
We are preparing builds using Xcode 16.0 given we have a large set of users on iOS 12. Now we have doubts wether we will run into issues if we ship using it (even if it compiles, archives and uploads successfully) given the table columns and content has changed since the last time we checked this table: https://developer.apple.com/support/xcode/. 1- Is the Deployment Targets range for Xcode 16 value correct for iOS? (On the 24th of February it had iOS 12-18, now it has iOS 15-18) 2- Are we OK to ship for iOS 12 using xcode 16.3? Thanks, Joao Garcia
Replies
2
Boosts
5
Views
484
Activity
Apr ’25
UIPasteControl Not Recognizing Tap
I have an iOS app where I'm trying to paste something previously copied to the user's UIPasteboard. I came across the UIPasteControl as an option for a user to tap to silently paste without having the prompt "Allow Paste" pop up. For some reason, despite having what seemingly is the correct configurations for the UIPasteControl, on testing a tap, nothing is called. I expected override func paste(itemProviders: [NSItemProvider]) to fire, but it does not. Any help would be appreciated as there doesn't seem to be much info anywhere regarding UIPasteControl. import UniformTypeIdentifiers class ViewController: UIViewController { private let pasteControl = UIPasteControl() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBackground pasteControl.target = self pasteConfiguration = UIPasteConfiguration(acceptableTypeIdentifiers: [ UTType.text.identifier, UTType.url.identifier, UTType.plainText.identifier ]) view.addSubview(pasteControl) pasteControl.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ pasteControl.centerXAnchor.constraint(equalTo: view.centerXAnchor), pasteControl.centerYAnchor.constraint(equalTo: view.centerYAnchor), ]) } } extension ViewController { override func paste(itemProviders: [NSItemProvider]) { for provider in itemProviders { if provider.hasItemConformingToTypeIdentifier(UTType.url.identifier) { provider.loadObject(ofClass: URL.self) { [weak self] reading, _ in guard let url = reading as? URL else { return } print(url) } } else if provider.hasItemConformingToTypeIdentifier(UTType.plainText.identifier) { provider.loadObject(ofClass: NSString.self) { [weak self] reading, _ in guard let nsstr = reading as? NSString else { return } let str = nsstr as String if let url = URL(string: str) { print(url) } } } } } }
Replies
2
Boosts
0
Views
126
Activity
Apr ’25
Missing Files Xcode Build Error
I have an iOS app. When I install pods via CLI to my project for the first time, launch Xcode, and then run the app, everything works fine – no build errors. But after several instances of running the project on my device, all of a sudden build errors appear like: /Pods/FirebaseCrashlytics/Crashlytics/Crashlytics/Settings/Models/FIRCLSApplicationIdentifierModel.m:19:9 'Crashlytics/Shared/FIRCLSByteUtility.h' file not found /Pods/PostHog/vendor/libwebp/ph_sharpyuv_csp.h /Pods/PostHog/vendor/libwebp/ph_sharpyuv_csp.h: No such file or directory And I have no idea why if it's because of my PodFile or any Build Settings/Phases/Rules, but this keeps happening repeatedly and it's impossible to develop anything with this. I've tried a string of commands such as "pod deintegrate", "pod cache clean --all", removing PodFile.lock and doing pod install again, removing derived data, and cleaning build folder. I still keep running into the same build error and it's always after a few builds this happens, nothing is missing prior when the project successfully builds. Here is my PodFile for reference: # Uncomment the next line to define a global platform for your project platform :ios, '17.0' def google_utilities pod 'GoogleUtilities/AppDelegateSwizzler' pod 'GoogleUtilities/Environment' pod 'GoogleUtilities/ISASwizzler' pod 'GoogleUtilities/Logger' pod 'GoogleUtilities/MethodSwizzler' pod 'GoogleUtilities/NSData+zlib' pod 'GoogleUtilities/Network' pod 'GoogleUtilities/Reachability' pod 'GoogleUtilities/UserDefaults' end target 'SE' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for SE pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Auth' google_utilities end target 'NSE' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for NSE pod 'Firebase/Messaging' google_utilities end target 'targetApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! #Pods for targetApp pod 'Firebase/Core' pod 'Firebase/Crashlytics' pod 'Firebase/Messaging' pod 'Firebase/Firestore' pod 'Firebase/Storage' pod 'Firebase/Functions' pod 'PromiseKit', '~> 6.0' pod 'lottie-ios' pod 'GooglePlaces' pod 'JWTDecode', '~> 2.4' pod 'PostHog' pod 'Kingfisher', '~> 8.0' pod 'PhoneNumberKit' google_utilities end post_install do |installer| installer.aggregate_targets.each do |target| target.xcconfigs.each do |variant, xcconfig| xcconfig_path = target.client_root + target.xcconfig_relative_path(variant) IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) end end installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference xcconfig_path = config.base_configuration_reference.real_path IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0' end end end installer.pods_project.targets.each do |target| if target.name == 'BoringSSL-GRPC' target.source_build_phase.files.each do |file| if file.settings && file.settings['COMPILER_FLAGS'] flags = file.settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } file.settings['COMPILER_FLAGS'] = flags.join(' ') end end end end end And here is my only "Run Script" in Build Phases: "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" \ -gsp "${PROJECT_DIR}/targetApp/GoogleService-Info.plist" \ -p ios \ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
Replies
3
Boosts
0
Views
215
Activity
Apr ’25
EXC_BAD_ACCESS if Address or Thread Sanitizer is enabled
I'm getting EXC_BAD_ACCESS (code=2, address=0x7ff8a6e2fcce) when launching my app on the simulator with Address or Thread Sanitizer enabled. I'm running Xcode 16.3 (16E140) on macOS Sequoia 15.4.1 (24E263). The call stack looks like the following. On the device, there is no crash, but this message is printed to the console: malloc: nano zone abandoned due to inability to reserve vm space. (Not sure if it's related.) Does anybody know what is causing the crash? Thread 1 #0 0x0000000103361f5b in __sanitizer::MemoryMappingLayout::Next () #1 0x000000010336034b in __sanitizer::MemoryRangeIsAvailable () #2 0x000000010334db77 in __asan::InitializeShadowMemory () #3 0x0000000103395069 in __asan::AsanInitInternal() (.cold.1) () #4 0x000000010334d352 in __asan::AsanInitInternal () #5 0x0000000103394f65 in __asan_init.cold.1 () #6 0x000000010334d325 in __asan::AsanInitFromRtl () #7 0x0000000103343289 in wrap_malloc_default_zone () #8 0x00007ff801b15f86 in __malloc_init () #9 0x00007ffa160080be in libSystem_initializer () #10 0x000000010306eb11 in invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const () #11 0x000000010308f364 in invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const () #12 0x00000001030aad7c in invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const () #13 0x00000001030a83c9 in mach_o::Header::forEachLoadCommand () #14 0x00000001030a98c8 in mach_o::Header::forEachSection () #15 0x000000010308ef62 in dyld3::MachOAnalyzer::forEachInitializer () #16 0x000000010306e9ac in dyld4::Loader::findAndRunAllInitializers () #17 0x0000000103074da1 in dyld4::JustInTimeLoader::runInitializers () #18 0x00000001030807c5 in dyld4::APIs::runAllInitializersForMain () #19 0x000000010305efac in dyld4::prepare () #20 0x000000010305e36e in _dyld_sim_prepare () #21 0x000000010993b2a0 in dyld4::prepareSim () #22 0x0000000109939963 in dyld4::prepare () #23 0x000000010993981f in dyld4::start(dyld4::KernelArgs*, void*, void*)::$_0::operator()() const () #24 0x00000001099394da in start ()
Replies
8
Boosts
1
Views
467
Activity
Apr ’25
iOS18, certificates, mail app and domain
I'm totally baffled by the changes Apple made on iOS18 about certificates usage in the built-in mail application. They decided that self-signed are not accepted any more, fine. As long as you can install your own root CA and trust it, it should be fine. But NO! They have also decided that mail will only accept IMAP servers using a domain name, no more just and IP address. So you can't get any IP-based certificate that will be accepted by the mail app, even with the right SAN and al. I've tried two "identical" certs, one with a domain and one with an IP and the domain works while the IP fails, being rejected as non-valid by the app. The most funny part is that the IP cert is good enough to configure mail (can see the successful login), but is being rejected when reading emails. I'm really fed up with the "Apple police" that wants to push us not using our own storage anymore. My se case is simple, I have an IMAP server that is used by family to archive all emails and keep them organized, saved forever and away from being scanned. I need to access that server either when locally connected or through VPN. For VPN, I use split tunnels because I don't want all traffic to go to tunnel. Nor do I want to create my own local DNS server and have all VPN clients use such DNS server only for the sake of having a domain name for the IMAP server. Nor do I want to open an external port to redirect to my IMAP server (that works of course as then I can use DDNS ...). Talk about increased security! This is insane
Replies
4
Boosts
0
Views
119
Activity
Apr ’25
Game Center Authentication Crashing - Unity 6, Gamekit 3.0.2
When testing my development build for gamecenter authentication, the game crashes. I've breadcrumbed it to the "await GKLocalPlayer.Authenticate();" call. Can't find any documentation on this issue and have been looking through the forums! I've already done all of the usual stuff like verifying bundle identifiers match, ensuring game center is enabled for the app, setting up app store connect, using a sandbox account, etc... Please point me to some resources if you know any. Any help is appreciated, I'm starting to lose hope here!
Replies
2
Boosts
0
Views
256
Activity
Apr ’25
Arabic Text Appears Reversed and Broken in SwiftUI Lists, TextFields, and Pickers
Hello, I would like to report a critical issue with Arabic text rendering in SwiftUI apps on iOS and iPadOS. When using Arabic as the default language (Right-to-Left - RTL), Arabic text appears reversed and disconnected inside several SwiftUI components like: List Section TextField Picker Custom views (like StudentRowView) Even though the environment is set to .layoutDirection(.rightToLeft), the dynamic Arabic text is not rendered properly. Static headers display correctly, but any dynamic content (student names, notes, field titles) becomes broken and unreadable. Examples where the issue occurs: AboutView.swift → Arabic text inside List and Section SettingsView.swift → TextField placeholders and Picker options StudentRowView.swift → Student names and grade field titles Environment: SwiftUI 5 (Xcode 15+) iOS 17+ Reproducible 100% on both Simulator and real devices. Expected Behavior: Arabic text should appear properly connected, right-aligned, and readable without any manual workaround for each Text or TextField. Workarounds Tried: Manually setting .multilineTextAlignment(.trailing) (inefficient) Wrapping every Text inside an HStack with Spacer (hacky) Building custom UIKit views (defeats purpose of SwiftUI simplicity) Formal Feedback: I have submitted a Feedback Assistant report We hope this issue will be prioritized and fixed to improve SwiftUI's support for Arabic and other RTL languages. Thank you.
Replies
1
Boosts
0
Views
167
Activity
Apr ’25
In App purchase in ios not working in xcode 16.3
In app purchase is not executed in ios while i run the code in xcode 16.3 But it's working fine in Xcode 16.0. There is no proper error message or any alerts showing. It just returns an empty product identifier. Provide the me the solution or kindly fix the issue in xcode IDE regarding this issue in latest xcode
Replies
0
Boosts
0
Views
117
Activity
Apr ’25
iOS 18.4 HTTPS connection compatibility issue
We are experiencing a compatibility issue with our hybrid app related to the recent update in iPadOS 18.4, specifically concerning HTTPS connections. What are the key changes introduced in iPadOS 18.4 regarding HTTPS connections? Our app previously managed to bypass the DigitalSignature key usage missing error in the self-signed server certificate within the didReceiveAuthenticationChallenge method, as documented here: https://developer.apple.com/documentation/webkit/wknavigationdelegate/webview(_:didreceive:completionhandler:) . However, since the update to iPadOS 18.4, this method is no longer being called, resulting in direct failure of HTTPS connections. We are using cordova-ios 7.1. Thanks in advance for your help.
Replies
1
Boosts
1
Views
218
Activity
Apr ’25
System Data full after clearing safari, messages, offloading apps/reinstalling apps
I‘m getting tired of having to reinstall apps because of the amount of datas. I deleted alot of photos. Deleted apps. The thing that gets my storage full is the System data. I searched up for tutorials, it was full with clearing safari history or deleting old messages, offloading apps. I did them all, none of them decreased my system data and its at 12GB while my phone‘s GB is only up to 64GB. I use IOS 16 Iphone 11. Can someone help?
Replies
1
Boosts
0
Views
132
Activity
Apr ’25
Impact on iOS Due to Image Policy Changes with Android Target SDK 34
As the image access policy has changed with Android targeting SDK 34, I’m planning to update the way our app accesses photos. We are using the react-native-image-picker library to access images. On Android, the system no longer prompts the user for image access permissions, but on iOS, permission requests still appear. Since Android no longer requires explicit permissions, I’ve removed the permission request logic for Android. In this case, is it also safe to remove the permission request for iOS? In our app, photo access is only used for changing the user profile picture and attaching images when writing a post on the bulletin board. Are there any limitations or considerations for this kind of usage?
Replies
1
Boosts
0
Views
111
Activity
Apr ’25