Submitting to F-Droid. Are there any propietary software dependencies in Managed workflow?

Please provide the following:

  1. SDK Version: 39.0.2
  2. Platforms(Android/iOS/web/all): Android

Hi, I want to release an app built with Expo on the F-Droid store along with releasing the app on the Google Play store.

The F-Droid store is a store for apps built with free/open-source software, and as a result, apps included in the store must not contain proprietary software or non-free software (see F-Droid inclusion policy)

My app is currently built with the Managed workflow, I don’t use Google Maps, Google Analytics, Crashlytics, FCM messaging, or any of the ad libraries / sdks.

Given that, will the apk I build through expo build -t apk have any non-free dependencies? If so, is there any way to build the app but remove those (either through ejecting or through experimental lean builds)? Does anyone have any experience submitting apps to F-Droid and would want to help me out?

I am pretty sure you’ll have to eject.

Here’s an article that implies it’s possible to do with Expo, but that’s just a comment near the end after it has been talking about plain React Native apps the whole time:

If you take a newly created Expo app and eject it, it’s basically a plain React Native app, so if you can get an RN app into F-Droid, I see no reason why you can’t do it with an Expo app. But the managed workflow has a bunch of stuff built-in and I suspect some of them are non-floss.

The lean build stuff is experimental at the moment. Maybe it would work, but I have my doubts.

1 Like

Thanks for the link, that looks fairly simple! I’ll try with the experimental lean builds and report back in this thread whether it works or not. Otherwise ejecting may be the way to go.

I also suspect some of the built-in parts of the Managed workflow are non-floss, but would love some confirmation of this, if possible.

Update: The experimental lean build did not work. The app built with the experimental lean build feature crashes on launch. I have some logs and will post an issue to the main expo repo in GitHub. Next step is to eject :confused:

Well, I would start by checking the Branch/Facebook/Firebase/Stripe/Segment modules included with Expo.