Apple has rejected the iOS application uploaded to the App Store. I have developed an application which installs the signed configuration profile (.mobileconfig) in the iOS device.
I am unable to figure out which public API I have used in an unapproved manner.
Is it the HTTP requests which downloads configuration profile from the server and then prompt the user to install it?
I am validating whether the profile has been installed in the iOS device or not using Security Framework (SecCertificate, SecPolicy, SecTrust etc.). I am not sure if this is the problem.
What else should I look for figure out that particular Public API?
Below is the Apple Response:
Guideline 2.5.1 - Performance - Software Requirements
Additionally, your app uses public APIs in an unapproved manner, which does not comply with guideline 2.5.1 of the App Store Review Guidelines.
Since there is no accurate way of predicting how an API may be modified and what effects those modifications may have, Apple does not permit unapproved uses of public APIs in App Store apps.
Next Steps
Please revise your app to ensure that documented APIs are used in the manner prescribed by Apple.
TL; DR
Using MDM/VPN for ad blocking or screen-time monitoring is not considered compliant with the App Store Review Guidelines. Also, Apple going to remove the existing app from the AppStore which using the same public APIs.
Update (Apr 28, 2019) - Apple release press update about the Parental Control Apps.
Complete Case
I got the same reason of app rejection from Apple.
My app is a parental control app which uses the iOS MDM (Mobile Device Management) protocol to hide/unhide device application after a child time limit over. So, I send this reply to Apple review team
After this, I sent them 3 follow up message but got nothing from Apple side. So, I submitted the app again with no changes. Apple review team again rejected the app with the same reason. Again, I sent the same message also a call request but got nothing from the Apple side.
So, after some days I again submitted the same app with no changes. App got rejected again. But this time they have accepted my call request.
.
.
After this Apple Review team member called me. And said, using MDM/VPN for ad blocking or screen-time monitoring is not considered compliant with the App Store Review Guidelines. Also, they said me they are notifying other developers too about this. They are also going to remove the existing app from the AppStore which using the same public APIs.
This complete process took approx 1.5 months(20 Nov 2018 to 05 Jan 2019).
Hope this can save someone 1.5 months. :P