web-dev-qa-db-ja.com

Apple Mach -O Linkerコマンドが失敗しました

random issue is happening

PODインストールを更新した後、Xcodeは新しい問題を発生させました:

29
Phoenix Haroz

ポッドを使用するときは、プロジェクトファイル(.xcworkspace)ではなく.xcodeprojファイルを開いてください。これでリンクの問題が解決するはずです。

92
blackops

クリーンビルドが必要な場合があります。助けてくれました。ビルドをクリーンにするには製品->クリーン

18
MRustamzade

この問題を引き起こすいくつかのケースがあります。現時点では、この質問には受け入れられた回答はありません。また、同じ問題の別の解決策を見つけました。回答/経験をここに投稿しています。

アプリケーションで、[ターゲット]-> [ビルド設定]に移動すると、次の属性が見つかります。

  • CLANG_WARN_INFINITE_RECURSION
  • CLANG_WARN_SUSPICIOUS_MOVE
  • GCC_NO_COMMON_BLOCKS

それらの値をNOに設定してから、プロジェクトを削除してビルドします。

14
AnujAroshA

次の手順は、この問題を取り除くのに役立ちました。

  1. プロジェクトパスに移動し、PodsフォルダーとPodfile.lockファイルを削除します。
  2. 「pod install」コマンドを使用してポッドを再インストールします。
  3. Xcworkspaceを開き、実行する前にクリーニングします。

それが私のように誰かの時間を節約することを願っています。

13
CMA

プロジェクトを閉じてプロジェクトパスに移動し、.xcworkspaceではなく.xcodeprojを使用してプロジェクトを選択します。既存のプロジェクトにリンクしたライブラリが含まれていない理由。

ss

11
Naveen Kumar M

WikitudeSDKのローカルファイルをターゲットから削除します。 Xcodeは、ポッドまたはローカルを選択したライブラリのパス間で混乱しています。

また、Podfileを再インストールして、Podファイルからwikitudeを削除してください。リンカの検索パス設定、ビルド設定で、記載されているパスを確認して、必要なライブラリを見つけます。

最後に、ポッドを更新する前にgemをインストールします

6
S.Jain

[バイナリとライブラリをリンク]オプションをオンにする必要があります。プロジェクトに含まれていないポッドを構築する場合があります。

左側のパネルでプロジェクト名をクリックし、[ターゲット]の下でもう一度クリックして(名前をクリック)、ビルドフェーズ>ファイルとバイナリをリンク。使用しないものはすべて削除してください。

3
Boomerange

解決済み-ベストウェイ

pod deintegrate  
pod install

Xcworkspaceを開き、実行する前にクリーニングします。

2
Lakhdeep Singh

私の解決策は、「/ platforms/ios」フォルダー内にある.xcodeprojではなく.xcworkspaceファイルを開くことでした。

1
Punja Solanki

「変数名」の重複のような同じエラーが発生しました。すべての.mファイルのすべての変数と関数名をチェックし、他のファイルと同じでないことを確認する必要があります。その後、クリーンアップしてビルドします。

それは私のために働いています。

1
Yuvraj Sinh

私の場合、エラーが発生した理由はわかりません。しばらく前に作成した別のプロジェクトのコードを再利用し、コードを適応させた後、常に「Apple Mach -O Linkerコマンドが失敗しました」というメッセージが表示されました。私の最良の推測は、プロジェクトからいくつかのファイルを作成/削除したために起こったということです。

私にとってそれを解決したのはこれでした:

  • 新しいプロジェクトを作成する
  • 古いプロジェクトから必要なファイルをすべて新しいプロジェクトにコピーします(ドラッグアンドドロップ、[必要に応じてコピー]チェックボックスを忘れないでください)
  • ビルドして動作することを確認します

馬鹿げているように聞こえますが、理由はわかりませんが、うまくいきました。

0
Bepa1012

プロジェクトを上書きするときにエラーが発生しました。

それでもエラーが発生しました:

Githubで別のブランチに変更した後、エラーは解決しましたが、おそらく他のトラブルシューティング方法の1つが役割を果たしました。これで、すべてのブランチがMach -Oリンカーエラーなしでxcodeで実行されます。

0
Bernie 2Google

私は同じ問題に直面していました。同じ名前の2つのクラスを宣言しました。したがって、クラス名と競合していました。クラス名の更新後、それは私のために働いた。

0
Shubham Singh

ionic 3アプリのコンパイルにXCodeを使用しています。

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.10.1
    ionic (Ionic CLI) : 3.10.1

global packages:

    Cordova CLI : 7.0.1 

local packages:

    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : Android 6.2.3 ios 4.5.0
    Ionic Framework    : ionic-angular 3.6.0

System:

    ios-sim : 5.0.8 
    Node    : v8.4.0
    npm     : 5.4.0 
    OS      : OS X Yosemite
    Xcode   : Xcode 7.2 Build version 7C68 

Iosのほとんどのファイルには書き込み権限がありませんでした。これは主な問題でした。
iosファイルの権限を変更したばかりで、コマンドを使用して問題を解決しました。

Sudo chmod -R 775 platforms/ios/ 

うまくいきました。

0
S.Yadav

同様の問題があり、フレームワークをプロジェクトに追加するときに「必要に応じてコピー」チェックボックスを有効にする必要がありました。参照は私にはうまくいきませんでした...

0
jocabola