React Native IOS Simulator показывает пустой белый экран - отлично работает на AndroidIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 React Native IOS Simulator показывает пустой белый экран - отлично работает на Android

Сообщение Anonymous »

Описание проблемы < /h2>
У меня есть нативный проект React, который идеально работает на Android, но показывает только пустой белый экран при запуске на iOS -симуляторе. When building and running through XCode, I can see the app launches but only displays a white screen.
Environment Details
  • React Native Version: 0.74.5 (upgraded from 0.69.3)
  • iOS Development Target: 13.4
  • node.js версии : v18.20.8 (через NVM)
  • платформа : macos sonoma (x86_64)
  • xcode : строительство для ios simulator

    Конфигурация проекта < /h2>
    appdelegate.mm
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    RCTAppSetupPrepareApp(application, false);
    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
    UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"mobile_1969", nil, YES);

    if (@available(iOS 13.0, *)) {
    rootView.backgroundColor = [UIColor systemBackgroundColor];
    } else {
    rootView.backgroundColor = [UIColor whiteColor];
    }

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    UIViewController *rootViewController = [UIViewController new];
    rootViewController.view = rootView;
    self.window.rootViewController = rootViewController;
    [self.window makeKeyAndVisible];
    return YES;
    }

    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
    {
    #if DEBUG
    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
    #else
    return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    #endif
    }
    < /code>
    podfile (ключевые части) < /h3>
    platform :ios, '13.4'
    install! 'cocoapods', :deterministic_uuids => false

    # Hermes enabled
    use_react_native!(
    :path => config[:reactNativePath],
    :hermes_enabled => true,
    :fabric_enabled => flags[:fabric_enabled],
    :app_path => "#{Pod::Config.instance.installation_root}/.."
    )
    < /code>
    metro config < /h3>
    const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
    const defaultConfig = getDefaultConfig(__dirname);

    const config = {
    transformer: {
    getTransformOptions: async () => ({
    transform: {
    experimentalImportSupport: false,
    inlineRequires: true,
    },
    }),
    babelTransformerPath: require.resolve('react-native-svg-transformer'),
    },
    resolver: {
    assetExts: assetExts.filter(ext => ext !== 'svg'),
    sourceExts: [...sourceExts, 'svg'],
    },
    };

    module.exports = mergeConfig(defaultConfig, config);
    < /code>
    index.js точка входа < /h3>
    import React from 'react'
    import 'react-native-gesture-handler'
    import { AppRegistry } from 'react-native'
    import App from './App'
    import { name as appName } from './app.json'
    import { Provider } from 'react-redux'
    import { store, persistor } from './src/store'
    import { PersistGate } from 'redux-persist/integration/react'
    import ErrorBoundary from './src/components/error/ErrorBoundary'

    const Application = () => (







    )

    AppRegistry.registerComponent(appName, () => Application)
    < /code>
    зависимости от ключей < /h3>
    {
    "react": "18.2.0",
    "react-native": "0.74.5",
    "react-native-gesture-handler": "^1.10.3",
    "react-native-screens": "3.27.0",
    "react-native-safe-area-context": "^1.0.0",
    "@react-navigation/native": "^5.3.0",
    "@react-navigation/stack": "^5.3.2",
    "react-redux": "^7.2.0",
    "redux-persist": "^5.10.0"
    }
    [/code]
    Steps Tried
    • ✅ Android: App runs perfectly - all UI components and navigation work
    • ❌ iOS Simulator: Only shows white/blank screen
    • Clean builds: Deleted Pods, , ran pod install Podfile.lock
    • Metro cache reset: npx react-native start --reset-cache
    • Simulator reset: Erased all content and settings
    Вопросы < /h2>

    Почему мост React сразу же инвалидируется на iOS, но хорошо работает над Android? В частности? Заранее спасибо.


    Подробнее здесь: https://stackoverflow.com/questions/797 ... on-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • React Native IOS Simulator показывает пустой белый экран - отлично работает на Android
    Anonymous » » в форуме IOS
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Приложение React Native для iOS показывает белый экран (React Native 0.73.5)
    Anonymous » » в форуме IOS
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Приложение показывает пустой белый экран, а сайт - белый список
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Приложение показывает пустой белый экран, а сайт - белый список
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Нативное приложение React для Android показывает пустой белый экран после сборки
    Anonymous » » в форуме Android
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»