ポッドを使用するときは、プロジェクトファイル(.xcworkspace
)ではなく.xcodeproj
ファイルを開いてください。これでリンクの問題が解決するはずです。
クリーンビルドが必要な場合があります。助けてくれました。ビルドをクリーンにするには製品->クリーン
この問題を引き起こすいくつかのケースがあります。現時点では、この質問には受け入れられた回答はありません。また、同じ問題の別の解決策を見つけました。回答/経験をここに投稿しています。
アプリケーションで、[ターゲット]-> [ビルド設定]に移動すると、次の属性が見つかります。
それらの値をNOに設定してから、プロジェクトを削除してビルドします。
次の手順は、この問題を取り除くのに役立ちました。
それが私のように誰かの時間を節約することを願っています。
WikitudeSDKのローカルファイルをターゲットから削除します。 Xcodeは、ポッドまたはローカルを選択したライブラリのパス間で混乱しています。
また、Podfileを再インストールして、Podファイルからwikitudeを削除してください。リンカの検索パス設定、ビルド設定で、記載されているパスを確認して、必要なライブラリを見つけます。
最後に、ポッドを更新する前にgemをインストールします
[バイナリとライブラリをリンク]オプションをオンにする必要があります。プロジェクトに含まれていないポッドを構築する場合があります。
左側のパネルでプロジェクト名をクリックし、[ターゲット]の下でもう一度クリックして(名前をクリック)、ビルドフェーズ>ファイルとバイナリをリンク。使用しないものはすべて削除してください。
解決済み-ベストウェイ
pod deintegrate
pod install
Xcworkspaceを開き、実行する前にクリーニングします。
私の解決策は、「/ platforms/ios」フォルダー内にある.xcodeprojではなく.xcworkspaceファイルを開くことでした。
「変数名」の重複のような同じエラーが発生しました。すべての.mファイルのすべての変数と関数名をチェックし、他のファイルと同じでないことを確認する必要があります。その後、クリーンアップしてビルドします。
それは私のために働いています。
私の場合、エラーが発生した理由はわかりません。しばらく前に作成した別のプロジェクトのコードを再利用し、コードを適応させた後、常に「Apple Mach -O Linkerコマンドが失敗しました」というメッセージが表示されました。私の最良の推測は、プロジェクトからいくつかのファイルを作成/削除したために起こったということです。
私にとってそれを解決したのはこれでした:
馬鹿げているように聞こえますが、理由はわかりませんが、うまくいきました。
プロジェクトを上書きするときにエラーが発生しました。
それでもエラーが発生しました:
Clang設定の変更
ionic cordovaプラットフォームは、新しいビルドごとにiosプラットフォームフォルダーを削除するのではなく、iosを削除します(もちろん、プラットフォームを再度追加します)
指示に従ってRubyを更新: https://forum.ionicframework.com/t/x-code-8-beta-2-Apple-mach-o-linker-id-error/ 71998
Githubで別のブランチに変更した後、エラーは解決しましたが、おそらく他のトラブルシューティング方法の1つが役割を果たしました。これで、すべてのブランチがMach -Oリンカーエラーなしでxcodeで実行されます。
私は同じ問題に直面していました。同じ名前の2つのクラスを宣言しました。したがって、クラス名と競合していました。クラス名の更新後、それは私のために働いた。
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/
うまくいきました。
同様の問題があり、フレームワークをプロジェクトに追加するときに「必要に応じてコピー」チェックボックスを有効にする必要がありました。参照は私にはうまくいきませんでした...