728x90
expo prebuild로 써드파티라이브러리를 갖다 쓰다보면 expo go에서는 기능하지 않는 라이브러리들이 있다
그래서 prebuild로 작업하다가 expo go로 바로바로 디바이스에서 띄우면서 작업하고싶을때 써드파티 라이브러리때문에
expo go에서는 오류가 나는데 그럴땐 expo go와 prebuild를 분리해서 스크립트를 짤 수 있다.
npx expo install expo-constants
보통 router 설치시에 같이 설치되기는 하는데 만약 없다면 설치
import Constants, { ExecutionEnvironment } from "expo-constants";
const App = () => {
const isExpoGo = Constants.executionEnvironment === ExecutionEnvironment.StoreClient;
useEffect(() => {
if (!isExpoGo) {
onFetchUpdateAsync();
}
}, []);
}
이런식으로 특정 함수를 ExpoGo가 아닐때(build시)만 작용시키게 해줄 수 있다.
그럼 여기서 ㅇㅇ스크립트는 알겠고 라이브러리 호출하는거에서부터 오류 뜨는데 어떡하지싶을거다
내가 그랬다 특정 라이브러리를 import하는거부터가 expo go에서 오류가 났다..
그래서 import 분리는 이렇게 하면된다
const isExpoGo =
Constants.executionEnvironment === ExecutionEnvironment.StoreClient;
let OneSignal: any;
if (!isExpoGo) {
OneSignal = require("react-native-onesignal").OneSignal;
} else {
OneSignal = View;
}
onesignal이라는 푸시알림 서비스는 prebuild버전에서만 지원이 됐기에 expo go에서는 오류가 났다
그래서 저렇게 분리해서 호출하면 expo go에서는 onesignal 기능이 작동되지않고 prebuild에서만 작동하므로 오류가 안난다
728x90
'JS > React Native Expo' 카테고리의 다른 글
[React Native Expo] 애니메이션 기능 사용하기 (0) | 2024.01.26 |
---|---|
[React Native Expo] Managed Workflow와 Bare Workflow의 차이 (1) | 2024.01.26 |
[React Native Expo] 모달(Modal)창 적용하기 (0) | 2024.01.25 |
[React Native Expo] 로딩바 적용 (0) | 2024.01.25 |
[React Native Expo] 스플래시화면 적용하기 (0) | 2024.01.25 |