This is a dedicated space for developers to connect, share ideas, collaborate, and ask questions. Introduce yourself, network with other developers, and join us in fostering a supportive community.

All subtopics
Posts under Community topic

Post

Replies

Boosts

Views

Activity

Unable to Check for Update IOS26 Beta1
I’ve updated to iOS 26 Beta 1, and now I can’t revert to an earlier version because my iPhone automatically created a backup using the iOS 26 version. I’m also unable to check for updates—my device can’t retrieve information from the server, so it’s not detecting that Beta 2 is available. I need help resolving this issue, please.
0
0
252
Jun ’25
No Connection To Mobile Data
I installed the new developer beta 26 yesterday, but since that I only have problems with my iPhone. Besides not being able to update the software bc an error appears, I also don‘t have the abbility to use mobile data. If I try to, it only says „could not activate mobile data network“. I already tried to restart the phone, to reset it or to take the SIM out and in
0
0
53
Jun ’25
TVOS - App Data Stored in Shared App Groups not removing after deletion of apps
Hi, Having a weird issue that I’m noticing on Apple TVs with some apps that are by the same company. I think it’s storing residual user data if if you delete the app and all other apps relating to this. I have even tried deleting every app and reinstalling but we found two apps to be still logged in. Seams like a sandboxing bug and I presume it’s to do with App data stored in the shared app groups. I can only reset the apple tv to remove the user data. The two apps we can see are being persistent is Binge and Kayo by streamotion. We have tried problem solving this in every way imaginable but it’s Interesting that this is allowed to happen on an Apple platform. There is no active user logged into the apple TV with an Apple ID either
0
0
75
Apr ’25
Updated my Apple Watch to watchOS 26 beta to test it — can't pair it now after downgrading iPhone
Hi everyone, I updated my iPhone 16 Pro to iOS 26 beta and my Apple Watch to watchOS 26 beta because I wanted to test out the new features. After a few days of testing, I found the iOS 26 beta too unstable and laggy for daily use, so I downgraded my iPhone back to iOS 18.5 stable. Now my Apple Watch is still running watchOS 26 beta. I tried resetting it to factory settings, hoping that would help, but now I can’t pair it back to my iPhone because it requires iOS 26 again — which I don’t want to reinstall and don't want to use it till it's stable. Is there any way to downgrade my Apple Watch back to a stable version or somehow pair it again with my iPhone running iOS 18.5? Thanks in advance for any help!
2
0
152
Jun ’25
AR WorldMap Relocalization for Identical houses.
i have a specific requirement as below. i have apartments in which i have 4 units and each unit will be of same layout. furniture etc.. might change but not walls and layout as far as i know. Step1: Now i will enter into one unit, scan the entire unit and save it using RoomPlan Api and at the end of the scan i will be saving the worldmap as well. Step2: i want to use the previously saved worldmap and enter into another unit and want to relocalize with only walls because the furniture might be different. is that possible. if not is there any otherway to achieve this functionality? i really appreciate you valuable time. Thankyou.
5
0
268
Jun ’25
File/folder Permissions Issues
Currently running 15.5 Beta 3 on a Mac Studio M4. I am unable to read/write to my Home folder from most of my applications. I receive an error basically saying I do not have access rights to the file/folder. If I go to the file directly and open it, it works. I have repaired disk permissions, checked the Sharing & Permissions settings via Get Info, and finally called Apple. Of course, since I am running the beta, the support was quite limited. I will add that I am also unable to open .dmgs that have been downloaded to my Downloads folder. I receive the "The disk image couldn’t be opened. The operation couldn’t be completed. Operation not permitted" error. If I copy the .dmg to another drive, I can open it from there.
0
0
62
Apr ’25
Wireless CarPlay
i am running iOS 18.5 beta 3 (iPhone 16 pro max) and my phone will not connect wirelessly to any of my vehicles. When connected via the apple certified usb-c cord, it will connect just fine. I have removed all vehicles from my phone, then removed my phone from both vehicle, reconnected, and it still will not connect wirelessly.
0
0
61
May ’25
iCloud file reading and writing (iOS)
On my first attempt at adding iCloud to my existing app this is how far I've gotten. For reasons that I won't go into, the use case for my app does not need coordination. I have successfully made my app write a file to the Documents directory of iCloud and read back that same file without errors. In testing on a real iPhone 13 and iPhone 7 I have verified that my app can write a file to iCloud from the iPhone 7 and then read back that same file on the iPhone 13, so I know that the file truly exists in the cloud. But when I make my app on the iPhone 13 write to iCloud, my app on the iPhone 7 says the file does not exist. Exactly the same build of my app is running in both phones. This is problem #1. Problem #2 is that none of these files appear in the iCloud section of the Files app on either of these Phones, nor do they appear in the iCloud section of my Mac. All devices are signed in to my same Apple account in iCloud. Also my info.plist file in the app contains: <key>NSUbiquitousContainers</key> <dict> <dict> <key>iCloud.com.{my domain}.{my app}</key> <dict> <key>NSUbiquitousContainerIsDocumentScopePublic</key> <true/> <key>NSUbiquitousContainerSupportedFolderLevels</key> <string>Any</string> <key>NSUbiquitousContainerName</key> <string>{my app}</string> </dict> </dict> </dict> <key>UIFileSharingEnabled</key><true/> The iPhone 7 is running iOS 15.8.4 and the iPhone 13 is running iOS 18.3.2. The code that does the writing to iCloud is: NSFileManager *fman = [NSFileManager defaultManager]; NSURL *urlDrive = [fman URLForUbiquityContainerIdentifier: nil]; NSURL *urlDocs = [urlDrive URLByAppendingPathComponent:@"Documents"]; if(urlDocs.path == nil) { NSLog(@"NULL path"); return; //..big problem } if( ! [fman fileExistsAtPath: urlDocs.path] ) { //..need to create the Docs directory NSError *err00 = nil; @try { [fman createDirectoryAtURL: urlDocs withIntermediateDirectories:true attributes:nil error:&err00]; NSLog(@"created the directory"); } @catch (NSException *except) { NSLog(@"Exception creating directory %@", except); } } //..directory is now created NSLog(@"url=%@", urlDocs); NSURL *urlFile = [urlDocs URLByAppendingPathComponent:txtfname()]; NSData *fdata = [@"Hello world" dataUsingEncoding: NSUTF8StringEncoding]; NSLog(@"file url=%@", urlFile); NSLog(@"file Data=%@", fdata); NSError *errorReturn = nil; Boolean ret = [fdata writeToURL: urlFile options: NSDataWritingAtomic error: &errorReturn]; NSLog(@"returned %1d, error=%@", ret?1:0, errorReturn); And the code that does the reading is: NSFileManager *fman = [NSFileManager defaultManager]; NSURL *urlDrive = [fman URLForUbiquityContainerIdentifier: nil]; NSURL *urlDocs = [urlDrive URLByAppendingPathComponent:@"Documents"]; NSLog(@"url=%@", urlDocs); if(urlDocs.path == nil) { NSLog(@"urlDocs.path is NULL!"); return; //..big problem } if( ! [fman fileExistsAtPath: urlDocs.path] ) { //..need to create the Docs directory NSLog(@"It seems the urlDocs folder does not exist"); } NSURL *urlFile = [urlDocs URLByAppendingPathComponent:txtfname()]; if([fman fileExistsAtPath: urlFile.path]) { NSLog(@"file %@ exists", urlFile); [fman copyItemAtURL: urlFile toURL:<#(nonnull NSURL *)#> error:<#(NSError *__autoreleasing _Nullable * _Nullable)#>]; } else { NSLog(@"file %@ DOES NOT EXIST!", urlFile); }
1
0
125
May ’25
How to Properly Integrate Google IMA SDK for Pre-roll, Mid-roll, and Post-roll Ads in a tvOS App using TVJS and Swift?
I'm working on a tvOS application that plays video content using TVMLKit/TVJS. I'm trying to integrate Google IMA SDK to show pre-roll, mid-roll, and post-roll ads in my app. Here’s what I’ve done so far: Video playback is handled through JavaScript in application.js. Ads are managed in Swift using Google IMA SDK. I use the evaluateJavaScript bridge to control video playback from Swift. I pause and resume the TVJS player (Player object) using a function like startPlayingVideo(value) from Swift based on the ad lifecycle. Current Flow: When the video is about to start, I call loadAds() from JS. This presents a Swift ViewController that handles IMA ad requests. On adsManagerDidRequestContentPause, I pause the video using JS via the bridge. On adsManagerDidRequestContentResume, I resume the video. The Issue: This setup doesn't behave consistently: Sometimes the ad plays in the background and video started playing as well but can not see the ad. Not able to see the post-roll ads Relevant Code Snippets: application.js function startPlayingVideo(value) { if (playerReference != undefined) { if (value == true) { playerReference.play(); else { playerReference.pause(); } } } function playVideo(videoURL) { setup playerReference, push mediaItem, etc. loadAds(); player.present(); } AppDelegate.swift let loadAds: @convention(block) () -\> Void = { DispatchQueue.main.async { let adManagerVC = ViewController() AppDelegate.tvController?.navigationController.present(adManagerVC, animated: true) } } let updateVideoPlayTime: @convention(block) (Double) -\> Void = { time in CustomContentPlayhead.shared.currentTime = TimeInterval(time) } ViewController.swift func adsManagerDidRequestContentPause(\_ adsManager: IMAAdsManager) { showAdUI() playerViewController.player?.pause() } func adsManagerDidRequestContentResume(\_ adsManager: IMAAdsManager) { hideAdUI() // Expecting JS video to resume via bridge } And yeah my IMSDK Implementation is working fine if I am using it with swift AVPlayer. What I Need Help With: Best practice for coordinating video playback between JS (Player) and Swift (IMAAdsManager). How can I sync the playhead reliably between JS and Swift? Is there a better way to pause/resume TVJS player from Swift during ad lifecycle? How to reliably insert mid-roll ads when the playback is primarily controlled in JS? Any insights, code examples, or recommended architecture improvements would be greatly appreciated!
0
0
142
Jun ’25
i0S26 issue with CarPlay
I just upgraded to iOS 26.0 Now when I use car play, the text messages do not show up, only the notification tone on my phone alarms. So now when I get texts while driving, I need to read my phone to read the text. I tried all the solutions within settings but this is a BIG DRAWBACK compared to the old iOS.
0
0
80
Jun ’25
Displaying limited contacts list in UIKit
I have an app that was written in UIKit. It's too large, and it would be much too time consuming at this point to convert it to SwiftUI. I want to incorporate the new limited contacts into this app. The way it's currently written everything works fine except for showing the limited contacts in the contact picker. I have downloaded and gone though the Apple tutorial app but I'm having trouble thinking it through into UIKit. After a couple of hours I decided I need help. I understand I need to pull the contact IDs of the contacts that are in the limited contacts list. Not sure how to do that or how to get it to display in the picker. Any help would be greatly appreciated. func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // A text field that displays the name of the chosen contact @IBAction func contact_Fld_Tapped(_ sender: TextField_Designable) { sender.resignFirstResponder() // The contact ID that is saved to the Db getTheCurrentContactID() let theAlert = UIAlertController(title: K.Titles.chooseAContact, message: nil, preferredStyle: .actionSheet) // Create a new contact let addContact = UIAlertAction(title: K.Titles.newContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let openContact = CNContact() let vc = CNContactViewController(forNewContact: openContact) vc.delegate = self // this delegate CNContactViewControllerDelegate DispatchQueue.main.async { self?.present(UINavigationController(rootViewController: vc), animated: true) } } } let getContact = UIAlertAction(title: K.Titles.fromContacts, style: .default) { [weak self] _ in self?.requestAccess { _ in self?.contactPicker.delegate = self DispatchQueue.main.async { self?.present(self!.contactPicker, animated: true) } } } let editBtn = UIAlertAction(title: K.Titles.editContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let store = CNContactStore() var vc = CNContactViewController() do { let descriptor = CNContactViewController.descriptorForRequiredKeys() let editContact = try store.unifiedContact(withIdentifier: self!.oldContactID, keysToFetch: [descriptor]) vc = CNContactViewController(for: editContact) } catch { print("Getting contact to edit failed: \(self!.VC_String) \(error)") } vc.delegate = self // delegate for CNContactViewControllerDelegate self?.navigationController?.isNavigationBarHidden = false self?.navigationController?.navigationItem.hidesBackButton = false self?.navigationController?.pushViewController(vc, animated: true) } } let cancel = UIAlertAction(title: K.Titles.cancel, style: .cancel) { _ in } if oldContactID.isEmpty { editBtn.isEnabled = false } theAlert.addAction(getContact) // Select from contacts theAlert.addAction(addContact) // Create new contact theAlert.addAction(editBtn) // Edit this contact theAlert.addAction(cancel) let popOver = theAlert.popoverPresentationController popOver?.sourceView = sender popOver?.sourceRect = sender.bounds popOver?.permittedArrowDirections = .any present(theAlert,animated: true) } func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // MARK: - Contact Picker Delegate extension AddEdit_Quote_VC: CNContactPickerDelegate { func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) { selectedContactID = contact.identifier let company: String = contact.organizationName let companyText = company == "" ? K.Titles.noCompanyName : contact.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact, style: .fullName)! companyFld_Outlet.text = companyText save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } extension AddEdit_Quote_VC: CNContactViewControllerDelegate { func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool { return false } func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { selectedContactID = contact?.identifier ?? "" if selectedContactID != "" { let company: String = contact?.organizationName ?? "" let companyText = company == "" ? K.Titles.noCompanyName : contact!.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact!, style: .fullName) companyFld_Outlet.text = companyText getTheCurrentContactID() if selectedContactID != oldContactID { save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } dismiss(animated: true, completion: nil) } }
2
0
860
Jun ’25
WalletUIExtention alert "Unable to add card"
I download a demo from:https://applepaydemo.apple.com/wallet-extensions And I run my WalletUIExtention,but it's failed. This is some key in my info.plist <key>NSExtensionMainStoryboard</key> <string>MainInterface</string> <key>NSExtensionPointIdentifier</key> <string>com.apple.PassKit.issuer-provisioning.authorization</string> <key>NSExtensionPrincipalClass</key> <string>MyAUViewController</string> But I found that deleting the key: NSExtendesionPrincipalClass or NSExtendeionMainStoryboard in the info.plist file can make it run. Should I delete the key ? Whitch key ? This is it alert: This it's message: 2025-05-06 09:15:02.946890+0800 WalletUIExt[626:13530] Successfully load keyboard extensions Line: 1 Col:1 2025-05-06 09:15:02.972702+0800 WalletUIExt[626:13597] [xpc.exceptions]<NSXPCConnection: 0x2830c30c0> connection from pid 584 on mach service named com.bank.app.WalletUIExt.viewservice: Exception caught during decoding of received selector __connectToViewControllerFromRemoteViewController:replyHandler:, dropping incoming message. Exception:<NSXPCDecoder: Qx12a82bc00> received a message or reply block that is not in the interface of the remote object (__connectToViewControllerFromRemoteViewController:replyHandler:),
0
0
118
May ’25
Problème ubs app.
When I open ubs app (Switzerland) : Jailbreak: the Mobile Banking app cannot be used Manufacturer usage restrictions have been removed from this device (Jailbreak). To continue using the UBS Mobile Banking app, please restore your device to the original state. 😧😧😧 ???
1
0
24
Jun ’25
Pictures
I am running the iOS 26. I am having issues with deleting the pictures. I have checked my iCloud storage and my phone storage and all is good there. Not sure why they will not delete. I have the iPhone 16
1
0
65
Jun ’25
Unable to Check for Update IOS26 Beta1
I’ve updated to iOS 26 Beta 1, and now I can’t revert to an earlier version because my iPhone automatically created a backup using the iOS 26 version. I’m also unable to check for updates—my device can’t retrieve information from the server, so it’s not detecting that Beta 2 is available. I need help resolving this issue, please.
Replies
0
Boosts
0
Views
252
Activity
Jun ’25
No Connection To Mobile Data
I installed the new developer beta 26 yesterday, but since that I only have problems with my iPhone. Besides not being able to update the software bc an error appears, I also don‘t have the abbility to use mobile data. If I try to, it only says „could not activate mobile data network“. I already tried to restart the phone, to reset it or to take the SIM out and in
Replies
0
Boosts
0
Views
53
Activity
Jun ’25
TVOS - App Data Stored in Shared App Groups not removing after deletion of apps
Hi, Having a weird issue that I’m noticing on Apple TVs with some apps that are by the same company. I think it’s storing residual user data if if you delete the app and all other apps relating to this. I have even tried deleting every app and reinstalling but we found two apps to be still logged in. Seams like a sandboxing bug and I presume it’s to do with App data stored in the shared app groups. I can only reset the apple tv to remove the user data. The two apps we can see are being persistent is Binge and Kayo by streamotion. We have tried problem solving this in every way imaginable but it’s Interesting that this is allowed to happen on an Apple platform. There is no active user logged into the apple TV with an Apple ID either
Replies
0
Boosts
0
Views
75
Activity
Apr ’25
iPadOS 26
I launched Amazon Prime and bricked my IPad all reset options have failed, any one have some thought?
Replies
1
Boosts
0
Views
73
Activity
Jun ’25
Updated my Apple Watch to watchOS 26 beta to test it — can't pair it now after downgrading iPhone
Hi everyone, I updated my iPhone 16 Pro to iOS 26 beta and my Apple Watch to watchOS 26 beta because I wanted to test out the new features. After a few days of testing, I found the iOS 26 beta too unstable and laggy for daily use, so I downgraded my iPhone back to iOS 18.5 stable. Now my Apple Watch is still running watchOS 26 beta. I tried resetting it to factory settings, hoping that would help, but now I can’t pair it back to my iPhone because it requires iOS 26 again — which I don’t want to reinstall and don't want to use it till it's stable. Is there any way to downgrade my Apple Watch back to a stable version or somehow pair it again with my iPhone running iOS 18.5? Thanks in advance for any help!
Replies
2
Boosts
0
Views
152
Activity
Jun ’25
AR WorldMap Relocalization for Identical houses.
i have a specific requirement as below. i have apartments in which i have 4 units and each unit will be of same layout. furniture etc.. might change but not walls and layout as far as i know. Step1: Now i will enter into one unit, scan the entire unit and save it using RoomPlan Api and at the end of the scan i will be saving the worldmap as well. Step2: i want to use the previously saved worldmap and enter into another unit and want to relocalize with only walls because the furniture might be different. is that possible. if not is there any otherway to achieve this functionality? i really appreciate you valuable time. Thankyou.
Replies
5
Boosts
0
Views
268
Activity
Jun ’25
File/folder Permissions Issues
Currently running 15.5 Beta 3 on a Mac Studio M4. I am unable to read/write to my Home folder from most of my applications. I receive an error basically saying I do not have access rights to the file/folder. If I go to the file directly and open it, it works. I have repaired disk permissions, checked the Sharing & Permissions settings via Get Info, and finally called Apple. Of course, since I am running the beta, the support was quite limited. I will add that I am also unable to open .dmgs that have been downloaded to my Downloads folder. I receive the "The disk image couldn’t be opened. The operation couldn’t be completed. Operation not permitted" error. If I copy the .dmg to another drive, I can open it from there.
Replies
0
Boosts
0
Views
62
Activity
Apr ’25
Wireless CarPlay
i am running iOS 18.5 beta 3 (iPhone 16 pro max) and my phone will not connect wirelessly to any of my vehicles. When connected via the apple certified usb-c cord, it will connect just fine. I have removed all vehicles from my phone, then removed my phone from both vehicle, reconnected, and it still will not connect wirelessly.
Replies
0
Boosts
0
Views
61
Activity
May ’25
Lost a feature for CarPlay in iOS 26 beta 2
When I Installed beta 2 , The multiple columns for widgets disappeared. I want it back ..... Ive tried removing my device in CarPlay under General and adding it again. Didn't work.
Replies
0
Boosts
0
Views
293
Activity
Jun ’25
iCloud file reading and writing (iOS)
On my first attempt at adding iCloud to my existing app this is how far I've gotten. For reasons that I won't go into, the use case for my app does not need coordination. I have successfully made my app write a file to the Documents directory of iCloud and read back that same file without errors. In testing on a real iPhone 13 and iPhone 7 I have verified that my app can write a file to iCloud from the iPhone 7 and then read back that same file on the iPhone 13, so I know that the file truly exists in the cloud. But when I make my app on the iPhone 13 write to iCloud, my app on the iPhone 7 says the file does not exist. Exactly the same build of my app is running in both phones. This is problem #1. Problem #2 is that none of these files appear in the iCloud section of the Files app on either of these Phones, nor do they appear in the iCloud section of my Mac. All devices are signed in to my same Apple account in iCloud. Also my info.plist file in the app contains: <key>NSUbiquitousContainers</key> <dict> <dict> <key>iCloud.com.{my domain}.{my app}</key> <dict> <key>NSUbiquitousContainerIsDocumentScopePublic</key> <true/> <key>NSUbiquitousContainerSupportedFolderLevels</key> <string>Any</string> <key>NSUbiquitousContainerName</key> <string>{my app}</string> </dict> </dict> </dict> <key>UIFileSharingEnabled</key><true/> The iPhone 7 is running iOS 15.8.4 and the iPhone 13 is running iOS 18.3.2. The code that does the writing to iCloud is: NSFileManager *fman = [NSFileManager defaultManager]; NSURL *urlDrive = [fman URLForUbiquityContainerIdentifier: nil]; NSURL *urlDocs = [urlDrive URLByAppendingPathComponent:@"Documents"]; if(urlDocs.path == nil) { NSLog(@"NULL path"); return; //..big problem } if( ! [fman fileExistsAtPath: urlDocs.path] ) { //..need to create the Docs directory NSError *err00 = nil; @try { [fman createDirectoryAtURL: urlDocs withIntermediateDirectories:true attributes:nil error:&err00]; NSLog(@"created the directory"); } @catch (NSException *except) { NSLog(@"Exception creating directory %@", except); } } //..directory is now created NSLog(@"url=%@", urlDocs); NSURL *urlFile = [urlDocs URLByAppendingPathComponent:txtfname()]; NSData *fdata = [@"Hello world" dataUsingEncoding: NSUTF8StringEncoding]; NSLog(@"file url=%@", urlFile); NSLog(@"file Data=%@", fdata); NSError *errorReturn = nil; Boolean ret = [fdata writeToURL: urlFile options: NSDataWritingAtomic error: &errorReturn]; NSLog(@"returned %1d, error=%@", ret?1:0, errorReturn); And the code that does the reading is: NSFileManager *fman = [NSFileManager defaultManager]; NSURL *urlDrive = [fman URLForUbiquityContainerIdentifier: nil]; NSURL *urlDocs = [urlDrive URLByAppendingPathComponent:@"Documents"]; NSLog(@"url=%@", urlDocs); if(urlDocs.path == nil) { NSLog(@"urlDocs.path is NULL!"); return; //..big problem } if( ! [fman fileExistsAtPath: urlDocs.path] ) { //..need to create the Docs directory NSLog(@"It seems the urlDocs folder does not exist"); } NSURL *urlFile = [urlDocs URLByAppendingPathComponent:txtfname()]; if([fman fileExistsAtPath: urlFile.path]) { NSLog(@"file %@ exists", urlFile); [fman copyItemAtURL: urlFile toURL:<#(nonnull NSURL *)#> error:<#(NSError *__autoreleasing _Nullable * _Nullable)#>]; } else { NSLog(@"file %@ DOES NOT EXIST!", urlFile); }
Replies
1
Boosts
0
Views
125
Activity
May ’25
How to Properly Integrate Google IMA SDK for Pre-roll, Mid-roll, and Post-roll Ads in a tvOS App using TVJS and Swift?
I'm working on a tvOS application that plays video content using TVMLKit/TVJS. I'm trying to integrate Google IMA SDK to show pre-roll, mid-roll, and post-roll ads in my app. Here’s what I’ve done so far: Video playback is handled through JavaScript in application.js. Ads are managed in Swift using Google IMA SDK. I use the evaluateJavaScript bridge to control video playback from Swift. I pause and resume the TVJS player (Player object) using a function like startPlayingVideo(value) from Swift based on the ad lifecycle. Current Flow: When the video is about to start, I call loadAds() from JS. This presents a Swift ViewController that handles IMA ad requests. On adsManagerDidRequestContentPause, I pause the video using JS via the bridge. On adsManagerDidRequestContentResume, I resume the video. The Issue: This setup doesn't behave consistently: Sometimes the ad plays in the background and video started playing as well but can not see the ad. Not able to see the post-roll ads Relevant Code Snippets: application.js function startPlayingVideo(value) { if (playerReference != undefined) { if (value == true) { playerReference.play(); else { playerReference.pause(); } } } function playVideo(videoURL) { setup playerReference, push mediaItem, etc. loadAds(); player.present(); } AppDelegate.swift let loadAds: @convention(block) () -\> Void = { DispatchQueue.main.async { let adManagerVC = ViewController() AppDelegate.tvController?.navigationController.present(adManagerVC, animated: true) } } let updateVideoPlayTime: @convention(block) (Double) -\> Void = { time in CustomContentPlayhead.shared.currentTime = TimeInterval(time) } ViewController.swift func adsManagerDidRequestContentPause(\_ adsManager: IMAAdsManager) { showAdUI() playerViewController.player?.pause() } func adsManagerDidRequestContentResume(\_ adsManager: IMAAdsManager) { hideAdUI() // Expecting JS video to resume via bridge } And yeah my IMSDK Implementation is working fine if I am using it with swift AVPlayer. What I Need Help With: Best practice for coordinating video playback between JS (Player) and Swift (IMAAdsManager). How can I sync the playhead reliably between JS and Swift? Is there a better way to pause/resume TVJS player from Swift during ad lifecycle? How to reliably insert mid-roll ads when the playback is primarily controlled in JS? Any insights, code examples, or recommended architecture improvements would be greatly appreciated!
Replies
0
Boosts
0
Views
142
Activity
Jun ’25
i0S26 issue with CarPlay
I just upgraded to iOS 26.0 Now when I use car play, the text messages do not show up, only the notification tone on my phone alarms. So now when I get texts while driving, I need to read my phone to read the text. I tried all the solutions within settings but this is a BIG DRAWBACK compared to the old iOS.
Replies
0
Boosts
0
Views
80
Activity
Jun ’25
iPhone13pro max 美版A2484 iOS 26.0 (23A5276f)
触控按钮里面的截屏功能无法使用。按键组合截屏可以是正常使用。
Replies
0
Boosts
0
Views
60
Activity
Jun ’25
Spatial scenes
Hello I want to ask you why special scenes feature not available for iPhone 11 in iOS 26.
Replies
1
Boosts
0
Views
129
Activity
Jun ’25
Displaying limited contacts list in UIKit
I have an app that was written in UIKit. It's too large, and it would be much too time consuming at this point to convert it to SwiftUI. I want to incorporate the new limited contacts into this app. The way it's currently written everything works fine except for showing the limited contacts in the contact picker. I have downloaded and gone though the Apple tutorial app but I'm having trouble thinking it through into UIKit. After a couple of hours I decided I need help. I understand I need to pull the contact IDs of the contacts that are in the limited contacts list. Not sure how to do that or how to get it to display in the picker. Any help would be greatly appreciated. func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // A text field that displays the name of the chosen contact @IBAction func contact_Fld_Tapped(_ sender: TextField_Designable) { sender.resignFirstResponder() // The contact ID that is saved to the Db getTheCurrentContactID() let theAlert = UIAlertController(title: K.Titles.chooseAContact, message: nil, preferredStyle: .actionSheet) // Create a new contact let addContact = UIAlertAction(title: K.Titles.newContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let openContact = CNContact() let vc = CNContactViewController(forNewContact: openContact) vc.delegate = self // this delegate CNContactViewControllerDelegate DispatchQueue.main.async { self?.present(UINavigationController(rootViewController: vc), animated: true) } } } let getContact = UIAlertAction(title: K.Titles.fromContacts, style: .default) { [weak self] _ in self?.requestAccess { _ in self?.contactPicker.delegate = self DispatchQueue.main.async { self?.present(self!.contactPicker, animated: true) } } } let editBtn = UIAlertAction(title: K.Titles.editContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let store = CNContactStore() var vc = CNContactViewController() do { let descriptor = CNContactViewController.descriptorForRequiredKeys() let editContact = try store.unifiedContact(withIdentifier: self!.oldContactID, keysToFetch: [descriptor]) vc = CNContactViewController(for: editContact) } catch { print("Getting contact to edit failed: \(self!.VC_String) \(error)") } vc.delegate = self // delegate for CNContactViewControllerDelegate self?.navigationController?.isNavigationBarHidden = false self?.navigationController?.navigationItem.hidesBackButton = false self?.navigationController?.pushViewController(vc, animated: true) } } let cancel = UIAlertAction(title: K.Titles.cancel, style: .cancel) { _ in } if oldContactID.isEmpty { editBtn.isEnabled = false } theAlert.addAction(getContact) // Select from contacts theAlert.addAction(addContact) // Create new contact theAlert.addAction(editBtn) // Edit this contact theAlert.addAction(cancel) let popOver = theAlert.popoverPresentationController popOver?.sourceView = sender popOver?.sourceRect = sender.bounds popOver?.permittedArrowDirections = .any present(theAlert,animated: true) } func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // MARK: - Contact Picker Delegate extension AddEdit_Quote_VC: CNContactPickerDelegate { func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) { selectedContactID = contact.identifier let company: String = contact.organizationName let companyText = company == "" ? K.Titles.noCompanyName : contact.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact, style: .fullName)! companyFld_Outlet.text = companyText save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } extension AddEdit_Quote_VC: CNContactViewControllerDelegate { func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool { return false } func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { selectedContactID = contact?.identifier ?? "" if selectedContactID != "" { let company: String = contact?.organizationName ?? "" let companyText = company == "" ? K.Titles.noCompanyName : contact!.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact!, style: .fullName) companyFld_Outlet.text = companyText getTheCurrentContactID() if selectedContactID != oldContactID { save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } dismiss(animated: true, completion: nil) } }
Replies
2
Boosts
0
Views
860
Activity
Jun ’25
WalletUIExtention alert "Unable to add card"
I download a demo from:https://applepaydemo.apple.com/wallet-extensions And I run my WalletUIExtention,but it's failed. This is some key in my info.plist <key>NSExtensionMainStoryboard</key> <string>MainInterface</string> <key>NSExtensionPointIdentifier</key> <string>com.apple.PassKit.issuer-provisioning.authorization</string> <key>NSExtensionPrincipalClass</key> <string>MyAUViewController</string> But I found that deleting the key: NSExtendesionPrincipalClass or NSExtendeionMainStoryboard in the info.plist file can make it run. Should I delete the key ? Whitch key ? This is it alert: This it's message: 2025-05-06 09:15:02.946890+0800 WalletUIExt[626:13530] Successfully load keyboard extensions Line: 1 Col:1 2025-05-06 09:15:02.972702+0800 WalletUIExt[626:13597] [xpc.exceptions]<NSXPCConnection: 0x2830c30c0> connection from pid 584 on mach service named com.bank.app.WalletUIExt.viewservice: Exception caught during decoding of received selector __connectToViewControllerFromRemoteViewController:replyHandler:, dropping incoming message. Exception:<NSXPCDecoder: Qx12a82bc00> received a message or reply block that is not in the interface of the remote object (__connectToViewControllerFromRemoteViewController:replyHandler:),
Replies
0
Boosts
0
Views
118
Activity
May ’25
Problème ubs app.
When I open ubs app (Switzerland) : Jailbreak: the Mobile Banking app cannot be used Manufacturer usage restrictions have been removed from this device (Jailbreak). To continue using the UBS Mobile Banking app, please restore your device to the original state. 😧😧😧 ???
Replies
1
Boosts
0
Views
24
Activity
Jun ’25
Why My Terminal Can’t Ping WWW.GOOGLE.COM
I enable to visit the googleUrl , But My Terminal Can’t Click The http://www.google.com ( Use ping http://www.google.com ) . My Popose is to downloading the homebrew , Can’t download ,so I use ping . By the way , I successfully ping http://www.bing.com
Replies
1
Boosts
0
Views
72
Activity
Apr ’25
Pictures
I am running the iOS 26. I am having issues with deleting the pictures. I have checked my iCloud storage and my phone storage and all is good there. Not sure why they will not delete. I have the iPhone 16
Replies
1
Boosts
0
Views
65
Activity
Jun ’25
14Pro can not delete any application after upgrade system18.4
14Pro can not delete any application after upgrade system18.4
Replies
1
Boosts
0
Views
98
Activity
Apr ’25