davider0 / g30-prototype

1 stars 0 forks source link

Enlazar librería de reconocimiento de voz a Gradle y Cocoapods (final) #5

Open davider0 opened 3 months ago

davider0 commented 3 months ago

Debido a que la librería de React Native Voice usa código nativo (ver más en #1) para el reconocimiento de voz, no va a funcionar en ninguna de las aplicaciones de Expo Go, ni de iOS ni Android (esto quiere decir que sólo se podrá ver el resultado de la aplicación cuando se haya producido una build de la misma, no durante el desarrollo).

El motivo por el que creo esta issue es porque no tengo un Mac y no puedo enlazar a iOS de momento, y no voy a hacer el commit hasta que se enlacen las dos a la vez. Por lo tanto es imprescindible hacer los siguientes cambios antes de intentar crear una build de la aplicación (como exportarlo para iOS o Android):

Enlazar en Android

  1. Añadir en android/setting.gradle:
    ...
    include ':@react-native-voice_voice', ':app'
    project(':@react-native-voice_voice').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-voice/voice/android')
  2. Añadir en android/app/build.gradle:
...
dependencies {
    ...
    compile project(':@react-native-voice_voice')
}
  1. Añadir en MainApplication.kt:

import android.app.Application;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactPackage;
...
import com.wenkesj.voice.VoicePackage; // <------ Add this!
...

public class MainActivity extends Activity implements ReactApplication {
...
    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new VoicePackage() // <------ Add this!
        );
    }
}

(Ni siquiera sé si esto va a funcionar porque en este proyecto usamos Kotlin y no Java)

Enlazar iOS

(esto sólo se puede hacer si tienes MAC)

  1. Instala Xcode
  2. Copia y pega la carpeta 'ios' en tu escritorio
  3. Abre en Xcode esa carpeta
  4. Arrastra Voice.xcodeproj de la carpeta @react-native-voice/voice/ios ubicada en node-modules (de este proyecto de github) al grupo 'Libraries' en el projecto de Xcode. Paso a paso
  5. Haz clic en el archivo del proyecto principal en Xcode (el que representa el .xcodeproj), selecciona 'Build Phases' y arrastra de la carpeta Libraries/Voice.xcodeproj/Products la librería estática lib.Voice.a hacia Link Binary With Libraries
  6. Guardalo de alguna forma y arrastra 'ios' de vuelta y selecciona Reemplazar para todo