Discuss hardware-specific topics related to iPhone.

Posts under iPhone tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Safari returns 0 for --safe-area-inset-bottom when the toolbar is hidden
Safari is returning 0 for --safe-area-inset-bottom when I use getComptutedStyle method on Iphones running on ios +15 both on portrait and landscape mode when the toolbar is hidden. I can guess that it's desired when the address bar is on the bottom and is hidden, however, is it supposed to return 0 when the address bar is set to be on the top (like on the ios versions -15) and the toolbar is hidden? Is it intended or an overlook from Safari? Comparison between versions: Safari ios14 hidden top toolbar portrait --safe-area-inset-bottom : 34, Safari ios14 hidden top toolbar landscape --safe-area-inset-bottom: 21 Safari ios 15+ hidden top toolbar portrait --safe-area-inset-bottom : 0, Safari ios 15+ hidden top toolbar landscape --safe-area-inset-bottom: 0
2
2
2.6k
Aug ’23
No Developer Mode option on iOS 16 device.
Hi, I'm really hoping someone can help me. After updating my iPhone 11 to iOS 16 and tried to launch an app from xCode on it, I noticed that I didn't have dev mode enabled. When I went to Settings > Privacy & Security to toggle the Developer Mode on, it wasn't there. There is no Developer Mode option in my settings, the only option and the end of Privacy & Security is Lockdown Mode. I tried so many troubleshooting techniques and spent a lot of time looking for solutions. I tried powering on and off while connected to my macbook with xcode running and again without xcode running. Made sure my device has the latest update (iOS 16.0.2) and my device has trusted the connection to the Macbook as well. I also had the same problem on my girlfriends brand new iPhone 13, I was really hoping it was just my device but no, her device doesn't have the Dev Mode option either. Out of curiosity I asked my friends at work if they had the option but they did not. I even went as far as going into an Apple store and checking the devices on display and they didn't have the option either. And when I asked the staff their, they didn't know why the option wasn't showing up on mine or even their own personal devices. The only source that I have found with the same issue as me is this youtube link (https://www.youtube.com/watch?v=5AEusqQV794), where it mentions that this is an issue with iOS 16 public beta users and not developer beta user and the only way to solve this is by sidloading the app which I am not gonna do. Please note that I am not running beta version on my device. I can't help think that there's something obvious that I'm missing or need to do but just can't find it. Any help or advice will by really appreciated :) Thank you
39
8
67k
Nov ’23
iOS 16 Ruins HDMI functionality
If you use your iPhone to stream to your tv through a lightning adapter Do NOT upgrade to iOS 16. I live in a rural area and don’t have Wi-Fi so we stream tv on my iPhone with a lightning adapter. This has worked great for many years and many iPhones. Ever since I updated to iOS 16 there is not one streaming app that will work through the adapter. I have tried multiple hdmi cords, lightning adapters and tvs and the result is the same. No audio at all and either no video or a video that lags every few seconds. Apple needs to fix their mistake or resign an old iOS so we can revert back.
5
2
4k
Aug ’23
Unlocking Level Lock with apple Watch or Phone
Hello everyone, I purchased a level lock touch earlier this year. It’s a lock I have on my front door and side door. One of the ways it can be unlocked is with an NFC card. You can tap the card and the lock opens. Since the apple devices have NFC, and so does the level lock touch, I figured there must be a way to just unlock the door by tapping my devices. I asked apple about this and they said they couldn’t help me. I reached out to Level and they said apple will be selling a new level lock + which on October 21st which does exactly what I’m wanting to do….for $329! my question is, if both devices have NFC- couldn’t there just be some type of software update to allow this feature to happen. Instead- someone has to purchase a whole new lock!? I know it’s all about money but it just doesn’t make sense to me. does anyone maybe know of a third party app that can read the level lock nfc card and allow me to open the lock by tapping my device? In the mean time I’ll keep looking for another way besides shelling out another 329 for a lock. Smh
2
0
3.6k
Sep ’23
IPhone 14 Pro stuttering in most games when using touch controls
I noticed this strange issue with the iPhone 14 pro and pro max. In many games, when using the on-screen touch controls, there will be a huge amount of stutter and frame drops but connecting a controller and using that makes the game buttery smooth. Why is this happening? Is the display refresh rate confused by touch controls in the latest iOS 16.1? Games where this happens, "Warped Kart Racers, "Genshin Impact", "GTA vice city", "Madden NFL Mobile", "Max Payne".
9
3
6k
Jul ’23
Screenshots - Changing Device Order
Hi all I am sure that this is something obvious that I am missing but I would really appreciate a bit of help. In our App Store listing, the screenshots appear as a default under 'iPad' first, then followed by iPhone. The description also defaults to 'Designed for iPad'. Is there a simple way to change this so that we can show iPhone first? Also, simply for my on-going reference and knowledge, why would the listing default to iPad before iPhone? Many thanks to all.
3
0
896
Sep ’23
Random AirPlay error from iPhone 14 Max attempted connection of tvOS 16.2 public beta
I am getting a periodic error message appearing on my iPhone 14 Pro Max. It pops up occasionally on the Home or Lock screens, and says: AirPlay Unable to connect to "Living Room". Where "Living Room" is presumed to be my 2021 Apple TV 4K. (My HomePod minis are also designated as part of the "Living Room" group.) When this happens, I am not trying to AirPlay to anything, and the Apple TV 4K is off. The streaming box is connected to a Sony Bravia X90J TV which has AirPlay capabilities; it's also off. In my iPhone settings (iOS 16.1.2), I have turned off "Automatically AirPlay to TVs", but that has not fixed the problem. I am running the latest consumer beta of tvOS on the Apple TV 4K, so this may be a bug related to that OS. However, before I report it as such, since it appears on the iPhone, I wanted to check first to see if it's a known iOS issue vs. a problem with 16.2 beta. Thanks.
1
1
1.7k
Jul ’23
Developer Mode setting missing on iPhone
This is the first time I’ve tried to run an Xcode app on my iPhone. To do this, the iPhone must have “Developer Mode” enabled but this settings was not visible on my iPhone. I searched the blog and did not find a suitable solution. Eventually, I got it working so wanted to publish my findings. I am documenting this after trying many things so I am not 100% sure of the magic formula, but “I think” this is what is needed. PROBLEM iPhone -> Settings -> Privacy & Security -> Developer Mode (NOT VISIBLE) ENVIRONMENT iPhone 12 Pro Max running IOS 16.2 MacBook Pro running macOS 12.5.1 Xcode 14.2 CONNECT IPHONE TO MAC (via USB cable) CHECK DEVICE STATUS (in Xcode) Select menu Window -> Devices and Simulators You should see your iPhone but it will show warnings/issues. (e.g. device not in Developer Mode) ADD APPLE ID (in Xcode)  Open your app project in Xcode Select menu Xcode -> Preferences Select Accounts tab Add your Apple ID (It will be listed as a “Personal Team”) SELECT IPHONE AS DESTINATION (in Xcode)  Select menu Product -> Destination -> Choose Destination In the “IOS Device” section, select your iPhone as the destination (NOTE: After doing this, the “Developer Mode” setting was available on my iPhone) iPhone -> Settings -> Privacy & Security -> Developer Mode (Now visible) SELECT DEVELOPER MODE (on iPhone) Settings -> Privacy & Security -> Developer Mode (ENABLE) SELECT APPLE ID AS TEAM (in Xcode)  Select your project in the Project Navigator Select the project in the TARGETS section Select “Signing & Capabilities” tab In the “Signing” section, select the Team as your Apple ID (you previously entered) After this, I had an error and need to modify the “Bundle Identifier” to make it unique. I just added some numbers to the end and it worked. CHECK. DEVICE STATUS (in Xcode)  Select menu Window -> Devices and Simulators This time, your iPhone should appear without any warnings/issues. LOAD APP ONTO IPHONE (in Xcode)  Hit the arrow in Xcode to Start the active scheme. (The App will be loaded onto your iPhone.) RUN APP (on iPhone) Try running the app and the iPhone will not allow it since you have not authorized apps from this developer. Goto Settings -> General -> VPN & Device Management Authorize your Apple ID to run apps on this phone. You should now be able to run the app without issue.
3
0
8.7k
Jul ’23
Touch layout not matching UI layout on iPhone after waking device when .sheet is open
In a SwiftUI app on iPhone when the device is put to sleep by pressing the power button, while the app is presenting a .sheet, waking the device will result in the touch layout to not match the UI layout. See attached project to reproduce the issue. This happens with Xcode 14.2, targeting iOS 16.0. Steps to reproduce (assuming the app has been built an running on a real device, xcode project linked at the bottom): Tap the “Hello World” button. This opens a plain sheet with a fully green color content Push the device’s power button to put it to sleep Push the device’s power button again to wake the device Optionally unlock the device if needed Dismiss the opened green sheet (the app should still be open and displaying the sheet after waking the device) Try to tap the “Hello World” button again. Observed behavior: the area required to tap to activate the button no longer matches the UI and you have to tap below the button to activate it. Desired behavior: after waking the device and dismissing the sheet, the touch and ui layout should still be correct. Demonstration XCode project
9
3
2.5k
Sep ’23
How to clear Bluetooth LE cache manually in iOS 16?
I have a BLE peripheral I have connected to before with an iPhone running iOS 16 (via my app). The peripheral has a utility to change its name. After the name change my app still displays the old name. I've run into this issue before, a year or so ago, under an older version of iOS. Performing a reboot of the phone would clear the cached name and allow the new name to appear. This remedy no longer works in iOS 16. I have verified with another iOS device and an Android app that the new name is being advertised. I monitor for a name change with peripheralDidUpdateName but that function never gets called. How do I clear the cache in iOS 16? I do not need to do this programmatically and I would rather not reset the iPhone, which WILL work.
1
0
1.3k
Aug ’23
Problem: App Cannot be installed because its integrity could not be verified
Hi, I am currently coding an App using Xcode (Swift). For installing my app on devices I make us of over the air installation (OTAI). When ever I want to test it on my own device and I download & install it there is no problem at all. But when I try to install it on a third IOS device, the error "App Cannot be installed because its integrity could not be verified" appears. In general, I want the App to be installable through OTAI. It will not be listed on the AppStore. When archiving the app on Xcode, I use following options: Ad Hoc Additional Options: ✅ Include manifest for over-the-air-installation My URLs Automatically manage signing and then I just export and upload the IPA on https://installonair.com. Thank you for helping me! :)
1
1
565
Sep ’23
extrinsicMatrix inside AVCameraCalibrationData
In regards to the extrinsicMatrix attribute of the AVCameraCalibrationData class, the description provided is as follows: A matrix relating a camera’s position and orientation to a world or scene coordinate system. I'm trying to build an app for 3D reconstruction/scanning that only uses the AVFoundation framework (not ARKit). I'm able to extract RGB frames, depth maps, and the camera's intrinsic matrix. However, the extrinsicMatrix is always an identity matrix. The documentation mentions this: The camera’s pose is expressed with respect to a reference camera (camera-to-world view). If the rotation matrix is an identity matrix, then this camera is the reference camera. My questions are: Does the extrinsicMatrix param refer to a global coordinate system at all? If so, which coordinate system it is? Are there settings to configure that would trigger the extrinsicMatrix to change according to camera movement? If the extrinsicMatrix can't be used in this manner, can you recommend another way to estimate camera motion between frames to provide accurate 3D reconstruction? Thanks in advance, and I'd be happy to provide more info if needed. I'm using an iPhone 14 Pro and the .builtInDualWideCamera as the AVCaptureDevice.
1
1
746
Oct ’23
FPS Drop in PUBG - 14 Pro Max While Guided Access or Screen Recording is on.
I am facing an issue while playing pubg on 14 pro max with guided access on or while screen recording. Whenever one of these feature is on, there is a lot of fps drops. It doesn't matter if I just started playing or if phone's temprature is high, but there's no 90 fps. With both these features off, I get 90 fps. Can someone help me with this issue?
2
1
2.8k
Sep ’23
WKWebView displays white screen on some devices
Hello, I have an app that only contains a WKWebView and loads an URL at startup and that is almost all. It has been working fine for years but for about a month (I guess) some clients reported only whitescreen comes up when the app is opened. I have no idea what has changed and since it does not happen any of my device I cannot investigate what is wrong. I've been reported that it shows white screen on iPhone X (iOS 16.5.2) and also on iPhone 14 Pro Max as well. But it is running completely fine most of the devices, including my iPhone 11. The whole code is like this: // // ViewController.swift // import UIKit import WebKit class ViewController: UIViewController { var webView: WKWebView! var request: URLRequest! @IBOutlet var webViewContainer: UIView! override func viewDidLoad() { super.viewDidLoad() NSLog("View loading...") // 1 let contentController = WKUserContentController(); contentController.add( self, name: "route" ) // 2 let config = WKWebViewConfiguration() config.userContentController = contentController let url = URL(string: "https://www.someurl.com/m/?app=ios")! let request = URLRequest(url: url) webViewContainer = UIView() // 3 webView = WKWebView(frame: webViewContainer.bounds, configuration: config) webView.allowsBackForwardNavigationGestures = false webView.translatesAutoresizingMaskIntoConstraints = false webViewContainer.addSubview(webView) webView.leadingAnchor.constraint(equalTo: webViewContainer.leadingAnchor, constant: 0).isActive = true webView.trailingAnchor.constraint(equalTo: webViewContainer.trailingAnchor, constant: 0).isActive = true webView.topAnchor.constraint(equalTo: webViewContainer.topAnchor, constant: 0).isActive = true webView.bottomAnchor.constraint(equalTo: webViewContainer.bottomAnchor, constant: 0).isActive = true /* DispatchQueue.main.async { self.webView.load(request) } */ webView.load(request) view = webViewContainer NSLog("View did loaded.") } @available(iOS 10.0, *) func startNavigation(dict: NSDictionary) { let lat = dict["lat"] as? Double ?? 41.0000 let lng = dict["lng"] as? Double ?? 28.000 openMaps(latitude: lat, longitude: lng, title: "Hakan Altın") } @available(iOS 10.0, *) func openMaps(latitude: Double, longitude: Double, title: String?) { let application = UIApplication.shared let coordinate = "\(latitude),\(longitude)" let encodedTitle = title?.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "" let handlers = [ ("Apple Maps","http://maps.apple.com/?q=\(encodedTitle)&ll=\(coordinate)"), ("Google Maps", "comgooglemaps://?q=\(coordinate)"), ("Yandex Maps","yandexmaps://build_route_on_map/?lat_to=\(latitude)&lon_to=\(longitude)"), ("Waze", "waze://?ll=\(coordinate)"), ("Citymapper", "citymapper://directions?endcoord=\(coordinate)&endname=\(encodedTitle)") ] .compactMap { (name, address) in URL(string: address).map { (name, $0) } } .filter { (_, url) in application.canOpenURL(url) } NSLog("Navigation apps count:\(handlers.count)") guard handlers.count > 1 else { if let (_, url) = handlers.first { application.open(url, options: [:]) } return } let alert = UIAlertController(title: "Please choose navigation application", message: nil, preferredStyle: .actionSheet) handlers.forEach { (name, url) in alert.addAction(UIAlertAction(title: name, style: .default) { _ in application.open(url, options: [:]) }) } alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) self.present(alert, animated: true, completion: nil) } } extension ViewController:WKScriptMessageHandler { func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { NSLog("Command received from browser") if message.name == "route", let dict = message.body as? NSDictionary { if #available(iOS 10.0, *) { startNavigation(dict: dict) } else { // Fallback on earlier versions } } else { NSLog("Unknown browser command?!"); } } } // // AppDelegate.swift // import UIKit @available(iOS 13.0, *) @main class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } // MARK: UISceneSession Lifecycle func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) { // Called when the user discards a scene session. // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. // Use this method to release any resources that were specific to the discarded scenes, as they will not return. } } Note: I've also replaced the URL content with only a red-background TEST page in order to eliminate if any javascript error cause the issue but yet clients still get all white blank screen. Any ideas?
5
1
2.5k
Oct ’23
SwiftUI: NSInternalInconsistencyException _UIDatePickerContainerViewController
We had a crash in our app which got reported on sentry. This crash happened in the latest iOS 16.5.1. We've a view developed with SwiftUI which is loaded using UIHostingViewController inside an app developed with UIKit. Can someone guide me here what could be the reason for this as this is not reproducible? This UITargetedPreview initializer requires that the view is in a window, but it is not. Either fix that, or use the other initializer that takes a target. (view: <UIDatePickerIOSCompactView: 0x105033150> => <UIDatePicker: 0x1050103e0> => <TtGC7SwiftUI16PlatformViewHostGVS_P10$1b3477ba832PlatformViewRepresentableAdaptorVS_P10$1b34536b028UIKitDatePickerRepresentable: 0x105011390>) OS Version: iOS 16.5.1 (20F75) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Crashed Thread: 0 Application Specific Information: This UITargetedPreview initializer requires that the view is in a window, but it is not. Either fix that, or use the other initializer that takes a target. (view: <_UIDatePickerIOSCompactView: 0x105033150> => <UIDatePicker: 0x1050103e0> => <_TtGC7SwiftUI16PlatformViewHostGVS_P10$1b3477ba832PlatformViewRepresentableAdaptorVS_P10$1b34536b028UIKitDatePickerRepresentable__: 0x105011390>) Thread 0 Crashed: 0 CoreFoundation 0x3354f7cb4 0x3354ee000 + 164 1 libobjc.A.dylib 0x3276203cc 0x327608000 + 56 2 Foundation 0x329f43568 0x329a62000 + 184 3 UIKitCore 0x339e48ad0 0x3395cc000 + 184 4 UIKitCore 0x33a5c01ec 0x3395cc000 + 556 5 UIKitCore 0x33a5bf790 0x3395cc000 + 196 6 UIKitCore 0x33a5becc0 0x3395cc000 + 64 7 UIKitCore 0x33a5bf514 0x3395cc000 + 36 8 UIKitCore 0x339844a04 0x3395cc000 + 1120 9 UIKitCore 0x339719eb8 0x3395cc000 + 40 10 UIKitCore 0x339d310f8 0x3395cc000 + 316 11 UIKitCore 0x33987e49c 0x3395cc000 + 112 12 UIKitCore 0x33976c434 0x3395cc000 + 68 13 UIKitCore 0x33976c368 0x3395cc000 + 164 14 UIKitCore 0x33976c27c 0x3395cc000 + 492 15 UIKitCore 0x33960abe4 0x3395cc000 + 104 16 UIKitCore 0x339ac9c14 0x3395cc000 + 68 17 UIKitCore 0x339c1a4ac 0x3395cc000 + 80 18 UIKitCore 0x33a27ec88 0x3395cc000 + 140 19 UIKitCore 0x33a27e1e4 0x3395cc000 + 88 20 CoreFoundation 0x3355c1124 0x3354ee000 + 24 21 CoreFoundation 0x3355cd7b0 0x3354ee000 + 172 22 CoreFoundation 0x3355525e4 0x3354ee000 + 240 23 CoreFoundation 0x3355680d0 0x3354ee000 + 824 24 CoreFoundation 0x33556d3e8 0x3354ee000 + 608 25 GraphicsServices 0x3abf25358 0x3abf24000 + 160 26 UIKitCore 0x3399696e4 0x3395cc000 + 884 27 UIKitCore 0x339969348 0x3395cc000 + 336 28 ABC 0x203081088 0x202edc000 + 1724552 29 <unknown> 0x1cda1adec 0x0 + 7744892396 Below is the SwiftUI code for DatePicker struct CustomDatePickerView: View { @SwiftUI.Binding var diaryEntryDate: Date @ObservedObject var viewModel: DiaryEntryViewModel var body: some View { HStack(spacing: 2) { DatePicker("", selection: $diaryEntryDate, in: ...Date(), displayedComponents: .date) .id(diaryEntryDate) .environment(\.locale, Locale(identifier: "us")) .clipped() .labelsHidden() .foregroundColor(Color(.primaryDarkColor ?? .blue)) .colorInvert() .colorMultiply(Color(UIColor.primaryDarkColor ?? .black)) Image("arrowDropDown") .frame(width: 10, height: 5) .onChange(of: diaryEntryDate) { newValue in viewModel.calendarDate = diaryEntryDate } } .frame(maxWidth: .infinity, maxHeight: 52.0) .accentColor(Color.black) .background(Color(.primaryLightColor ?? .blue)) } }
0
0
377
Jul ’23
IOS 16 Issues: Apple's Restrictive Customization Options May Push Users Toward Android
I recently upgraded to iOS 16, after having used iOS 15 for what seems like forever. I must say, it has its pros and cons, but you can't really change the style of your notifications anymore. I seriously can't take it anymore, with Apple not allowing its users to adjust the phone to their preferences. If I want my notifications to show up from top to bottom, then they should let me do it. It's NOT the decision of your designers. Issues like this are slowly pushing me to consider switching to an Android
2
0
389
Jul ’23
Fix for "Apple ID Verification Failed" after iOS 17 v3 Beta Update
After installing the latest iOS 17 v3 update on my iPhone 12 Pro, the setup assistant appeared. I chose my Wi-Fi network and then an error appears that "Verification Failed: There was a problem connecting to the server." It then just stays on that screen. I was about to DFU restore my device - as removing Find my iPhone, trying on Cellular, and restarting didn't work. But luckily, I had Siri enabled! The FIX: Use Siri (holding down the power button for 1 second) from the post-update intro screen and ask it turn on AirPlane Mode. Once Airplane Mode was on, it let me skip the connect to Wifi section and I was in - as cellular was also disabled! No DFU needed!
24
5
7.2k
Aug ’23