iOS app reject because of healthkit - ios

I am using HealthKit in my app to read users daily steps data and for that I enable HealthKit in my app.
I uploaded app without NSHealthShareUsageDescription and NSHealthUpdateUsageDescription key in info.plist.
Apple rejected the app as follow and says this both key must be in info.plist.
NSHealthUpdateUsageDescription - Read your daily steps data for calorie count data
NSHealthShareUsageDescription - Share workout data with apps.
I added that key and upload again.
now app rejected with this reason.
Design - 4.2.1 Your app uses the HealthKit or CareKit APIs but does not indicate integration with the Health app in your Application.
any idea how can I approve it?

From the App Store Review Guidelines
4.2.1 Apps should use APIs and frameworks for their intended purposes and indicate that integration in their app description. For example, the HomeKit framework should provide home automation services; and HealthKit should be used for health and fitness purposes and integrate with the Health app.
It sounds to me that Apple have looked at your app and for some reason, it looks to them as if you're not actually using the step data for anything useful to the user. Does your app actually use the step data and present it back to the user in any meaningful way?
The only other thing I think they might mean is that they don't like the wording you chose for NSHealthShareUsageDescription/NSHealthUpdateUsageDescription (you're supposed to clearly state the purpose why your app needs access to health data).
Edit: Another thought, perhaps your app description doesn't mention that it's an app that uses healthkit/step data.

I recently had the same issue and found the solution.
I was able to pass the review with clearly stating “this app integrates with the Health app” in the app description of App Store Connect.
That was a weird case cuz the rejection caused the meta data and seems like I didn't have to revise my app any more although the review status was "Binary Rejected".

just update your app description on the AppStore to indicate your app integrates with apple health app (HealthKit) and why it used (purpose). for example add to your app description something like : we integrate with the health app (HealthKit) to read and track your steps data and show them in a beautiful way.

Got rejected thrice because of this before being accepted. Here is what I was doing wrong:
I only had HealthKit Capability for my Debug Profile. Make sure that you have HealthKit Capability enabled for your Release Profile as well or just add it for "All"
I usually have different Xcode signing profiles for development, testing and production. Make sure that you choose the correct signing profile when submitting your app for review. Verify the capabilities added to each profile from Apple Developer > Certificates, Identifiers, Profiles > Profiles > Capabilities
Moreover, I added app screenshots showing how health data was used to the app store screenshot section - since they mention in the review that you need to have indicators in the User Interface as well to indicate HealthKit integration. I also updated the app description to say that my app integrates with the Apple Health App.

Related

Cannot remove App Privacy even after removing AdMob

I wanted to remove AdMob from my iOS app, so I remove all traces of AdMob, and make sure that info.plist does not have NSUserTrackingUsageDescription, no external framework used, and no traces of NSUserTrackingUsageDescription in my codes (global search in Xcode not found).
However, previous version has setup App Privacy in AppStore Connect.
Uploading a new build I can remove all entries in App Privacy except for one (?): Data Types - 1 data type collected from this app: Product Interaction
And I cannot remove this one: when selecting not collecting info, I got this error message:
Your app contains NSUserTrackingUsageDescription, indicating that you will request permission to track users. You must indicate which data types are tracking users. If this is incorrect, update your app binary and upload a new build to App Store Connect.
What shall I do? And what is this Product Interaction tracking? (The rest can all be reset to not tracking except this one.)
Workaround:
For anyone still experiencing this issue, I just wanted to share that I was able to overcome this by submitting an appeal to the App Review Board after my binary was rejected.
I received a response to my appeal two days later. They did not acknowledge the problem—rather, they simply stated that they would proceed with the review and that my binary would be approved shortly, while reminding me to update my App Privacy information prior to my next submission. A day later, my app update was approved and Ready for Sale.
I also submitted a bug report, in hopes that this will be properly fixed for others someday soon.
Feedback Assistant (bug reporting)
Background:
The issue appears to be that the App Privacy page in App Store Connect is looking at the binary of your current release (the one live on the app store) to determine if you use NSUserTrackingUsageDescription. It's a Catch 22 where you can't remove "Advertising Data" from your App Privacy page until your new binary is accepted, but they won't accept a new binary until you remove "Advertising Data" from your App Privacy page.
There are two popular threads on the Apple Developer Forums with many users experiencing this same problem:
Can not update your app privacy information about tracking user
https://developer.apple.com/forums/thread/678920
Cannot remove App Privacy after removing AdMob and tracking
https://developer.apple.com/forums/thread/679585?login=true

custom iOS app availability in public app store

I've an iOS app.
But I've several issues with my "Ready for Sale" app.
My app is distributed as custom app.
But users are unable to install the app with a "redemption code".
I tried to explain to them but very few have got it.
Others were getting discouraged with my custom app implementation. They're asking why it's not available in app store.
So I need to make available my app in app store. So that all user can download the app from the app store like any other app.
How can I make my custom app available in app store for download.
Distributing an app in the AppStore, is fairly simple but there are some conditions:
You have to be a a registered Apple Developer, which means you have to pay the USD 100 fee, you can join here
Your app must follow App Store guidelines: read them here
Since any apple user can download your app, you must find a way to allow only your users to use the app it, it could be a user/password or any way your find appropriate
Once an app has been marked for distribution as a custom app it cannot be made available as a general App Store app.
You can take your existing source code and change the bundle id, effectively making it a new app. You can then set up a new app record in App Store Connect for this new bundle id and submit it for review by Apple.
You should be aware that if the app targets a specific or limited audience then it may not be approved for the App Store.

Expo app 'Your app is using the Advertising Identifier (IDFA)'

I am trying to upload an app to the App Store and every time I upload a binary Apple insists that my app is using ads when I have never implemented such a thing. I reviewed the docs and removed all code involving ASIdentifier and adIdentifier I'm not quite sure what I'm missing.
What can I do to resolve this issue?
Expo docs for Deploying to App Stores: https://docs.expo.io/distribution/app-stores/
Apple will ask you whether your app uses the IDFA: the answer is "yes." This is because Expo contains the Facebook and Branch SDKs, which contain code for collecting the IDFA, and you'll need to check a couple boxes on the Apple submission form. See Branch's Guide for which specific boxes to fill in.

Apple rejection for using HealthKit [duplicate]

I am using HealthKit in my app to read users daily steps data and for that I enable HealthKit in my app.
I uploaded app without NSHealthShareUsageDescription and NSHealthUpdateUsageDescription key in info.plist.
Apple rejected the app as follow and says this both key must be in info.plist.
NSHealthUpdateUsageDescription - Read your daily steps data for calorie count data
NSHealthShareUsageDescription - Share workout data with apps.
I added that key and upload again.
now app rejected with this reason.
Design - 4.2.1 Your app uses the HealthKit or CareKit APIs but does not indicate integration with the Health app in your Application.
any idea how can I approve it?
From the App Store Review Guidelines
4.2.1 Apps should use APIs and frameworks for their intended purposes and indicate that integration in their app description. For example, the HomeKit framework should provide home automation services; and HealthKit should be used for health and fitness purposes and integrate with the Health app.
It sounds to me that Apple have looked at your app and for some reason, it looks to them as if you're not actually using the step data for anything useful to the user. Does your app actually use the step data and present it back to the user in any meaningful way?
The only other thing I think they might mean is that they don't like the wording you chose for NSHealthShareUsageDescription/NSHealthUpdateUsageDescription (you're supposed to clearly state the purpose why your app needs access to health data).
Edit: Another thought, perhaps your app description doesn't mention that it's an app that uses healthkit/step data.
I recently had the same issue and found the solution.
I was able to pass the review with clearly stating “this app integrates with the Health app” in the app description of App Store Connect.
That was a weird case cuz the rejection caused the meta data and seems like I didn't have to revise my app any more although the review status was "Binary Rejected".
just update your app description on the AppStore to indicate your app integrates with apple health app (HealthKit) and why it used (purpose). for example add to your app description something like : we integrate with the health app (HealthKit) to read and track your steps data and show them in a beautiful way.
Got rejected thrice because of this before being accepted. Here is what I was doing wrong:
I only had HealthKit Capability for my Debug Profile. Make sure that you have HealthKit Capability enabled for your Release Profile as well or just add it for "All"
I usually have different Xcode signing profiles for development, testing and production. Make sure that you choose the correct signing profile when submitting your app for review. Verify the capabilities added to each profile from Apple Developer > Certificates, Identifiers, Profiles > Profiles > Capabilities
Moreover, I added app screenshots showing how health data was used to the app store screenshot section - since they mention in the review that you need to have indicators in the User Interface as well to indicate HealthKit integration. I also updated the app description to say that my app integrates with the Apple Health App.

Is it possible that an iOS app with improper IDFA information passes App Store review?

I released an iOS app to App Store with Facebook SDK integrated.
During the submission, Itunes Connect asked me about IDFA:
Does this app use the Advertising Identifier (IDFA)?
and I checked "No".
It passed App Store review successfully. There was no problem.
And after the submission, I found several links saying that, in my case, "Yes" should have been chosen for the question:
Does the Facebook SDK use IDFA for Mobile App Installs?
IOS application that uses Facebook SDK, which options should be selected on iTunes Connect IDFA?
https://www.facebook.com/help/audiencenetwork/414857395387956
My app don't serve advertisements but logs app installs and some events.
For instance, it contains codes like:
FBSDKAppEvents.activateApp()
FBSDKAppEvents.logEvent("Some events")
Now it seems quite obvious that my app uses IDFA and it was a mistake that I chose "No".
But the only thing confusing me is that my app passed review without any rejection.
Is it possible that an iOS app with improper IDFA information passes App Store review?
In my opinion, if Apple verifies IDFA information by human, I think it might be possible and my first submission was just lucky.
But if it is verified by the machine, then my answer ("No") was right and I am going to choose "No" again.
Is there anybody with similar experiences?
Finally, I tried and got the answer.
I submitted the new version of my app with checking "Yes" to the IDFA question and it passed the review.
There was no changes related with FBSDK. That is, from the point of view of IDFA, those binaries can be considered to be same.
So the conclusion is:
An iOS app with improper IDFA information can pass the App Store review (possibly Apple's mistake?)
The fact that your app has passed the review without rejection doesn't guarantee you provided the right IDFA information. Don't believe history and always choose the right answer for that time

Resources