Царство не имеет сеттера или ивара для своего моста, что запрещено

Я хочу использовать Jitsi-Meet (библиотека видеозвонков) с Realm. Когда я запускаю приложение на iOS, Realm не работает. Это показывает следующую ошибку:

2018-12-28 16:22:34.504 [error][tid:main][RCTModuleData.mm:179] Realm has no setter or ivar for its bridge, which is not permitted. You must either @synthesize the bridge property, or provide your own setter method.

Realm работает нормально, если я удаляю Jisti-Meet Library. И Jitsi-Meet прекрасно работает и без царства.

Действия по воспроизведению

  1. Создайте новое реагирующее приложение: react-native init AwesomeProject
  2. Установите realm-js: npm install realm --save а также react-native link realm
  3. Установить React Native Jisti Meet: npm install react-native-jitsi-meet --save
  4. В разделе "Настройка сборки" установите для параметра "Разбор мертвого кода" значение "Нет", для параметра " Включить битовый код" - значение "Нет" и " Всегда встраивать стандартные библиотеки Swift" - значение "Да"
  5. добавлять node_modules/react-native-jitsi-meet/ios/WebRTC.framework а также node_modules/react-native-jitsi-meet/ios/JitsiMeet.framework встраивать двоичные файлы.
  6. Выбрать Build Settings, находить Search Paths, Редактировать ОБА Framework Search Paths а также Library Search Paths, и добавьте путь к ОБАМ разделам: $(SRCROOT)/../node_modules/react-native-jitsi-meet/ios с recursive

Теперь запустите приложение, и приложение покажет ошибку.

Пример кода

имя файла: App.js

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, Button} from 'react-native';
import Realm from 'realm';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
  android:
    'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});


type Props = {};
export default class App extends Component<Props> {

  constructor(props) {
    super(props);
    this.state = { realm: null };
  }


  componentWillMount() {
    Realm.open({
      schema: [{name: 'Dog', properties: {name: 'string'}}]
    }).then(realm => {
      realm.write(() => {
        realm.create('Dog', {name: 'Rex'});
      });
      this.setState({ realm });
    });
  }

  render() {

    const info = this.state.realm
    ? 'Number of dogs in this Realm: ' + this.state.realm.objects('Dog').length
    : 'Loading...';


    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>Welcome to React Native!</Text>
        <Text style={styles.instructions}>To get started, edit App.js</Text>
        <Text style={styles.instructions}>{instructions}</Text>
        <Button title="Video" 
        // onPress = {() => initiateVideoCall()} 
        />
        <Text style={styles.welcome}>
          {info}
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

Версия Царства и Инструментов

  • Realm JS SDK версия: 2.21.1 (более низкие версии также имеют ту же проблему)
  • Собственный узел или реагирующий: RN 0,57,8
  • Клиентская ОС и версия: iOS Real Device - 12.1.2
  • MacOS: 10.13.6 High Sierra
  • Какой отладчик для React Native: Нет

0 ответов

Другие вопросы по тегам