I am trying to upload build from Xamarin studio with application loader.
I have set all the Privacy usage description as i was missed to key before (Which were suggested by Apple)
and the keys are following with description :-
1) Location When In Use Usage Description :- Need to access Location for posting latitude longitude for event.
2) Privacy - Camera Usage Description :- This app needs access to the camera to take photos
3) Privacy - Photo Library Usage Description :- This app needs access to photos
4) Privacy - Contacts Usage Description :- For getting list of user contacts
5) Privacy - Calendar Usage Description :- use to set date of event
6) NSBluetoothPeripheralUsageDescription :- [App Name] would like to make data available to nearby bluetooth devices even when you're not using the app.
7)Privacy - Location Usage Description :- Need to access Location for posting latitude longitude for event
Build got validate and uploaded to iTunes successfully.
But for 15-20 minutes i can see only "Processing" in Activity tab in iTunes and when i reload page , its disappear.
My BitCode is Also Disable.
Please Select Requires Full Screen Before giving build. It Will solve your issue.
I solved this issue by just replacing NSBluetoothPeripheralUsageDescription to Privacy - Bluetooth Peripheral Usage Description and apple sent me mail for "The app's Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value"
Related
I have added Privacy - Photo Library Additions Usage Description & Privacy - Photo Library Usage Description.
But none of the keys is asking for user permission to access the photo library.
I have tested in Simulator as well as in real device.
I even tried by adding a single key at a time. Like only Privacy - Photo Library Additions Usage Description or Privacy - Photo Library Usage Description. And also tried by adding both the keys together.
But none of the above scenarios is working for me.
I also added Privacy - Camera Usage Description and that's working perfectly fine. But photo library usage is not asking for user's permission
Any help is appreciated!
Note from Apple:
When using the UIImagePickerController to bring up the user's photo library, your > app doesn't need to request permission explicitly.
After iOS 10, if your app is using PHAsset, PHPhotoLibrary, and PHImageManager, then you need to include NSPhotoLibraryUsageDescription in app's Info.plist file.
Detail info is available here: apple-ref-documentation
Last week i have launched my app to app store after two days i got a metadata rejection from the review due to providing invalid demo account later i provided my valid account after again they came up with other issues that is
Hello,
Thank you for your response and for providing this information.
However, upon further review we noticed that your app does not comply with the following guideline:
Guideline 5.1.5 - Legal - Privacy - Location Services
Your app uses background location services but does not clarify the purpose of its use in the location modal alert as required in the iOS Human Interface Guidelines.
Please see attached screenshots for details.
Next Steps
To resolve this issue, please revise the NSLocationAlwaysUsageDescription value in the Info.plist to specify the intended purpose of using the user's location while the app is in the background.
Resources
For additional information and instructions on configuring and presenting an alert, please review the Requesting Permission section of the iOS Human Interface Guidelines and the Information Property List Key Reference.
We look forward to reviewing your revised app.
Best regards,
App Store Review
But still my app store status is showing metadata rejected.Now what should i do whether i need to update my proper reasons in plist and rebuild to launch my app or else any other steps to follow????
Hi i have also faced the same issue even after adding NSLocationAlwaysUsageDescription with description in info.plist My App has rejected by apple.If we use locationManager.requestAlwaysAuthorization() you need to explain how you are going to use user location. But in my situation While initializing LocationManager i have changed locationManager.requestAlwaysAuthorization() to locationManager.requestWhenInUseAuthorization() Hope it will work for you too.
You need to add the proper reason of why you need the location service in the App.
You can set it by following way
Steps
Go to info.plist file.
Add your reason of accessing location service under key "Privacy -
Location Always Usage Description"
You will see the plist like this after adding the location service
It seems like your application is rejected because of the insufficient justification of using the location services in the background.You should add description for alert why your application is using the location in background in NSLocationAlwaysUsageDescription in info.plist file of your project. As well as you should mention it in your application description as well that why your application is using location services in background.(i.e for geo-fence or track user location.) Also mention that "continuous use of location may drain the battery dramatically" in application description.
By these steps you will be able to successfully submit your application to the apple store.
Add NSLocationAlwaysUsageDescription with description in info.plist
Go to your Project settings and increment the build number.
Upload a new build and submit your app again.
Update your info.plist file and add NSLocationAlwaysUsageDescription key with description.
Change (Increase) your build number (highlighted in attached image)
Re-upload your app to Itunes Store and submit for review.
You Must upload new Binary because your change is in your app's Info.plist file. See Next Step in your rejection message.
After add valid reason in info.plist file. Make app build with higher version.
Go to AppStore and Click on + button With increment app version. Add new Binary after deleting old One. and Upload for Review.
I am currently working with Swift and I'm trying to get a GPS app working for a project I'm working on. I understand that in order to get the user's location, I need there permission through Privacy - Location Always Usage Description.
However, I don't know why but I cant find it, only Privacy - Location Usage Description. Can you help me or explain why?
You can do this in Xcode 8 by following these steps:
Select your .proj file in project explorer
Select a target
Click on the "Info" tab to find your info.plist file
Use the "+" button to add a new key-value pair in this file
Type in "Privacy -" to get the different options available and choose the one that you need (location usage in your case).
Make sure you enter valid reason as a
string value for this new key.
Hope this helps.
I get the following error:
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
Do you know how to fix that?
These are set in the plist for your project. You can add/remove these by navigating to your target info inspector and expanding the "Custom iOS Target Properties" section. For example, one of the entries here in a project of mine is:
Privacy - Camera Usage Description
Allows user to capture a photo or video to upload to their family circle
You can see how this looks here:
You need to go to your Info.plist, add a new row and paste NSPhotoLibraryUsageDescription into the key column. Then in the value column give a description as to why you need to access the user's photo library. Repeat the same step with NSCameraUsageDescription if you intend to use the device's camera.
I just started facing this issue with the iOS 10 GM release. I received an email saying:
To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
Once the required corrections have been made, you can then redeliver the corrected binary.
Regards,
The App Store team
I am using google GoogleSignIn. I am not using Firebase, but when installing GoogleSignIn with cocoa pods, I saw in the logs it automatically installed Firebase.
Is there something we can do other than having to define these keys as my app has nothing to do with camera / photos etc and hence I don't want users to think we are using them.
I notice someone else has also faced this issue:
https://forums.developer.apple.com/thread/62229
Here's a link to a complete workaround from Google:
https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ
More info at that link, but TL;DR version is you have to add three items to your plist:
<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>
in iOS 10 you need to add the key mentioned in below image if you are using camera or photo gallery in your app
In iOS 10 Apple have made it a requirement to define the usage description in the Info.plist for any feature that requires a popup. See http://useyourloaf.com/blog/privacy-settings-in-ios-10/
During the beta program, apps would crash at the time they would show the prompt if the usage description was not set.
It looks like the iTunes Connect validation tools have been changed to look for references in the app to classes that are associated with permission-related objects. If there isn't an Info.plist entry, they reject the binary.
I saw this in one of my own apps where I had an old helper method in a library that detected whether the camera existed or not. Even though the app never called that method, it was being linked into my binary because I did use another method in the same file. That app didn't use the camera and so didn't define the Info.plist entry. And it was rejected. I simply removed my helper method and moved the checks into the other apps that did use it.
However, AdMob seems to have references to the Calendar so an app I have which uses ads, and does not use the Calendar itself, can't be submitted. Thanks Google!
You have to permission of Camera in Info.Plist. goto Info.plist and add below code.
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
See this ref :
Here is the all Privacy Keys, We need to manually add them into the Info.plist with short description.
• Bluetooth Sharing – NSBluetoothPeripheralUsageDescription
• Calendar – NSCalendarsUsageDescription
• CallKit – NSVoIPUsageDescription
• Camera – NSCameraUsageDescription
• Contacts – NSContactsUsageDescription
• Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription
• HomeKit – NSHomeKitUsageDescription
• Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription
• Media Library – NSAppleMusicUsageDescription
• Microphone – NSMicrophoneUsageDescription
• Motion – NSMotionUsageDescription
• Photos – NSPhotoLibraryUsageDescription
• Reminders – NSRemindersUsageDescription
• Speech Recognition – NSSpeechRecognitionUsageDescription
• SiriKit – NSSiriUsageDescription
• TV Provider – NSVideoSubscriberAccountUsageDescription
EDIT: Please refer to the answer above https://stackoverflow.com/a/39476283/1634905
which lists the official workaround by google. NOTE that the workaround is missing an additional key which will be required too: NSCameraUsageDescription
Workaround Solution I used: Google's frameworks for AdMob and GoogleSignIn installs firebase automatically which uses such permissions even though the app never does. After I defined NSCameraUsageDescription in the info.plist, it let me submit without problem hoping that the app won't prompt the user ever so they won't see the text either.
Is it possible that the Google Framework uses some additional system framework that require the user permission (i.e., the user position) and you forget to add the related description in the .plist file! Double check that.
Some of the usage permission description became mandatory in iOS 10.
Fixed on 7.11.0 https://firebase.google.com/docs/admob/release-notes
Make sure you update the SDK
Make sure you're adding this key if you're ESRI's ArcGIS.framework.