carekit-apple / CareKit

CareKit is an open source software framework for creating apps that help people better understand and manage their health.
https://www.researchandcare.org
Other
2.39k stars 441 forks source link

App Rejected Because it "uses HealthKit, but doesn't include any primary features" #531

Open MihirJoe opened 3 years ago

MihirJoe commented 3 years ago

I recently submitted my app that utilizes CareKit. The app's main goal is to allow the user to track symptoms and adherence to a specific medication. The data is stored locally on the user's device using the built-in CareKitStore and CoreData. However, this app was rejected and gave me this message:

"We noticed that your app uses HealthKit, but your app does not appear to include any primary features that require health or fitness data.

The intended use of HealthKit is generally to share health or fitness data with other apps or devices as a part of the app's core functionality.

Next Steps

To resolve this issue, please remove any HealthKit functionality from your app, as well as any references to this app’s interactivity with HealthKit from the app or its metadata. This includes removing any HealthKit-related keys in your app's Info.plist as well as removing any calls to HealthKit APIs, including those from 3rd party platforms, from your app."

My app does not utilize HealthKit in any way, but as I did some digging, I found that the CareKit Package Dependency that I have embedded in my project have certain files that make calls to the HealthKit API.

Because I'm not currently utilizing HealthKit, is there anything I can do that will ensure I resolve this issue? I assume removing files from the package dependency is probably a "no-go" as that would cause a variety of other issues.

Thank you!

magray commented 2 years ago

Hi my app just got rejected on the same grounds. What did you do to resolve this?

MihirJoe commented 2 years ago

It's been a while since I resolved this, but if I remember correctly, I went through my project files and removed any "import HealthKit" statements and made sure there was no references at all to HealthKit. Hope this helps!

gavirawson-apple commented 2 years ago

Sorry for the troubles folks!

In the short term, that sounds like a great solution. If you are able to remove those call-sites, consider pushing that to a branch for other folks.

In the long term, we can explore some more durable solutions. One potential route is to separate the HK passthrough store implementation into a "separate" framework that can be manually imported when needed.

marco-theraforge commented 2 years ago

In our CareKit fork we use compilation flags/build targets to include/exclude components like HealthKit to avoid review issues. We use CocoaPods but the same should be achievable with SPM too.