Beginner problems


#1

Hello everyone, I’m new to expo and I have many doubts about how it works in a real development workflow.
Two of my doubts are:

How can I debug an app with expo in the simulator (there is no xcode project file in the project folder)?
There is no ios and android folders in the project, if I need to change anything in the manifest, how can I do it?

I’m posting because I couldn’t find anything on the web to help me.

Thanks in advance.


#2

Marcelo,

I’m new to Expo too! But, maybe, I can help you.

  1. I did not have to debug my app yet, but I found this link: https://docs.expo.io/versions/v7.0.0/guides/debugging.html
    Does it help you?

  2. Expo doesn’t work with libraries linked to native systems :confused:
    You need to rely on libraries distributed by them (but, they are always releasing new things).


#3

Hello Rafael, thanks for the reply.

1 - I read all the docs about debugging, but how can I open the project inside xcode without a xcodeproject file, since it’s not generated by expo? I must create a new project and then import the expo project? Same with android?

2 - I’ve had problems with some libraries like platform.js (to detect device info) that just doesn’t work, making it really dificult to have some functionalities (device detection is obligatory on a project I’m working).

Since I’m not too experienced with react native, I think I will let expo aside for a while and learn more, or I think I will just get trapped more often than I want to…


#4

Hey there, React Native projects (including Expo) use the debugger inside Chrome (or another JS debugger), not the one inside Xcode. Expo projects are written purely in JS and never drop down to native code.

Generally if you want to change native app configurations (e.g. Android manifest or iOS info.plist), there is a corresponding change to exp.json which we will respect when we generate your ipa/apk.

Detecting platform works quite well, just use this strategy. You can also narrow down on more device-specific attributes like Device Name and Device Year using our Constants module.

Lastly, to get an idea of how you can go from a JS project to a native binary, I recommend glancing over Project Lifecycle.


#5

Hello Ben, thanks for the answer!
Constants is almost what I need, but I see that only on iOS it can identify the device. Android is not supported yet? Is there any plans to not break the app if I use the Expo.Constants.platform on Android?
I also need to identify the OS and version, I didn’t found that option on the docs…