Face Detection Issue in TestFlight

My app’s Face Detection UX works phenomenally great in the Expo iOS client app.

I spent the last several several months building an Augmented Reality app around this one feature. The app is now completed.

Today I deployed it to TestFlight, only to realize that in a production environment, the Expo Face Detector API does not seem to function at all. I’m not even receiving errors from the Camera prop “onFaceDetectionError” handler, so I have no idea where to begin troubleshooting.

Furthermore, I can confirm that the Camera component’s other “onFacesDetected” prop handler is not being called either.

Why does it work so well in the Expo iOS client app, but not in TestFlight?

(please note that when uploading the Expo-generated IPA file to iTunes Connect, there are no errors thrown… just a clean and successful upload)

Is it possible that the reason for it not working in TestFlight is because I have to register with Google Mobile Vision (GMV) for my own api developer account so that api consumption is invoiced to me instead of Expo? If yes, then how would I swap out Expo’s GMV api key with my own GMV api keys?

“expo”: “^25.0.0”,
“react”: “16.2.0”,
“react-native”: “https://github.com/expo/react-native/archive/sdk-25.0.0.tar.gz

tested/failed on the following iOS devices:
iPhone 6+, iOS 11.3
iPhone 7+, iOS 11.1

Hey there!

There are a few APIs that we don’t include by default in iOS standalone apps. In the case of Face Detector, we omit this library from your native code by default because the GMV binary is very very large, and most people don’t need it. There are some docs about this here, but we don’t do a great job documenting this right now.

The way to get an IPA which includes the FaceDetector API is to detach to ExpoKit (by running exp detach) and then make sure your Podfile includes a dependency on the FaceDetector subspec.

Sorry this isn’t intuitive, and please let us know if you want more info or help with those instructions. In the future, we plan to add better support for including optional/customizable native libraries, so this won’t be as much work.

1 Like

Thank you @ben … so do developers commonly toggle in and out of detachment and re-attach once their ExpoKit features are completed? Or is detaching pretty permanent? Because I must say, using the Expo iOS Client App for testing/development, has been a priceless developer experience, and I’d be a bit reluctant to abandon that “attached” experience for when CI/CD feature additions to my app are planned.

Thanks for offering additional help/support with Podfile implementation of the GMV FD subspec. I will do as much as I possibly can to figure it out on my own first, but there’s a good chance I may return to you for additional support. I’m even happy to pay for that support if necessary. Once GMV FD is implemented/tested/completed, can I re-attach for CI/CD reasons?

And one more thing… I built some important app logic around the Expo Push Notification service… I think I once read somewhere in the docs that I will lose all those push capabilities if I detach, but those push capabilities are restored once I re-attach, correct?

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.