🛠️ DT_TOOLCHAIN_DIR cannot be used のエラー解決(CocoaPods 1.13.0/Xcode 15)
エラー内容
CocoaPods 1.13.0・Xcode 15 にアップデートして pod install
したら下記エラーが出た
DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead
問題があった環境
- CocoaPods 1.13.0
- gem で install
- Xcode 15.0
- ruby 2.6.10
結論
CocoaPods 1.12.1 に戻して Podilfe に下記を追加すれば動く🫨
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
# 以下を追加 ----
target.build_configurations.each do |config|
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
end
# ---- ここまで
end
end
やったこと詳細
で CocoaPods 1.13 にすれば治るって書かれてるけど動かない…!
Using CocoaPods 1.13 and XCode 15 this bug is still there as of Oct 2023.
このコメントにも書かれてる通り, CocoaPods 1.13.0 だとまだ動かないらしいので CocoaPods 1.12.1 に戻すしかなさそう🤧
ローカルの CocoaPods が 1.13.0 だったのでアンインストールしてから入れ直しする
sudo gem uninstall cocoapods
Password:
Successfully uninstalled cocoapods-1.13.0
新しく install する際に System で使われてる ruby がめちゃ古(2.6.10)だったので rbenv で入れてる中で最新だった 3.2.2 にする
rbenv global 3.2.2
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
sudo gem install cocoapods -v 1.12.1
で CocoaPods 1.12.1 を入れて pod --version
を実行すると
bundler: failed to load command: pod (/opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod)
/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.1.0/lib/active_support/core_ext/array/conversions.rb:108:in `<class:Array>': undefined method `deprecator' for ActiveSupport:Module (NoMethodError)
deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator
^^^^^^^^^^^
エラーになっちゃった❗️😡sudo gem install activesupport -v 7.0.8
と sudo gem uninstall activesupport -v 7.1.0
をして一つ前の 7.0.8 に差し替えた
※修正 PR が出されており,2023/10/09 時点で既に merge されてるので上記に関しては CocoaPods の次バージョンくらいで治りそう💡
$ pod --version
1.12.1
無事はいった〜✌🏻
所感
なにかあればコメントください〜🔰
Gemfile で管理したかったけど無理だった💥
CocoaPods のバージョンに振り回されるのが嫌なので,プロジェクトごとに Gemfile で CocoaPods を管理したかったので Gemfile 作って .zshrc のエイリアスに alias pod="bundle exec pod"
を追加してヨシ!って思ったけど,
なんか差分見る感じ flutter run
内で行われる pod install
が bundle exec pod install
になってない気がするな…って思ったらこんな issue が既にあった🫥エ〜ン
SDK いじるとかでなんとかできそうな気もしたけど今回は一旦無しで🐻
その他はまってしまったぽんこつポイント🐣
Podfile にコード追加する際に flutter_additional_ios_build_settings(target)
を消してしまっていて,ずっと
Failed to build iOS app
Could not build the precompiled application for the device.
Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found
のエラーに悩まされてた👊🏻
調べてみて
-
rm ios/Flutter/Flutter.podspec
してflutter clean
pod setup
などしたけど治らなくてギェ〜〜🤬ってしてた👊🏻👊🏻👊🏻
Discussion