25%
53,620원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결배달앱 클론코딩 [with React Native]
TypeError: Cannot read property 'status' of undefined
안녕하세요 제로초님!회원가입을 하려면, 계속 아래와 같은 에러가 터미널에 뜹니다.error: [TypeError: Cannot read property 'status' of undefined] ERROR undefined어디가 잘 못 된걸까요,,.env파일 확인 해서 제 IP주소 확인했습니다.signUp 부분을 확인해야하는건지,,import React, {useCallback, useRef, useState, useEffect} from 'react'; import { ActivityIndicator, Alert, Platform, Pressable, StyleSheet, Text, TextInput, View, } from 'react-native'; import {NativeStackScreenProps} from '@react-navigation/native-stack'; import DismissKeyboardView from '../components/DismissKeyboardView'; import axios, {AxiosError} from 'axios'; import Config from 'react-native-config'; // 혹시 이거 설정법 아시나요 import {RootStackParamList} from '../../AppInner'; type SignUpScreenProps = NativeStackScreenProps<RootStackParamList, 'SignUp'>; function SignUp({navigation}: SignUpScreenProps) { const [loading, setLoading] = useState(false); const [email, setEmail] = useState(''); const [name, setName] = useState(''); const [password, setPassword] = useState(''); const emailRef = useRef<TextInput | null>(null); const nameRef = useRef<TextInput | null>(null); const passwordRef = useRef<TextInput | null>(null); useEffect(() => { console.log('email: ', email); console.log('name: ', name); console.log('password: ', password); }, [email, name, password]); const onChangeEmail = useCallback((text: string) => { setEmail(text.trim()); }, []); const onChangeName = useCallback((text: string) => { setName(text.trim()); }, []); const onChangePassword = useCallback((text: string) => { setPassword(text.trim()); }, []); const onSubmit = useCallback(async () => { if (loading) { return; } if (!email || !email.trim()) { return Alert.alert('알림', '이메일을 입력해주세요.'); } if (!name || !name.trim()) { return Alert.alert('알림', '이름을 입력해주세요.'); } if (!password || !password.trim()) { return Alert.alert('알림', '비밀번호를 입력해주세요.'); } if ( !/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/.test( email, ) ) { return Alert.alert('알림', '올바른 이메일 주소가 아닙니다.'); } if (!/^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[$@^!%*#?&]).{8,50}$/.test(password)) { return Alert.alert( '알림', '비밀번호는 영문,숫자,특수문자($@^!%*#?&)를 모두 포함하여 8자 이상 입력해야합니다.', ); } console.log(email, name, password); try { //:TODO log 삭제 console.log('LOGIN REQUEST'); console.log(Config.API_URL); setLoading(true); console.log(email); console.log(name); console.log(password); const response = await axios.post(`${Config.API_URL}/user`, { email, name, password, }); console.log('response: ', response.data); Alert.alert('알림', '회원가입 되었습니다.'); navigation.navigate('SignIn'); } catch (error) { console.log('error: ', error); const errorResponse = (error as AxiosError).response; console.error(errorResponse); if (errorResponse) { Alert.alert('알림'); } } finally { setLoading(false); } }, [loading, navigation, email, name, password]); const canGoNext = email && name && password; return ( <DismissKeyboardView> <View style={styles.inputWrapper}> <Text style={styles.label}>이메일</Text> <TextInput style={styles.textInput} onChangeText={onChangeEmail} placeholder="이메일을 입력해주세요" placeholderTextColor="#666" textContentType="emailAddress" value={email} returnKeyType="next" clearButtonMode="while-editing" ref={emailRef} onSubmitEditing={() => nameRef.current?.focus()} blurOnSubmit={false} /> </View> <View style={styles.inputWrapper}> <Text style={styles.label}>이름</Text> <TextInput style={styles.textInput} placeholder="이름을 입력해주세요." placeholderTextColor="#666" onChangeText={onChangeName} value={name} textContentType="name" returnKeyType="next" clearButtonMode="while-editing" ref={nameRef} onSubmitEditing={() => passwordRef.current?.focus()} blurOnSubmit={false} /> </View> <View style={styles.inputWrapper}> <Text style={styles.label}>비밀번호</Text> <TextInput style={styles.textInput} placeholder="비밀번호를 입력해주세요(영문,숫자,특수문자)" placeholderTextColor="#666" onChangeText={onChangePassword} value={password} keyboardType={Platform.OS === 'android' ? 'default' : 'ascii-capable'} textContentType="password" secureTextEntry returnKeyType="send" clearButtonMode="while-editing" ref={passwordRef} onSubmitEditing={onSubmit} /> </View> <View style={styles.buttonZone}> <Pressable style={ canGoNext ? StyleSheet.compose(styles.loginButton, styles.loginButtonActive) : styles.loginButton } disabled={!canGoNext || loading} onPress={onSubmit}> {loading ? ( <ActivityIndicator color="white" /> ) : ( <Text style={styles.loginButtonText}>회원가입</Text> )} </Pressable> </View> </DismissKeyboardView> ); } const styles = StyleSheet.create({ textInput: { padding: 5, borderBottomWidth: StyleSheet.hairlineWidth, }, inputWrapper: { padding: 20, }, label: { fontWeight: 'bold', fontSize: 16, marginBottom: 20, }, buttonZone: { alignItems: 'center', }, loginButton: { backgroundColor: 'gray', paddingHorizontal: 20, paddingVertical: 10, borderRadius: 5, marginBottom: 10, }, loginButtonActive: { backgroundColor: 'blue', }, loginButtonText: { color: 'white', fontSize: 16, }, }); export default SignUp; 아니면 AppInner부분인건지 모르겟습니다.import SignIn from './src/pages/SignIn'; import SignUp from './src/pages/SignUp'; import Orders from './src/pages/Orders'; import Delivery from './src/pages/Delivery'; import Settings from './src/pages/Settings'; import * as React from 'react'; import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; import {createNativeStackNavigator} from '@react-navigation/native-stack'; import {useSelector} from 'react-redux'; import {RootState} from './src/store/reducer'; import useSocket from './src/hooks/useSocket'; import {useEffect} from 'react'; import EncryptedStorage from 'react-native-encrypted-storage'; import axios, {AxiosError} from 'axios'; import {Alert} from 'react-native'; import userSlice from './src/slices/user'; import {useAppDispatch} from './src/store'; import Config from 'react-native-config'; import orderSlice from './src/slices/order'; export type LoggedInParamList = { Orders: undefined; Settings: undefined; Delivery: undefined; Complete: {orderId: string}; }; export type RootStackParamList = { SignIn: undefined; SignUp: undefined; }; const Tab = createBottomTabNavigator(); const Stack = createNativeStackNavigator<RootStackParamList>(); function AppInner() { const dispatch = useAppDispatch(); const isLoggedIn = useSelector((state: RootState) => !!state.user.email); console.log('isLoggedIn', isLoggedIn); const [socket, disconnect] = useSocket(); // 앱 실행 시 토큰 있으면 로그인하는 코드 useEffect(() => { const getTokenAndRefresh = async () => { try { const token = await EncryptedStorage.getItem('refreshToken'); if (!token) { return; } const response = await axios.post( `${Config.API_URL}/refreshToken`, {}, { headers: { authorization: `Bearer ${token}`, }, }, ); dispatch( userSlice.actions.setUser({ name: response.data.data.name, email: response.data.data.email, accessToken: response.data.data.accessToken, }), ); } catch (error) { console.error(error); if ((error as AxiosError as any).response?.data.code === 'expired') { Alert.alert('알림', '다시 로그인 해주세요.'); } } }; getTokenAndRefresh(); }, [dispatch]); useEffect(() => { const callback = (data: any) => { console.log(data); dispatch(orderSlice.actions.addOrder(data)); }; if (socket && isLoggedIn) { socket.emit('acceptOrder', 'hello'); socket.on('order', callback); } return () => { if (socket) { socket.off('order', callback); } }; }, [dispatch, isLoggedIn, socket]); useEffect(() => { if (!isLoggedIn) { console.log('!isLoggedIn', !isLoggedIn); disconnect(); } }, [isLoggedIn, disconnect]); useEffect(() => { axios.interceptors.response.use( response => { return response; }, async error => { const { config, response: {status}, } = error; if (status === 419) { if (error.response.data.code === 'expired') { const originalRequest = config; const refreshToken = await EncryptedStorage.getItem('refreshToken'); // token refresh 요청 const {data} = await axios.post( `${Config.API_URL}/refreshToken`, // token refresh api {}, {headers: {authorization: `Bearer ${refreshToken}`}}, ); // 새로운 토큰 저장 dispatch(userSlice.actions.setAccessToken(data.data.accessToken)); originalRequest.headers.authorization = `Bearer ${data.data.accessToken}`; // 419로 요청 실패했던 요청 새로운 토큰으로 재요청 return axios(originalRequest); } } return Promise.reject(error); }, ); }, [dispatch]); return isLoggedIn ? ( <Tab.Navigator> <Tab.Screen name="Orders" component={Orders} options={{title: '오더 목록'}} /> <Tab.Screen name="Delivery" component={Delivery} options={{title: '내 오더'}} /> <Tab.Screen name="Settings" component={Settings} options={{title: '내 정보'}} /> </Tab.Navigator> ) : ( <Stack.Navigator> <Stack.Screen name="SignIn" component={SignIn} options={{title: '로그인'}} /> <Stack.Screen name="SignUp" component={SignUp} options={{title: '회원가입'}} /> </Stack.Navigator> ); } export default AppInner;
- 미해결배달앱 클론코딩 [with React Native]
1. SafeAreaView 2. 상태관리
두가지 질문이 있습니다!NavigationContainer에 Safe view가 적용되있어최상단 App.tsx에는 작성안해도 되지만 내부에 중첩 라우터 컴포넌트의 경우 (Ing.tsx) 헤더가 없을 경우 적용되지 않던데이런 경우는 각 컴포넌트마다 SafeAreaView를 사용하는 수 밖에 없을까요? 강의에서는 상태관리를 리덕스 툴킷으로 하였는데 클라이언트 상태관리는 리덕스 툴킷, 서버 데이터 상태관리는 RTK나 리액트 쿼리등으로 따로 관리하시나요?
- 미해결배달앱 클론코딩 [with React Native]
키보드 관련 질문드립니다.
안녕하세요.안드로이드에서 react-native-keyboard-aware-scroll-view 라이브러리 사용해서 인스타그램 댓글창처럼 만들고있는데 FlatList로 댓글을 가져오고맨밑에 인풋창을 누르면 키보드가 상단으로 올라오면서 맨밑에 댓글이 가려지는 현상이있는데 이부분에 대해 해결방법이 있을까요?windowSoftInputMode는 adjustResize고 adjustPan모드로도 해봤는데 이건 맨위에 댓글 부분이 잘려나가더라구요.이것저것 해봤는데 안되서 여기다 질문 남깁니다.
- 미해결배달앱 클론코딩 [with React Native]
react-native-image-crop-picker --> openPicker 오류
안녕하세요ImagePicker.openCamera <- 정상 동작ImagePicker.openPicker <- Required permission missing위 내용입니다확인 부탁드립니다.
- 미해결배달앱 클론코딩 [with React Native]
앱 성능 측정은 어떻게 해야하나요?
React-Native로 개발한 앱을 리팩토링하려합니다.성능 비교를 위해서 리팩토링 이전에 측정해놓고 싶습니다.웹의 경우 라이트하우스로 성능을 측정했다면 모바일앱은 어떤걸로 측정 해야하나요?찾아보니까 Firebase Performance가 앱 성능 측정을 해주던데 표준이 되는 다른 측정 도구가 있나요? 아님 firebase를 활용해서 측정하면 될까요?
- 미해결배달앱 클론코딩 [with React Native]
Staging 테스트 질문이요!
안녕하세요 강의 잘 봤습니다.코드푸쉬를 적용하고 App Center까지 잘 올라온 걸 확인했습니다. 현재 앱을 TestFlight 앱으로 테스트 하고 있는데 Staging으로 코드푸쉬가 잘 적용되는지 확인하고 싶습니다. 혹시 Staging으로 올리고 변경된 codepush 내용을 TestFlight로 받는 방법이 있을까요?
- 해결됨배달앱 클론코딩 [with React Native]
[맥 전용] 애플 개발자 계정만들기 부분에서, identifiers 누락 부분 질문
[맥 전용] 애플 개발자 계정만들기 강의 파트에서 누락된 부분이 있어서, 이게 누락된건지 아니면 제가 빠뜨렸거나 다른 부분에서 있었던 내용인가 해서 질문올립니다~!certificates 부분 만들고, 6:42초 부분에 Profiles로 넘어가시는데, 6:53초부분에 AppID에 저는 fooddeliveryapp ID가 셀렉트 메뉴에 안뜨더라고요.그래서 검색해 보니 Identifiers 부분도 등록해야 프로파일 등록이 정상적으로 되는것 같던데, Identifiers 부분은 혹시 이 섹션 말고 다른 파트의 강의에서 나왔던 부분인가요? 현재는 이 부분은 강의에서 빠져 있네요Identifiers 등록 없이는 Profiles 등록이 안되는 것 같아 현재 구글의 다른 블로그 레퍼런스 검색해서 등록하려고 하는데,, 혹시 제가 다른 강의 파트서 나왔는데 누락했다면 그 강의 보고 다시 따라하려 합니다. 감사합니다
- 미해결배달앱 클론코딩 [with React Native]
React Native 소셜 로그인 관련 질문드립니다.
보통 RN에서 소셜 로그인을 하면 access token과 refresh token을 받아올 수 있는데, 이후 어떻게 해야할지 모르겠습니다..예를들어 kakao 로그인을 구현하여 토큰을 받는데 성공했는데, 이제 서버와 통신을 할 때 주로 어떤 방법으로 구현될까요?
- 미해결배달앱 클론코딩 [with React Native]
네이버맵 연동하기_build는 되는데 앱이 강제종료되는 현상
인프런 오류 때문에 코드블럭으로 에러가 올라가지 않아서 이미지로 대체합니다.모든 세팅을 마치고 npm run android로 빌드를 하면 앱이 바로 강제종료 됩니다.package.json "dependencies": { "@react-native-async-storage/async-storage": "^1.18.2", "@react-navigation/bottom-tabs": "^6.0.9", "@react-navigation/native": "^6.0.6", "@react-navigation/native-stack": "^6.2.5", "@reduxjs/toolkit": "^1.9.5", "axios": "^1.4.0", "react": "17.0.2", "react-native": "0.66.4", "react-native-config": "^1.5.1", "react-native-encrypted-storage": "^4.0.3", "react-native-keyboard-aware-scrollview": "^2.1.0", "react-native-nmap": "^0.0.66", "react-native-safe-area-context": "^3.3.2", "react-native-screens": "^3.10.1", "react-redux": "^8.1.1", "redux-flipper": "^2.0.2", "socket.io-client": "^4.7.0" }, "devDependencies": { "@babel/core": "^7.12.9", "@babel/runtime": "^7.12.5", "@react-native-community/eslint-config": "^2.0.0", "@types/jest": "^26.0.23", "@types/react-native": "^0.66.4", "@types/react-test-renderer": "^17.0.1", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", "babel-jest": "^26.6.3", "eslint": "^7.14.0", "jest": "^26.6.3", "metro-react-native-babel-preset": "^0.66.2", "react-test-renderer": "17.0.2", "typescript": "^4.4.4" }, "resolutions": { "@types/react": "^17" },
- 해결됨배달앱 클론코딩 [with React Native]
remote push notification이 포그라운드에서 팝업되지 않아요
핸드폰 상단바에서 알림 표시만 되고 알림 팝업은 되지 않습니다.localNotification을 활용해서 팝업시켜 봤지만 그렇게 될 경우 onNotification과 함께 중복된 알람 2개가 동시에 옵니다.그리고 상단바를 열어서 localNotification으로 온 알람을 press하게 되면 데이터가 빈 오브젝트로 넘어와서 Screen Navigate를 하지 못합니다.(onNotification로 발생하는 알림에서만 데이터를 활용할 수 있는 상황입니다)결론은 onNotification로 온 알림이 팝업되어서 press를 하면 해당 화면을 이동시키는게 최종 목적이고현재 포그라운드에서 알림 팝업이 안되는 이슈를 해결하고 싶습니다..계속 찾아봐도 답을 못 찾겠어서 질문 남깁니다!// AndroidManifest.xml <meta-data android:name="com.dieam.reactnativepushnotification.notification_foreground" android:value="true"/> <!-- Change the resource name to your App's accent color - or any other color you want --> <meta-data android:name="com.dieam.reactnativepushnotification.notification_color" android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color --> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" /> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" /> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiver> <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> // App.tsx PushNotification.configure({ onNotification: function (notification: any) { PushNotification.localNotification({ message: notification.message, title: notification.title, channelId: 'channel_general', }) } }) PushNotification.createChannel( { channelId: 'channel_general', channelName: '앱', }, (created: boolean) => console.log(`createChannel returned '${created}'`), );
- 미해결배달앱 클론코딩 [with React Native]
SK open API홈페이지 리뉴얼 후 sdk 받는 경로를 못찾겠습니다ㅜ
SK open API홈페이지 리뉴얼 후 sdk 받는 경로를 못찾겠습니다ㅜ
- 미해결배달앱 클론코딩 [with React Native]
Ios 네이버맵 세팅 강의 화면들이 끊기는 것 같은데 저만 그런까요?
강의가 중간중간 멈춰있는 느낌이 있는데 저만 그런가요ㅜㅜ
- 미해결배달앱 클론코딩 [with React Native]
아카이브 중
안녕하세요 제로초님 아카이브중에 이에러가 떠서Multiple commands produce '/Users/js/Library/Developer/Xcode/DerivedData/FoodDeliveryApp-hizgjtktrbbtxygltyjrhnhuhijf/Build/Intermediates.noindex/ArchiveIntermediates/FoodDeliveryApp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AccessibilityResources.bundle' 구글링했는데 이경로의중복파일 삭제하라고 나와있습니다근데 잘못찾을꺼같아서 질문 남깁니다막 삭제하다가는 망할꺼같아서...
- 미해결배달앱 클론코딩 [with React Native]
배포하기전에
마지막 배포단계까지왔는데빌드까지 에러 없이 진행했는데 코드푸쉬 설정하고 마지막테스트를 할려고 아이폰으로 빌드했는데 스플레쉬 화면이 꺼지지가 않네요Unable to symbolicate stack trace: The stack is null Error: Unable to resolve module ./Libraries/Components/DatePicker/DatePickerIOS from /Users/js/Delivery/node_modules/react-native/index.js: None of these files exist: * node_modules/react-native/Libraries/Components/DatePicker/DatePickerIOS(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx) * node_modules/react-native/Libraries/Components/DatePicker/DatePickerIOS/index(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx) 15 | import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator'; 16 | import typeof Button from './Libraries/Components/Button'; > 17 | import typeof DatePickerIOS from './Libraries/Components/DatePicker/DatePickerIOS'; | ^ 18 | import typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid'; 19 | import typeof FlatList from './Libraries/Lists/FlatList'; 20 | import typeof Image from './Libraries/Image/Image'; at ModuleResolver.resolveDependency (/Users/js/Delivery/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:107:15) at DependencyGraph.resolveDependency (/Users/js/Delivery/node_modules/metro/src/node-haste/DependencyGraph.js:288:43) at Object.resolve (/Users/js/Delivery/node_modules/metro/src/lib/transformHelpers.js:129:24) at resolve (/Users/js/Delivery/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33) at /Users/js/Delivery/node_modules/metro/src/DeltaBundler/traverseDependencies.js:412:26 at Array.reduce (<anonymous>) at resolveDependencies (/Users/js/Delivery/node_modules/metro/src/DeltaBundler/traverseDependencies.js:411:33) at processModule (/Users/js/Delivery/node_modules/metro/src/DeltaBundler/traverseDependencies.js:140:31) at async addDependency (/Users/js/Delivery/node_modules/metro/src/DeltaBundler/traverseDependencies.js:230:18) at async Promise.all (index 0) 메트로에는 이것만 뜹니다. 서버는 켜둔상태입니다!appinner에 hide도 해주었습니다 useEffect(() => { const getTokenAndRefresh = async () => { try { const token = await EncryptedStorage.getItem("refreshToken"); if (!token) { SplashScreen.hide(); return; } const response = await axios.post( `${Config.API_URL}/refreshToken`, {}, { headers: { authorization: `Bearer ${token}`, }, } ); dispatch( userSlice.actions.setUser({ name: response.data.data.name, email: response.data.data.email, accessToken: response.data.data.accessToken, }) ); } catch (error) { console.error(error); if ((error as AxiosError).response?.data.code === "expired") { Alert.alert("알림", "다시 로그인 해주세요."); } } finally { SplashScreen.hide(); } }; getTokenAndRefresh(); }, [dispatch]);
- 미해결배달앱 클론코딩 [with React Native]
(맥설정)코드푸쉬 설정하기 강의중
저 같은 경우에 npm run appcenter-ios-key하면이 에러가 나왔는데 appcenter login 먼저 하면 브라우저창이 하나 더 뜨면서 액세스키가 나온것을 터미널 창에 입력하는곳에 붙여넣기 하고 진행한다음에 npm run appcenter-ios-key 를 하면 키값이 나왔습니다! 그리고 마지막에 제로초님 codepush:ios 명령어 치고 성공해도 브라우저에 안떠서 브라우저에 떠있는 명령어로 치니까 브라우저에 나타났습니다!
- 미해결배달앱 클론코딩 [with React Native]
안드로이드 FCM설정하기 중
안녕하세요 제로초님 강의대로 따라하다가 안드로이드에서 이런 에러가 떴는데 구글링해도 해결이 안되서 질문으로 남깁니다Multiple build operations failed. Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=com.facebook.react:react-native:0.71.0-rc.0, variantName=null, artifactFile=/Users/js/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/0.71.0-rc.0/7a7f5a0af6ebd8eb94f7e5f7495e9d9684b4f543/react-native-0.71.0-rc.0-debug.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=/Users/js/Delivery/android}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@679342af) Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=com.facebook.react:react-native:0.71.0-rc.0, variantName=null, artifactFile=/Users/js/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/0.71.0-rc.0/7a7f5a0af6ebd8eb94f7e5f7495e9d9684b4f543/react-native-0.71.0-rc.0-debug.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=/Users/js/Delivery/android}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@679342af) Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=com.facebook.react:react-native:0.71.0-rc.0, variantName=null, artifactFile=/Users/js/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/0.71.0-rc.0/7a7f5a0af6ebd8eb94f7e5f7495e9d9684b4f543/react-native-0.71.0-rc.0-debug.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=/Users/js/Delivery/android}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@679342af) Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=com.facebook.react:react-native:0.71.0-rc.0, variantName=null, artifactFile=/Users/js/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/0.71.0-rc.0/7a7f5a0af6ebd8eb94f7e5f7495e9d9684b4f543/react-native-0.71.0-rc.0-debug.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=/Users/js/Delivery/android}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@679342af)
- 미해결배달앱 클론코딩 [with React Native]
xcode 에 push Notification
안녕하세요 제로초님 xcode에 백그라운드모드는 있는데 push Notification 항목이 없습니다
- 미해결배달앱 클론코딩 [with React Native]
아이폰에서 티맵열기
안녕하세요 제로초님아이폰14프로를 연결해서 하고있는데 티맵이 설치가 안되어 있다고 알림창이 계속 뜹니다에러는 -canOpenURL: failed for URL: "tmap:" - error: "This app is not allowed to query for scheme tmap" [javascript] 'TMap callback', false이렇게 뜹니다다른분 질문보고 info.plist에서 <array><string>tmap</string></array>까지 하고 xcode는 어디에서 설정을 해주어야하는지 모르겠습니다
- 미해결배달앱 클론코딩 [with React Native]
앱아이콘
안녕하세요 제로초님 앱아이콘을 다운받는게 아니라 가지고 있는 이미지를 활용해서 생성하는건가요?
- 미해결배달앱 클론코딩 [with React Native]
메트로서버하고 에뮬레이터
안녕하세요 제로초님npm run android로 실행하면 앱은 켜지는데메트로서버하고 에뮬레이터가 연동이 안되어있습니다ios는 연동이 잘되는데 안드로이드만 안되어있습니다구글링해서 해본것은 adb devices하고 adb -s 디바이스명 reverse tcp:8081 tcp:8081까지 해봤습니다