while testing i noticed one interesting thing,I’m using Microphone ,location, camera Permissions in my app and asking for permissions from a user. When i install app for first time i sees default asking permissions pop up. And everything work fine. But if i will remove app from phone and install it again and again the permissions popups wont appear , but all working fine. if i visit app settings all permissions are granted already(which was given in last installation).
is this happen because of cache issues?. and how to resolve this issue ?
Related
We Added the ATT(App Tracking Transparency) into our latest Application release, and everything worked fine except for one thing.
When our users try to download the application in the App Store through the Apple Ad specifically, the ATT permission isn't prompting and the data tracking permission is set to disabled by default.
When we try to download on the same device not through the Apple Ad, when we ran the application we see the ATT permission when we launch the application
If anyone has any input or value to add for this issue it will be very helpful and appreciated.
iOS seems to cache the ATT permission for a while.
Try to restart your iOS device after the app was installed via "apple ads click" and then removed.
After the reboot of your iOS device and installing the app from app store the permission prompt should appear.
My permission appears again after I restart my device as #Jochen Holzer suggested.
Note: The permission always appear after uninstall > install in my colleague, but restarting the device is needed in my case. I assume that we have different version. Mine is 14.4 and hers is 14.1
want to upvote his answer but I lack of point
I am doing application related to camera,photos and GPS.Whenever i open the app i need to ask the permissions to user on every installation.This is working fine in iOS 10.But in iOS 9,if i uninstall and install again,permission popups are not coming,but in iOS 10 it's working correctly.Please suggest how to get the popups every installation in iOS 9 also.
This issue will appear if in your "info.plist" file contains "CFBundleDisplayName" with empty string value. Just enter your app name there. Also if that is not working try to reset the settings by below 3 way,
First option
As described in Technical Note TN2265 :
You can achieve the latter without actually waiting a day by following these steps:
Delete your app from the device.
Turn the device off completely and turn it back on.
Go to Settings > General > Date & Time and set the date ahead a day or more.
Turn the device off completely again and turn it back on.
Second option
When you delete an app the iOS keeps the permission of your app mapped to your app's bundle id, it keeps the data for day. So you can also change your app's bundle id to test it out.
Third Option
Reset all location and privacy permissions : Settings -> General -> Reset -> Reset Location & Privacy. Note that this will reset all location and privacy permissions for all the apps on that device.
With iOS 9 it will take around 2 days to remove the permission from OS. Within 2 days if you install that app again which you installed previously and accepted permissions previously then it will not ask for the permission again. If the install is after 2 days then it will ask for permission.
If you want it to give a try then you can check it after increasing the date with 2-3 days then install application. Then it will definitely ask for the permission.
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}'"
About two years ago, I ran into a problem where my app will crash immediately on start up and it turned out to be a permission error. I got a solution and I haven't had this problem lately. The problem came back with the latest release of my app. I gave my app proper permissions the same way I had since the problem first occurred. I installed the compiled app on my iPod Touch in /Applications, give it the proper permissions via SSH, make sure it runs on the iPod, the copy it back to my Mac, zip it up and submit it to the repo. I never had a problem with this method until now. Even if I give the app proper permissions on the Mac and then zip it up, the app still does not have the proper permissions after being zipped up. My question is how can I make sure my has the proper permissions so that it will run on the users device when I distribute it? Just to be clear, I'm not asking how to give the app execute permissions, I know how to do that.
Usually, I was able to test different flows for mic / push permission on iOS by deleting the app and then launching again from XCode. However, recently I am unable to do so because even after deleting the app, when I relaunch the app, instead of asking for permission, it somehow brings back the permissions that I had given to the deleted app. This means it is impossible for me to test alternate flows for asking permission. Has anyone else faced this problem? Can someone guide me to getting back to being asked for permission?