I have developed location based application and it is able to get user's location but there is strange thing in it. Under setting->Privacy->Location Services, it is not showing my application. It is only happening with iPhone 6 Plus for other devices it is showing.
I'm pretty late to the game, but I had the same problem on an iPhone 8. The app would just not show up under location services. On other devices it was showing up fine.
The only solution that worked, after spending hours on finding a non-existent bug in my code, was to Reset Location & Privacy in Settings -> General -> Reset.
I had the same problem. Turns out I simply didn't open the app and get to the prompt to allow the location services.
As long as you don't get the prompt and confirm in the app, it will not show in the Privacy->Location list.
Related
After updating to iOS12 and testing the apps build in Xcode 9, we found out that after deleting and reinstalling the app - the user is not prompt again with a question regarding access to the Camera or Gallery.
On iOS11, every time the app is installed, iOS asks for permission.
I tested few random apps from AppStore to see how they behave and the conclution is - some of them do reset the access and some don't. So, I'm completely lost.
Also, as an info, but I'm not 100% sure about this: when there is a time period between deleting and installing the app (more than 1h), even on iOS 12 is asking for permission.
Is there any change there in iOS 12? Do you have any clue how to keep iOS 11 behaviour instead?
Thanks!
The only certain way to test the authorization request process again after deleting your app is (and always has been) to go to the Settings app and choose General -> Reset -> Reset Location & Privacy. This is a major pain because you've now reset all your location and privacy settings.
My other suggestion (and it's only a suggestion) is that you try restarting the device after deletion of the app. Maybe, just maybe, this will cause the device to write something out to disk that will cause it to forget about its previous authorization of this app.
I am a beginner in iOS development and want to fetch user's current location, I have gone through tutorials to fetch current location.
When I run app on iPhone device, location authorization pop-up displayed and after authorize I am able to fetch current location.
Problem which I am facing is when I run app on simulator, I didn't receive authorization pop-up. While if i run same code on other's system with simulator, I received auth popup But is doesn't on my system.
I am using Xcode 8.3.1 to run app. Please help my why auth pop-up doesn't displayed on my system.
Simulators don't have permission to fetch Current Location of users due to nonavailability of GPS. Don't you worry about it. If popup appears on a Device then everything is good.
I'm working on an iOs app written in Swift with a Camera view controller. The first time I launched this view controller, the permission dialog was shown and I allowed the access to the camera and to the photo library. However, I noticed an issue while allowing the library permission and I would like to be able to reproduce it in order to fix it... But to do that, I need to re-show this permission dialog. However, even if I delete the app and reinstall it, I never get this permission dialog again.
How to get it again so I can fix my issue?
There is no perfect solution
The recommended way is go to "Settings" app
(General > Reset > Reset Location & Privacy).
But as you say, it resets all the apps.
Another option is to change the bundle identifier of the app, so it's considered a new app and it will ask again.
The third option is to delete the app, change your device time for more than 24 hours forward, turn the device off and turn it on again.
I'm not certain that it works in iOS 9, but in iOS 8 the system expired the privacy settings once the application had been uninstalled for 24 hours. You could simulate it by removing the application, moving time ahead a day in Settings and then reinstalling the application.
There's also Reset Location & Privacy, but that's a global reset.
You can go in Settings -> Privacy -> Camera and disable your app.
If you're jailbroken, you can run these shell commands on the device to reset all the permissions dialogs for just your app:
export bundleIdentifier="com.yourcompany.product"
sqlite3 /private/var/mobile/Library/TCC/TCC.db "DELETE FROM access WHERE client = '${bundleIdentifier}'"
I have been working with iBeacons for the last few months. I have just recently updated to iOS8 Beta 1 and have found that region monitoring and ranging no longer works on my beacon apps.
It is being caused by permissions. I now get a kCLErrorRegionMonitoringDenied error returned when attempting to start region monitoring. This error corresponds to a user deselecting the location permissions for the app.
If I go into Settings>Privacy>Location Services I get some weird behaviour. Sometimes my app appears on this list with no setting chosen, and other times it doesn't appear on the list at all. If I manually change the setting to 'Allow' and then close Settings, then go back to Settings>Privacy>Location Services I have the same problem - the app might not appear on the list or the settings are not set.
This is obviously a bug in iOS8 beta, just wondering if anyone else has this problem and/or found a workaround?
For iBeacons in iOS8, you must use requestAlwaysAuthorization, not requestWhenInUseAuthorization
(via: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/)
I don't know what the issue is, but I was having the same problem, I found that going back to Xcode before the beta solved my issue. I wish I could give a better answer than that, but I guess the problem might be somewhere in Xcode and not ios 8.
I actually did more research into this and it seems ios 8 requires some authorization setup before trying to use location services. This might help answer your question further. Here are some links to direct documentation that you might find useful.check out the requestWhenInUseAuthorization documentation on info plist key This should help keep you in Xcode 6 with ios 8. sorry if I wasn't more helpful I'm fairly new to ios development.
So when the app is closed (not in background, but totally closed), how app can get didEnterRegion delegate method call when user enter a region? And how I can simulate that in simulator.
Thanks.
Your app will be reopened (into the background) to handle the update. You can not test this in the simulator.
In the simulator go to the 'Debug :: Location' submenu and either select a test location or enter lat+long data under 'Custom Location...'
If your application is not running, then it can't get location services. However, if you can add a 'Passbook' aspect to your Application then you can get Passbook to monitor a location for you. See https://stackoverflow.com/a/14040276/1286639
If you use region monitoring, your app will be restarted by the system.
It's hard to debug because when you close the app, the debugger will detach.
Try this:
Start the app on a connected phone and simulate new locations using Xcode. To do this, create a GPX file with multiple locations. When the debugger is running, there is a little location arrow next to the start/stop/pause buttons that allows you to select the GPX file with your track. Xcode will then simulate moving from point to point in the GPX. You can verify this by opening the Maps app and watching the location move around.
When you kill your app, the debugger will detach, but you can reattach with Debug->Attach to process->Your App Name. That will get you the console back, but you won't be able to continue simulating the location in the running app. Also it's not clear if the simulated location resets back to normal mode when you do this. I get different results all the time.
Region monitoring is flaky at best. I have been trying to get reliable results since iOS 5 and it's a real mess with unpredictable results...