Config plugins - how to make existing react native project ready with config plugins?

Could someone suggest clear documentation on instructions to enable existing react native project with config plugins?

How android and ios code are modified
How android and ios config files are modified

-Thanks, dp

It is not advised to use config plugins in an app where you are making direct changes to the native directories

Could you give some example of this? Ideally you wouldn’t be modifying existing code.

There are examples in expo/expo. Check under packages/*/plugin.

Also, in case it helps, my first attempt at config plugins is here


If you see the instructions to use Invia un'immagine nel payload delle notifiche  |  Firebase
We need to update the (bare/eas build) iOS source code of react native project to Set up the notification service extension. How this can be done using @config-plugins?

-Regards dp

manged projects do not support iOS extensions, it’s probably possible to do that with config plugins but requires a lot of knowledge about xcode project structure, to make that work you would need to:

  • add the extension manually by editing xcodeproj
  • generate credentials for the extensions
  • pass credentials for extensions somehow to eas and configure them on eas instance

Maybe in the future expo managed will support iOS extensions, but for now bare project is a lot easier option


@wkozyra I haven’t looked at expo-notifications in a couple of years, but can it not do what @techpanga wants? e.g. I see mention of a “launch-image”. Or is that something different?

The limitation of expo-notifications for the “launch image” option requirement is making us for this customization. It appears to be available technical solution. Hopefully expo-notifications have some way to do this.

OK, if expo-updates can’t do what you need, then wkozyra is correct.

A year or two ago if you ejected you would have to give up OTA updates, Expo Go (mostly) and Expo’s build service, etc. But these days you can still use OTA updates, their EAS Build service and expo-dev-client instead of Expo Go. So ejecting is much less of a problem than it used to be.

Maybe you should use the bare workflow for now, and create a feature request to request the possibility to add iOS extensions with config plugins so that in future you might be able to switch back to the managed workflow.

but can it not do what @techpanga wants? e.g. I see mention of a “launch-image”. Or is that something different?

I’m not sure 100% if it’s possible or not(I don’t work much on SDK side of expo), but the problem is with adding notifications extensions(or any other extensions/widgets). It might be possible if there is a different way to configure that, but not with the extensions on managed workflow.

1 Like