dji-sdk / Mobile-SDK-iOS

DJI Mobile SDK for iOS: http://developer.dji.com/mobile-sdk/
Other
578 stars 255 forks source link

4.13 Version Missing Purpose Strings #374

Open pskow opened 4 years ago

pskow commented 4 years ago

Hello! Could you describe the usage of: NSMicrophoneUsageDescription NSAppleMusicUsageDescription and NSPhotoLibraryUsageDescription - this is somehow understandable, but not all apps using SDK require such functionality. ?

After updating to 4.13 application is required to add Purpose Strings explaining why such access is needed.

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. The permission NSPhotoLibraryUsageDescription is for downloading photos from the drone and store into your device. The NSMicrophoneUsageDescription is for the Mavic 2 Enterprise with Speaker and Livestream feature.

And we don't have an NSAppleMusicUsageDescription permission request in our sample, seeing the info file. Can you please point out where we have used it? https://github.com/dji-sdk/Mobile-SDK-iOS/blob/master/Sample%20Code/ObjcSampleCode/DJISdkDemo/DJISdkDemo-Info.plist

Also, if you don't want the above feature in your project, you can remove them.

Last, we protect your privacy and see more privacy policy on the website. https://developer.dji.com/policies/privacy/

Thanks,

Luce Luo DJI Developer Support

mitchrsm commented 4 years ago

Facing the same problem upgrading the app from SDK 4.11 to 4.13, now ask me for NSAppleMusicUsageDescription NSPhotoLibraryUsageDescription when trying to upload to appstore

pskow commented 4 years ago

@dji-dev absence of NSAppleMusicUsageDescription in Info.plist from sample code doesn't mean that iOS SDK doesn't require such privilege. I think it can be related to this issue -> https://github.com/dji-sdk/Mobile-SDK-iOS/issues/163

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. I see. @mitchrsm @pskow Can you please show me clearly which step the MSDK app asks an 'NSAppleMusicUsageDescription' request? Is it that Apple refuse to upload to AppStore if missing the 'NSAppleMusicUsageDescription'? Can you please show me the rejected email from Apple if miss the 'NSAppleMusicUsageDescription'?

Thanks,

Luce Luo DJI Developer Support

mitchrsm commented 4 years ago

Here the email from AppStoreconnect after upload the binary:

Dear Developer,

We identified one or more issues with a recent delivery for your app. Please correct the following issues, then upload again.

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSAppleMusicUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

Best regards,

The App Store Team

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. Ok, I will escalate this issue to the engineer to confirm further. It will cost some time and will contact you again once any progress.

Thanks,

Luce Luo DJI Developer Support

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. @mitchrsm Just want to confirm more, does the Apple refuse to upload to the AppStore or just a warning but still allow to upload?

Thanks,

Luce Luo DJI Developer Support

mitchrsm commented 4 years ago

it's NOT possible send the app to appstore i will try with a generic explanation String in Info.plist for NSAppleMusicUsageDescription to see if the app will be rejected or not during the app review.

but the email from apple say "explaining clearly and completely why your app needs the data" so i believe i will be rejected

hdrpano commented 4 years ago

I uploaded my SDK Release 4.13 in the Apple store without this problem.

I use the standards: 4.13 and DJIWidget 1.6.3

DJI-SDK-iOS DJI-UXSDK-iOS DJIWidget

Do not use Bitcode for Xcode builds for SDK 4.13

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. @pskow Thanks for your detail and we will investigate further. Also, you can try to disable the Bitcode as @hdrpano said if you have used it.

Thanks,

Luce Luo DJI Developer Support

Neilfau commented 4 years ago

Im also having the same issue. Will try disabling bitcode.

Neilfau commented 4 years ago

Disabling bitcode does not work for me. To submit an app it still requires those permissions even though we don't use them in the app. When will this be fixed?

Dear Developer,

We identified one or more issues with a recent delivery for your app. Please correct the following issues, then upload again.

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSMicrophoneUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSAppleMusicUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs.

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. @Neilfau This issue has been escalated to the engineer to confirm further. It will cost some time and will contact you again once any progress.

Thanks,

Luce Luo DJI Developer Support

bryanrahn commented 4 years ago

Also seeing the same issues with 4.13 (that didn't exist in 4.12). Any ETA on a fix?

image
dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #37351:

Dear Customer,

Thank you for contacting DJI. The issue will be fixed in the 4.13.1. I can give the exact date but please pay attention to the official release.

Thanks,

Luce Luo DJI Developer Support