web-dev-qa-db-fra.com

problème de podfile ios react-native avec "use_native_modules!"

Dans mon projet react-native ([email protected]) dans l'ios/dir, je lance pod install et obtenez cette erreur:

[!] Invalid `Podfile` file: no implicit conversion of nil into String.

 #  from /Users/coryrobinson/projects/hhs2/ios/Podfile:37
 #  -------------------------------------------
 #  
 >    use_native_modules!
 #  end
 #  -------------------------------------------

Je n'ai rien ajouté ni changé dans ce Podfile - tout est généré en natif. (Je ne suis pas expérimenté dans le développement iOS, donc cela pourrait être une solution simple, je ne sais pas quoi chercher: - |) Merci pour toute aide!

Voici mon Podfile

platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

target 'hhs2' do
  # Pods for hhs2
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/React'
  pod 'React-DevSupport', :path => '../node_modules/react-native/React'
  pod 'React-fishhook', :path => '../node_modules/react-native/Libraries/fishhook'
  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
  pod 'RNFS', :path => '../node_modules/react-native-fs'

  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

  target 'hhs2Tests' do
    inherit! :search_paths
    # Pods for testing
  end

  use_native_modules!
end

target 'hhs2-tvOS' do
  # Pods for hhs2-tvOS

  target 'hhs2-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end

end
24
Cory Robinson

Voici la bonne réponse:

1 - Votre fichier POD doit contenir cette ligne en haut

require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

2 - Assurez-vous que votre package.json et node_module dossiers a ce module installé

cli-platform-ios/native_modules

3 - Si vous n'avez pas trouvé après avoir exécuté yarn install - signifie que vous avez un ancien cache node_modules dans votre machine et que vous devez le nettoyer avant de réinstaller le package.

4 - Nettoyer le cache yarn cache clean

5 - Assurez-vous d'avoir ce fichier react-native.config.js et sa configuration est VALIDE - et il n'a pas de packages NPM non existants - cette étape est LA DERNIÈRE ET PRINCIPALEMENT LA CAUSE de l'erreur

Exemple de mon react-native.config.js

module.exports = {
  project: {
    ios: {},
    Android: {},
  },
  assets: ['./assets/fonts/']
  dependencies: {}, // make sure this deps are all valid installed packages or empty if you don't need it
};

6 - Installer les packages de nœuds yarn install et vos pods devraient fonctionner maintenant! pod install --repo-update

Codage HEUREUX!

28
Meabed

Rétrogradé @ react-native-community/cli-platform-ios de 3.1.0 à 3.0.0 et cela a fonctionné.

Ajoutée

"@react-native-community/cli-platform-ios": "3.0.0"

à package.json.

Exécutez npm install puis pod install pour le faire fonctionner à nouveau.

3
Vitor Lopes

Si vous utilisez

pod install --project-directory=ios

vous devrez peut-être modifier le podfile en remplaçant

use_native_modules!

à

use_native_modules!(".")

Peut-être que ce comportement sera amélioré à l'avenir, j'ai ouvert un problème à ce sujet https://github.com/react-native-community/cli/issues/657

3
MoOx

j'ai juste laissé tomber tout le dossier node_modules et le cache RN et j'ai fait une réinstallation propre, cela a résolu le problème "use_native_modules" jusqu'à présent .... mais après cela j'ai dû me tracasser beaucoup avec d'autres bibliothèques qui n'étaient tout simplement pas prêtes pour RN0.60; )

3
ToniG

Pour moi, j'ai supprimé le node_modules et réinstallé à l'aide de npm install. Après cela, j'ai accédé à /ios dossier et a exécuté pod install ça a marché.

3
Naveen Raju

c'est parce que la version de fil dépassée sur votre appareil, si vous sur macOS vous pouvez mettre à niveau/installer le fil avec suivez ce lien: le voici

soyez conscient de supprimer node-module et yarn.lock fichier, réinstallez tous les packages, accédez au dossier ios et exécutez pod install.

2
jsina

Vérifiez si vous avez @react-native-community/cli-platform-ios dans votre package.json,

si vous ne courez pas:

npm install @react-native-community/cli-platform-ios

puis

cd ios && pod install

1
B. Mohammad

Cela a commencé à se produire à l'improviste aujourd'hui, et le problème était un espace dans ma structure de répertoires. Ex:

/ path/to/Directory\Name/RNProject renvoie l'erreur! native_modules/path/to/DirectoryName/RNProject fonctionne comme il se doit

Pods recherchait "Annuaire".

0
Matthew Gruman

Quelqu'un a-t-il une solution constamment recréable pour ce problème qui ne tourne pas autour de la suppression des use_native_modules? J'ai étudié:

  • Modification de la version Ruby
  • Changer la version de CocoaPods
  • Invalidation du cache NPM et Cocoapods

Et je ne peux pas résoudre le problème. Il semble que ce soit une dépendance npm, mais d'autres membres de mon équipe ne le voient pas.

0
Tyler Agnew

J'ai eu cette erreur après avoir essayé de react-native run-ios une application Expo. L'erreur que j'ai reçue a indiqué que quelque chose n'allait pas avec les pods, j'ai donc exécuté cd ios && pod install, c'est ainsi que j'ai eu une erreur similaire à celle de l'OP.

Dans ce cas, vous devez évidemment expo start au lieu de react-native run-ios.

Après avoir supprimé plusieurs packages npm react-native (c.-à-d. React-native-bluetooth-serial, react-native-sound, etc.) pod install travaux.

Il semble que l'erreur d'installation des pods soit liée à des packages plus réactifs natifs qui ne prennent pas en charge les pods de cacao? Je ne suis pas sûr des détails, mais la suppression de ces packages de node_modules & package.json a résolu mon problème.

0
Cory Robinson

Ok, je suppose que pour la plupart des gens, la réponse acceptée résoudra leur problème. Pour moi, le correctif était si bizarre, j'ai dû l'ajouter ici.

Pour une raison quelconque, j'ai fini par créer un fichier AndroidManifest.xml Non valide dans ma configuration native Android Android.

J'ai regardé la sortie d'erreur complète et les premières lignes de l'erreur faisaient référence à un numéro de ligne et à un numéro de colonne. À ce stade de mon fichier xml, j'ai cassé le formatage xml.

2 jours de recherche pour trouver un problème GitHub avec une description de l'endroit où look .

0
Doug Watkins