awslabs / aws-mobile-appsync-sdk-ios

iOS SDK for AWS AppSync.
https://awslabs.github.io/aws-mobile-appsync-sdk-ios/
Other
262 stars 130 forks source link

For iOS App, We are using this SDK, We are getting ITMS-91053: Missing API declaration recently because PrivacyInfo needs to be included for 3rd party SDK. #589

Closed nandishyb closed 7 months ago

nandishyb commented 7 months ago

For iOS App, We are using this SDK, We are getting ITMS-91053: Missing API declaration recently because PrivacyInfo needs to be included for 3rd party SDK. https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

We have want to know if the sdk will be updated to handle this issue. Because, AWSCore is using APIs that access NSPrivacyAccessedAPICategoryFileTimestamp and as per Apple Guidelines document (link provided above.) Below is mentioned to be done by the third party SDKs.

_0A2A.1 Declare this reason if your third-party SDK is providing a wrapper function around file timestamp API(s) for the app to use, and you only access the file timestamp APIs when the app calls your wrapper function. This reason may only be declared by third-party SDKs. This reason may not be declared if your third-party SDK was created primarily to wrap required reason API(s).

Information accessed for this reason, or any derived information, may not be used for your third-party SDK’s own purposes or sent off-device by your third-party SDK._

Kindly let me know if when will this be handled? We are using 3.6.2 version of pod of AppSync pod 'AWSAppSync', '~> 3.6.2'

lawmicha commented 7 months ago

Hi @nandishyb, AWS SDK iOS at 2.34.2 has the privacy manifest https://github.com/aws-amplify/aws-sdk-ios/releases/tag/2.34.2 . Can you try upgrading to AppSync SDK 3.6.4 to pick it up?

https://github.com/awslabs/aws-mobile-appsync-sdk-ios/blob/main/AWSAppSync.podspec#L14

s.dependency 'AWSCore', '~> 2.34.0'
nandishyb commented 7 months ago

Hi @lawmicha , Thank you for your response. I will check updating the pod and update here.

leoiandromeda commented 7 months ago

@nandishyb Any update on this? I'm facing same problem with this library. As per my understanding all libraries using NSPrivacyAccessedAPIs should declare that in manifest, so adding that to AWSCore won't cover for this one (I guess). Please let me know if it worked for you.

nandishyb commented 7 months ago

Hi @lawmicha , Thank you. Indeed after I upgrading to the AppSync SDK to 3.6.4, It uses AWSCore at 2.34.2. Indeed it has all the necessary privacy manifest files. After the upgrade , I am not getting "ITMS-91053: Missing API declaration" the this warning anymore .

Hi @leoiandromeda , It works after the upgrade to the AppSync SDK to 3.6.4, which in turn uses AWSCore at 2.34.2

github-actions[bot] commented 7 months ago

This issue is now closed. Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.

nandishyb commented 7 months ago

Since, it is working after the upgrade closing the issue

leoiandromeda commented 7 months ago

@nandishyb Thank you so much for the reply.

But I'm still confused with this one. I found that the AWSCore specifies only NSPrivacyAccessedAPICategoryFileTimestamp in the manifest. But AppSync uses Userdefaults in the code, which means it should declare NSPrivacyAccessedAPICategoryUserDefaults as well.

@lawmicha Any thought on this one?

nandishyb commented 7 months ago

@leoiandromeda I am not sure about AppSync using NSPrivacyAccessedAPICategoryUserDefaults. However, we use in the app and we have added reason in our iOS app PrivacyInfo manifest file.

leoiandromeda commented 7 months ago

@nandishyb Okay. It seems like apple didn't mention AWS related libraries here: Upcoming third-party SDK requirements. So probably they won't be considering these at the moment. This requirement from apple has a lot of grey areas. Anyway, thanks for your time and clarifying that the solution above worked 👍