web-dev-qa-db-ja.com

「use_native_modules!」での反応ネイティブのiOS Podfileの問題

私の反応ネイティブプロジェクト([email protected])のios/dirでpod installそしてこのエラーを取得します:

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

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

私はこのPodfileで何も追加または変更していません-これはすべて反応ネイティブ生成です。 (私はiOSの開発に慣れていないので、これは簡単な修正かもしれません、何を探すべきか分かりません:-|)助けてくれてありがとう!

これが私の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

正解は次のとおりです。

1-PODファイルの最上部にこの行を含める必要があります

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

2-package.jsonおよびnode_moduleフォルダにこのモジュールがインストールされていることを確認してください

cli-platform-ios/native_modules

3-yarn installを実行しても見つからない場合-マシンに古いキャッシュnode_modulesがあり、パッケージを再インストールする前にそれをクリーンアップする必要があることを意味します。

4-キャッシュを消去しますyarn cache clean

5-このファイルreact-native.config.jsがあり、その構成が有効であることを確認してください。また、存在しないNPMパッケージがないことを確認してください。この手順は最後であり、ほとんどがエラーの原因です

私の例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-ノードパッケージyarn installをインストールすると、ポッドが機能するようになります。 pod install --repo-update

ハッピーコーディング!

28
Meabed

@ react-native-community/cli-platform-iosを3.1.0から3.0.0にダウングレードし、機能しました。

追加されました

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

package.jsonに。

Npm installを実行し、次にpod installを実行して再び機能させます。

3
Vitor Lopes

使用している場合

_pod install --project-directory=ios
_

あなたは置き換えることによってPodfileを微調整する必要があるかもしれません

_use_native_modules!_

use_native_modules!(".")

おそらくこの動作は将来的に改善されるでしょう、私はそれについて問題を公開しました https://github.com/react-native-community/cli/issues/657

3
MoOx

私はnode_modules全体とRNキャッシュフォルダーを削除し、クリーンな再インストールを行いました。これにより、「use_native_modules」の問題がこれまでに修正されました。 )

3
ToniG

私はnode_modulesを削除し、npm installを使用して再インストールしました。その後、/iosフォルダーに移動し、pod installを実行しました。

3
Naveen Raju

これは、お使いのデバイスで古いバージョンの糸が使用されているためです。macOSを使用している場合は、次のリンクで糸をアップグレード/インストールできます: ここにあります

注意してくださいnode-moduleおよびyarn.lockファイルを削除し、すべてのパッケージを再インストールして、iosに移動しますフォルダに移動し、pod installを実行します。

2
jsina

@react-native-community/cli-platform-iospackage.json

実行しない場合:

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

その後

cd ios && pod install

1
B. Mohammad

これは今日突然起こり始め、問題は私のディレクトリ構造のスペースでした。例:

/ path/to/Directory\Name/RNProjectが!native_modulesエラーをスローします/ path/to/DirectoryName/RNProjectは正常に機能します

ポッドは「ディレクトリ」を探していました。

0
Matthew Gruman

Use_native_modulesを取り除くことを中心にしない、この問題の一貫して再現可能な解決策を持っている人はいますか?私は調べました:

  • 変更Rubyバージョン
  • CocoaPodsバージョンの変更
  • NPMおよびCocoapodsキャッシュの無効化

そして、私は問題を修正することができません。それはいくつかのnpm依存関係であるように見えますが、私のチームの他の人はそれを見ていません。

0
Tyler Agnew

Expoアプリをreact-native run-iosしようとした後、このエラーが発生しました。取得したエラーは、ポッドに問題があることを示しているため、cd ios && pod installを実行しました。これにより、OPと同様のエラーが発生しました。

その場合、明らかにexpo startではなくreact-native run-iosにする必要があります。

いくつかのreact-native-npmパッケージを削除した後(つまり:react-native-bluetooth-serial、react-native-soundなど)pod install機能します。

ポッドインストールエラーは、カカオポッドをサポートしていない古い反応ネイティブパッケージに関連しているようです。詳細はわかりませんが、node_modules&package.jsonからこれらのパッケージを削除すると問題が解決しました。

0
Cory Robinson

わかりました、私の推測はほとんどの人のためです、受け入れられた答えは彼らの問題を修正します。私にとって、修正は非常に奇妙だったので、ここに追加する必要がありました。

何らかの理由で、Androidネイティブセットアップで無効なAndroidManifest.xmlファイルを作成してしまいました。

エラー出力全体を確認したところ、エラーの最初の行は行番号と列番号を参照しています。その時点で、xmlファイルの中でxmlの書式設定が壊れていました。

look の説明が記載されたGitHubの問題を見つけるための2日間の検索。

0
Doug Watkins