Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App Store rejection - HealthKit #13

Closed
cannyboy opened this issue Oct 28, 2014 · 10 comments
Closed

App Store rejection - HealthKit #13

cannyboy opened this issue Oct 28, 2014 · 10 comments

Comments

@cannyboy
Copy link

We just got an App Store rejection:

We found that your app uses public APIs in a manner not prescribed by Apple, which is not in compliance with the iOS Developer Program License Agreement, as required by the App Store Review Guidelines.

In particular, section 3.3.1 of the iOS Developer Program License Agreement specifies:

"Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs"

Specifically, we found your app uses a HealthKit API (HKHealthStore) with no HealthKit features or functionality.

We actually don't use HealthKit - it's not imported as a framework or in our app's 'Capabilities'. The only mention of HealthKit is in JLPermissions. I suspect the problem is similar to this issue from another project: iosphere/ISHPermissionKit#15 - i.e., merely the mention of HealthKit is enough to upset Apple's reviewers.

For now, I'm going to remove JLPermissions from my Podfile, and use a custom version which does not refer to HealthKit (for safety, I may also remove references to Calendar, Reminders, Microphone, and Locations)

@jlaws
Copy link
Owner

jlaws commented Oct 28, 2014

Interesting... might have to add compile time flag/macro's so that specific parts of the API can be ignored.

@sachinkesiraju
Copy link

So sorry to hear about the App Store rejection. It appears Apple is rejecting apps that call Health Kit methods in their code regardless of whether they're actually using it. I suggest we create two separate branches in the project, one without Health for the apps that don't need it.
I can submit a PR with the health-free branch if we decide to go this route.

@jlaws
Copy link
Owner

jlaws commented Oct 30, 2014

I was actually thinking of splitting it further into sub components where
each permission is a separate pod. You can either bring in the whole thing
with 'JLPermissions' or do 'JLPermissions/Notifications' and
'JLPermissions/Location' to isolate it. It will require breaking up the
code into numerous .h and .m files, but shouldn't be too bad. For now if
you need an immediate release, just fork the code and delete the healthkit
stuff. I will try to get the split done this weekend.

On Thu, Oct 30, 2014 at 8:32 AM, Sachin Kesiraju notifications@github.com
wrote:

So sorry to hear about the App Store rejection. It appears Apple is
rejecting apps that call Health Kit methods in their code regardless of
whether they're actually using it. I suggest we create two separate
branches in the project, one without Health for the apps that don't need it.
I can submit a PR with the health-free branch if we decide to go this
route.


Reply to this email directly or view it on GitHub
#13 (comment).

@sachinkesiraju
Copy link

That does seem like a viable solution. For now, I'll remove the Health Kit part so it won't affect anymore users.

@jlaws
Copy link
Owner

jlaws commented Nov 4, 2014

@cannyboy @sachinkesiraju The latest version 2.0.1 has been split into sub pods for each permission. You can now pick/choose what you want to include. It has breaking API changes since you can no longer use [JLPermissions sharedInstance] but instead need to use something like [JLContactsPermission sharedInstance]. Along the way I fixed a few bugs.

I am using the latest in my project and it is working fine, but let me know if either of you run into any issues.

@jlaws jlaws closed this as completed Nov 4, 2014
@sachinkesiraju
Copy link

That's great! I'll be sure to keep you updated!

@cannyboy
Copy link
Author

cannyboy commented Nov 5, 2014

cool, will check it out

@KanybekMomukeyev
Copy link

the same here, my app rejected for this issue, but i can't find where my app used health kit,
i totally removing JLPermissions from pods, and added only to project!
The version was 2.1.2

@jlaws
Copy link
Owner

jlaws commented Jan 26, 2015

That's why you need to use the individual pods it the blanket library. See
the latest read me. If you can't figure it out it is probably best to
remove the library entirely for the users sake.
On Mon, Jan 26, 2015 at 09:04 Kanybek notifications@github.com wrote:

the same here, my app rejected for this issue, but i can't find where my
app used health kit,
i totally removing JLPermissions from Xcode!


Reply to this email directly or view it on GitHub
#13 (comment).

@KanybekMomukeyev
Copy link

Thanks, next time will carefully read read me file ((

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants