V1.0.3 Granite 마이그레이션 이후 샌드박스 접속시 에러

{
  "dependencies": {
    "@apps-in-toss/web-framework": "^1.0.3",
    "@toss-design-system/mobile": "^2.1.0",
    "@toss-design-system/mobile-ait": "^2.1.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "react-unity-webgl": "^9.9.0"
  },
  "scripts": {
    "dev": "granite dev",
    "build": "granite build",
    "deploy": "ait deploy"
  },
  "devDependencies": {
    "@granite-js/plugin-router": "^0.1.22",
    "@types/react": "^19.1.8",
    "@types/react-dom": "^19.1.6",
    "typescript": "^5.8.3"
  }
}

위와 같이 패키지 맞추고 샌드박스는 홈페이지에 있는 toss-rn-miniapp-1.0.0-202508142113-release.apk 입니다. 미니앱으로 진입시 나는 에러입니다

Building React Native bundle... (platform: android)
 RN   LOG  Running "shared" with {"initialProps":{"initialColorPreference":"dark","loadingStartTs":1757563128611,"initialFontScale":"100"},"rootTag":81}
 RN   DEBUG  [Analytics] {
  "log_type": "screen",
  "log_name": "/::screen",
  "params": {
    "referrer": null,
    "deployment_id": "local",
    "deployment_timestamp": null
  }
}
 RN   ERROR  TypeError: undefined is not a function

This error is located at:
    in BuiltinNavigationBar (created by AppsInTossScreenContainer)
    in LoggingScreenOnMount (created by LoggingScreen)
    in LoggingScreen (created by AppsInTossScreenContainer)
    in AppsInTossScreenContainer (created by Component)
    in Component (created by SceneView)
    in StaticContainer
    in EnsureSingleNavigator (created by SceneView)
    in SceneView (created by SceneView)
    in RCTView (created by View)
    in View (created by DebugContainer)
    in DebugContainer (created by MaybeNestedStack)
    in MaybeNestedStack (created by SceneView)
    in RNSScreen
    in Unknown (created by InnerScreen)
    in Suspender (created by Freeze)
    in Suspense (created by Freeze)
    in Freeze (created by DelayedFreeze)
    in DelayedFreeze (created by InnerScreen)
    in InnerScreen (created by Screen)
    in Screen (created by SceneView)
    in SceneView (created by NativeStackViewInner)
    in Suspender (created by Freeze)
    in Suspense (created by Freeze)
    in Freeze (created by DelayedFreeze)
    in DelayedFreeze (created by ScreenStack)
    in RNSScreenStack (created by ScreenStack)
    in ScreenStack (created by NativeStackViewInner)
    in NativeStackViewInner (created by NativeStackView)
    in RCTView (created by View)
    in View (created by SafeAreaProviderCompat)
    in SafeAreaProviderCompat (created by NativeStackView)
    in NativeStackView (created by NativeStackNavigator)
    in PreventRemoveProvider (created by NavigationContent)
    in NavigationContent
    in Unknown (created by NativeStackNavigator)
    in NativeStackNavigator (created by Router)
    in TDSContainer (created by bound AppsInTossContainer)
    in RCTView (created by View)
    in View (created by HideAccessibilityView)
    in HideAccessibilityView (created by TDSProvider)
    in OverlayProvider (created by OverlayProvider)
    in OverlayProvider (created by TDSProvider)
    in HideAccessibilityProvider (created by TDSProvider)
    in RCTView (created by View)
    in View (created by GlobalView)
    in GlobalView (created by GlobalEventProvider)
    in GlobalEventProvider (created by TDSProvider)
    in RNGestureHandlerRootView (created by GestureHandlerRootView)
    in GestureHandlerRootView (created by TDSProvider)
    in SafeAreaProvider (created by TDSProvider)
    in TypographyThemeProvider (created by TDSProvider)
    in AdaptiveColorProvider (created by TDSProvider)
    in ColorPreferenceProvider (created by TDSProvider)
    in ThemeProvider (created by TDSProvider)
    in TDSProvider (created by bound AppsInTossContainer)
    in AppContainer (created by bound AppsInTossContainer)
    in bound AppsInTossContainer (created by Router)
    in CanGoBackGuard (created by Router)
    in EnsureSingleNavigator
    in BaseNavigationContainer
    in ThemeProvider
    in NavigationContainerInner (created by Router)
    in Router (created by AppRoot)
    in BackEventProvider (created by AppRoot)
    in RNCSafeAreaProvider (created by SafeAreaProvider)
    in SafeAreaProvider (created by AppRoot)
    in AppStateProvider (created by VisibilityProvider)
    in VisibilityChangedProvider (created by VisibilityProvider)
    in VisibilityProvider (created by App)
    in App (created by AppRoot)
    in InitialPropsProvider (created by AppRoot)
    in AppRoot (created by Root)
    in Root (created by component)
    in component
    in RCTView (created by View)
    in View (created by AppContainer)
    in RCTView (created by View)
    in View (created by AppContainer)
    in AppContainer
    in shared(RootComponent), js engine: hermes
 RN   WARN  Possible Unhandled Promise Rejection (id: 0):
TypeError: undefined is not a function
TypeError: undefined is not a function
    at invokeAppBridgeMethod (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:140:451184)
    at anonymous (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:140:376705)
    at commitHookEffectListMount (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:409148)
    at commitPassiveMountOnFiber (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:434716)
    at commitPassiveMountEffects_complete (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:434130)
    at commitPassiveMountEffects_begin (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:433840)
    at commitPassiveMountEffects (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:433463)
    at flushPassiveEffectsImpl (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:466624)
    at flushPassiveEffects (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:465592)
    at performSyncWorkOnRoot (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:451067)
    at flushSyncCallbacks (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:193295)
    at flushSyncCallbacksOnlyInLegacyMode (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:192975)
    at scheduleUpdateOnFiber (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:443181)
    at dispatchSetState (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:103:300540)
    at ?anon_0_ (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:135:286029)
    at next (native)
    at asyncGeneratorStep (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:26335)
    at _next (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:26667)
    at tryCallOne (/root/react-native/packages/react-native/ReactAndroid/hermes-engine/.cxx/MinSizeRel/a32195v3/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16)
    at anonymous (/root/react-native/packages/react-native/ReactAndroid/hermes-engine/.cxx/MinSizeRel/a32195v3/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27)
    at apply (native)
    at anonymous (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:47:36689)
    at _callTimer (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:47:34683)
    at _callReactNativeMicrotasksPass (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:47:35383)
    at callReactNativeMicrotasks (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:47:39575)
    at __callReactNativeMicrotasks (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:72159)
    at anonymous (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:67344)
    at __guard (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:71723)
    at flushedQueue (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=viva.republica.toss.test&modulesOnly=false&runModule=true:33:67298)

자문자답합니다. 샌드박스 다음 페이지에 있는것은 최신이 아니었습니다.

https://developers-apps-in-toss.toss.im/prepare/sandbox.html#%E1%84%89%E1%85%A2%E1%86%AB%E1%84%83%E1%85[…]%84%8B%E1%85%B5%E1%84%85%E1%85%A1%E1%86%AB

아래 url에서 더 최신버전 받아서 해결했습니다.

https://developers-apps-in-toss.toss.im/development/test/sandbox.html#%E1%84%89%E1%85%A2%E1%86%AB%E1%84%83%[…]8B%E1%85%B5%E1%84%85%E1%85%A1%E1%86%AB

3개의 좋아요

/prepare/sandbox.html 은 이전에 운영됐던 링크인데 자꾸 활성화가 되네요 수정하겠습니다