ARKit app rejected because of TrueDepth APIs usage


we have developed an app using ARKit & UE 4.19, successfully built it for distribution.

Then we sent it to the App Store, but Apple rejected it because of usage of TrueDepth API with no purpose.

In this thread App rejected because of TrueDepth APIs - Mobile - Unreal Engine Forums it is recomended to turn off ARKit plugin. Obviously it’s not a solution for us because ARKit is the main feature.

Conversation with the review team gave us none. They says that we need to remove TrueDepth API if it’s not used in our app.

Is it used in the engine and maybe someone can help us with the right explanation for the review team?

We are using ARKit for AR architecture visualization (only backside camera) with stadart engine ARKit realization.

Our app is developed for [YIT Group (Russia)][1].

We’ve already released Vuforia-based version for Android. Here is the link on Play Market:

And here is an iOS device realtime footage:

Listing the conversation between us and the review team:

**Apr 10, 2018 at 8:19 PM**
From Apple
2. 1 Performance: App Completeness
2. 5 Performance: Software Requirements
5. 1.1 Legal: Privacy - Data Collection and Storage

Thank you for your response. However, the TrueDepth API needs to be removed if you wish to release your app to the App Store. We appreciate your feedback and have scheduled a call with an Apple representative in order to discuss your concerns. We anticipate calling within 3 business days.

To help ensure we have the correct contact information, please reply to this message to provide a contact name and phone number for this call.

Best regards,
App Store Review

**Apr 10, 2018 at 8:02 PM**

the problem is that we are using Unreal Engine (non source code version) and we have no ability to remove the TrueDepth API by ourselfs without forking the whole engine! Is there any other possible way to pass the review? We can't wait a few months till Epic Games releases a new version of the engine. We've already waited for the 4.19 version for about a month.

Best regards,
Roman Kalinin

**Apr 10, 2018 at 7:54 PM**
From Apple

Thank you for providing this information. If this version does not include any features that use TrueDepth APIs, please remove them from your app, and upload a new binary.

We look forward to reviewing the updated version.

Best regards,
App Store Review 

**Apr 10, 2018 at 2:11 PM**

our app is built with Unreal Engine 4 (4.19 version) and the main feature in our app is an AR visualization using ARKit reality system built in the engine by Epic Games.

We are using only backside camera for scanning geometry and placing 3D models in the real space. We are not collecting any information and not sharing data to any third parties. 

As far as we can see in Unreal Editor and its AR realization, Epic Games are aiming to use front side camera in future releases, but right now it's disabled, so no information should be collected, too.

In our app we are using internet connection to download news from our server and send call requests by users to it. But no data from TrueDepth API is sending from the app.

**Apr 10, 2018 at 4:17 AM**
From Apple
Guideline 2.1 - Information Needed

We have started the review of your app, but we are not able to continue because we need additional information about how your app uses information collected by the TrueDepth API.

Next Steps

To help us proceed with the review of your app, please provide complete and detailed information to the following questions.

• What information is your app collecting using the TrueDepth API?
• For what purposes are you collecting this information? Please provide a complete and clear explanation of all planned uses of this data.
• Will the data be shared with any third parties? Where will this information be stored?

Once you reply to this message in Resolution Center with the requested information, we can proceed with your review.

Guideline 2.5.1 - Performance - Software Requirements

During review, we found that your app includes TrueDepth APIs. However, we were not able to locate any features in your app that use TrueDepth APIs.

Next Steps

If your app does not include any features that use TrueDepth APIs, please remove them from your app. 

As your app uses the Unity ARKit plugin, it would be appropriate to update to the latest version, which includes a setting that allows you to exclude TrueDepth APIs.

If your app does include features that use TrueDepth APIs, please reply to this message in Resolution Center to provide information on how to locate them.

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

Your app uses TrueDepth APIs but does not include a privacy policy, as required by Guideline 5.1.1 of the App Store Review Guidelines and Section 3.3.10 of the Apple Developer Program License Agreement. 

Next Steps

To resolve this issue, please update the Privacy Policy URL section of iTunes Connect to link to your privacy policy and ensure it includes all of the requisite information.

If your privacy policy includes this information, please respond to this message in Resolution Center with the relevant sections quoted in your reply.


For your convenience, we’ve included Section 3.3.10 of the Apple Developer Program License Agreement below:

3.3.10 You must provide clear and complete information to users regarding Your collection, use and disclosure of user or device data, e.g., a link to Your privacy policy on the App Store. Furthermore, You must take appropriate steps to protect such data from unauthorized use, disclosure or access by third parties. If a user ceases to consent or affirmatively revokes consent for Your collection, use or disclosure of his or her user or device data, You (and any third party with whom You have contracted to serve advertising) must promptly cease all such use. In addition, if Your Application accesses the HealthKit, Motion & Fitness, HomeKit, Intents Framework, or Apple Pay APIs, provides keyboard extension functionality, accesses Face Data, or is primarily intended for use by children, You must provide a privacy policy to Your end-users explaining Your collection, use, disclosure, sharing, and retention of user or device data.

Since your iTunes Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit iTunes Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.

NOTE: Please be sure to make any metadata changes to all app localizations by selecting each specific localization and making appropriate changes.

You should have your rep at Apple contact Epic for discussion. Their own APIs are tied together which makes this a questionable reason for app rejection


am I right, that we need to reply on app rejection in iTunesConnect and ask our rep at Apple to contact someone in Epic? Is there any direct contact to send? As you can see in the listing above we told to Apple Review Team that we are using UE4. We talked to them on the phone, but the answer is the same: we need to remove True Depth API if we are not using it.

Anyway, thank you for reply.

They have plenty of ways of reaching us.

If you are able to change the code, you can hack that out for now. I’ll ping the folks I know on the Apple side.

We’ve tried to remove True Depth API, but there is no direct references to it in C++ source code. Looks like it includes on package stage (remotely on Mac) due to ARKit Face rig component, which is too difficult to remove for us. So now we are just waiting for UE update and temporary replaced ARKit with ARToolkit API (with markers tracking =(), but anyway we are hoping to come back to ARKit realization asap.

The component doesn’t interact with the API. The only thing that does is the FAppleARKitSystem code.

Okey, we will take a look. Thank you!

Hi there!

Had the same reject.

I simplified ue4 ARkit plugin.
It is a little bit dirty. But it works.

I removed all the code associated with the face API. My app was approved.
All you need to download UE4 sources for Mac and replace plugin code.

App in appstore now.

Anyone know if this truedepth issue is resolved with today’s hotfix?

It’s not listed, so I’m guessing the answer is no :frowning:

I am about to start a new commercial project that uses AR and would like to know if this is going to be an issue moving forward?

The issue is still there. However, the code provided by 20secondstosun seems like a solution by now. We will submit our app to AppStore later today. As it will pass or get rejected by review team I’ll post info to this thread.

We have the same problem with 4.19.2.
We tried the solution by 20secondstosun, removing the code associated with the face API but Apple rejected the project again.
I guess everybody packaging with 4.19.2 for iOS will have the same issue.
Any solution or workaround?

Yes. The 20secondstosun is missing some things.
Find here the modified files that you need to replace in the engine:

Just make sure you delete Intermediate (and binaries if still doesn’t work) folder in the engine, recompile (follow UE’s documentation) and try again.
Make sure you don’t have “Face” in the AR Session config - you should only have World and Orientation after this change. Compiles for me.
Our app is live with 4.19.2.

Thanks , I will try it today and let you know if we pass the submission!

Very strange… My app is alive with my fix
Try - Full Rebuild.

I don’t know why it didn’t work! I will test Saisa solution today.
I was wondering if there is a way to test ourself if there is Truedepth API or not in the app before submitting to Apple? I’m wasting 2 days everytime I submit to Apple!

Hi guys, I can confirm our app was accepted by Apple today :slight_smile: Thanks for your help !

Glad to hear. Can you share a link for the app - every iOS app made with UE is interesting.

Here it is:

I will be glad to check out your app as well if it is available!

I’m in the same boat except my iOS app has no AR kit features at all. Does this mean that nobody with 4.19.2 can currently submit to App Store without rejection?

I need a solution, preferably one that doesn’t involve any programming (i.e a hotfix). I read in the other thread that simply disabling the ARkit plugin in Unreal doesn’t work either…