🌐
【解決法】Error (Xcode): 460 duplicate symbols for architecture x86_64
概要
Flutter初学者の自分がプロジェクトを進めていくうちに、
何度か出くわす意味のわからないエラーについての解決方法をまとめた記事です。
分かりづらい点や、誤り等ございましたら、コメントやTwitterのDMでご指摘いただけるとありがたいです。
この記事がどなたかの参考になれば幸いです!
目次
- 環境
- 解決のために注目したエラー文
- 解決方法
- まとめ
- 参考記事
1. 環境
- macOS Ventura13.0(M1)
- Flutter version 3.3.5
- Xcode 14.0.1
- CocoaPods version 1.11.3
- CocoaPods version 1.11.3
2. 解決のために注目したエラー文
terminal
Error (Xcode): 460 duplicate symbols for architecture x86_64
1行目からエラーを見ようと思って遡りましたが、長すぎてログが途切れていたので、このエラー文のみで調べました。
3. 解決方法
①podに関する3つのファイルを削除
自分は他の方の記事を参考にし、自分のプロジェクト直下にあるiosフォルダーにて
下記の3つのファイル、フォルダーを削除しました。
プロジェクト/ios
vscodeの画像で説明
自分のプロジェクト内のiosフォルダ内で
- Pods
- Podfile
- Podfile.lock
上記3つを削除(下の画像の赤い丸)
②Podfileを改めて作成
下記コマンドをターミナルで実行し、Podfileをプロジェクトに再度作成していきます。
terminal
pod init
コマンドを実行後、下記のコードのような初期状態のPodfileが作成されます。
Podfile
# Uncomment the next line to define a global platform for your project
# platform :ios, '11.0'
target 'Runner' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for Runner
end
③Podfileに必要なコードを記述
自分はFlutterのプロジェクトをいくつかいじってきて、
Podfileに何かを記述することがなかったので、
自分はエラーが出る前にGithubにコミットしたPodfileの内容をコピーペーストをしました。
下記のコードですが、見たところ自分の他のFlutterプロジェクトも全くおなじ内容だったので、
Flutterでこの記事のタイトルのようなエラーが出た方は、コピーペーストで解決すると思います。
(責任は取りません!!!!!)
Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '11.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
4. まとめ
簡単にまとめるとPod関係のものを削除後、作り直し、必要なコードを記述する。
もしエラーを解決できたり、力になれた場合いいねボタン押していただけると励みになります!!
ここまで読んでいただきありがとうございました!
5. 参考記事
Discussion