🌐

【解決法】Error (Xcode): 460 duplicate symbols for architecture x86_64

2022/11/26に公開

概要

Flutter初学者の自分がプロジェクトを進めていくうちに、
何度か出くわす意味のわからないエラーについての解決方法をまとめた記事です。
分かりづらい点や、誤り等ございましたら、コメントやTwitterのDMでご指摘いただけるとありがたいです。
この記事がどなたかの参考になれば幸いです!

目次

  1. 環境
  2. 解決のために注目したエラー文
  3. 解決方法
  4. まとめ
  5. 参考記事


1. 環境

  • macOS Ventura13.0(M1)
  • Flutter version 3.3.5
  • Xcode 14.0.1
    • 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. 参考記事

https://qiita.com/ken_sasaki2/items/3957d5f526e95dd97db7

Discussion