私はアプリでDropBox Core APIを使用しているため、XCTestフレームワークを追加する必要があります。XCTestフレームワークを追加していないと、アプリはDropboxに接続できませんが、フレームワークを追加すると、シミュレーターのビルド中にエラーが発生します。私のコードには何も問題はありません!エラーは次のとおりです。
Ld /Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Products/Debug-iphonesimulator/SnapDrop!.app/SnapDrop! normal i386
cd "/Users/Zach/Desktop/SnapDrop!"
setenv IPHONEOS_DEPLOYMENT_TARGET 6.1
setenv PATH "/Applications/Xcode5-DP6.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode5-DP6.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode5-DP6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Arch i386 -isysroot /Applications/Xcode5-DP6.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -L/Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Products/Debug-iphonesimulator -F/Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Products/Debug-iphonesimulator -F/Users/Zach/Downloads/dropbox-ios-sdk-1.3.5 -F/Users/Zach/Downloads/dropbox-ios-sync-sdk-1-1.1.0 -F/Applications/Xcode5-DP6.app/Contents/Developer/Library/Frameworks -F/Users/Zach/Desktop -filelist /Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Intermediates/SnapDrop!.build/Debug-iphonesimulator/SnapDrop!.build/Objects-normal/i386/SnapDrop!.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.1 -framework iAd -framework AssetsLibrary -framework QuartzCore -framework SystemConfiguration -framework Security -framework CFNetwork -framework XCTest -framework Dropbox -framework DropboxSDK -framework CoreGraphics -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Intermediates/SnapDrop!.build/Debug-iphonesimulator/SnapDrop!.build/Objects-normal/i386/SnapDrop!_dependency_info.dat -o /Users/Zach/Library/Developer/Xcode/DerivedData/SnapDrop!-fchnxyvnqyeefscfhmohrzxtiqeb/Build/Products/Debug-iphonesimulator/SnapDrop!.app/SnapDrop!
ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode5-DP6.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私は何をすべきか?フレームワークが破損している場合、再インストールの方法を教えてください。 Xcodeを削除して再インストールしようとしましたが、運がありません。
マイク・ウェラーに同意します。おそらく、実際のアプリコードでXCTestフレームワークにリンクしないでください。 XCTestフレームワークを削除します。リンカーエラーを調べて、フレームワークを参照しているものを削除します。洗い、すすぎ、繰り返します。
テスト対象がある場合、それは異なります。 SenTestKitからXCTestへの移行中に簡単に発生する可能性があるのは、iOSフレームワークではなくMac OS Xフレームワークに対してリンクする間違ったフレームワーク検索パスを持っていることです。これは機能しません。
正しいフレームワーク検索パス設定が何であるかを簡単に確認するには、ダミープロジェクトを作成し、テストターゲットのビルド設定を開いて、「フレームワーク検索パス」をフィルターします。
正しいバニラのパスは次のとおりです。
$(SDKROOT)/Developer/Library/Frameworks (non-recursive)
$(inherited) (non-recursive)
$(DEVELOPER_FRAMEWORKS_DIR) (non-recursive)
この問題の可能な解決策に追加:
MyApplicationTests.mファイルが含まれていないことを確認してください
プロジェクトの非テスト対象の「ソースのコンパイル」リスト。
これは、ディスク上のフォルダーをクリーンアップしたときに発生する可能性があります
そして、例えば、物事を手動で移動しました。
Project > Targets > MyApplication > Build Phases > Compile Sources
最も明らかな症状は、XCTestエラーが発生することです
iPhone(またはシミュレーター)でアプリを実行しようとしたとき。
述べられているように、XCTestを通常のアプリケーションコードに含めないでください。
他の回答でも。
Project Navigator> Targets> 'Project Name'> Build Phasesから「XCTest.Framework」ファイルを削除しました。次に、[製品](ドロップダウン)> [クリーニング]。私のためにやった!
テスト対象がある場合は、そのBase SDK
に設定されています iOS 7.0
(またはそれ以上:Latest iOS
)
小さなメモを追加する必要があります。
私のプロジェクトではすべてのパスが正しい(デフォルトの3つのパス)がありましたが、順序は異なっていました。 (リスト内でマウスでパスをドラッグして)正しい順序を設定すると、問題が修正されました。
上記のどれも私にはうまくいきません、私はまだエラーを受け取ります、
ld:警告:自動リンクが提供された '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest'、ファイル/Applications/Xcode.app/Contents/Developer/Library/に必要なアーキテクチャi386がありませんFrameworks/XCTest.framework/XCTest(2スライス)
XCode 6のリファクタリングオプションを使用して、適切に実行されているSenTestsをXCTestsに変換しました。
ただし、フレームワークの検索パスをに設定すると、
$(SDKROOT)/Developer/Library/Frameworks and
$(inherited)
動いた。
メインターゲットとテストターゲットのフレームワーク検索パスを確認します。私は私のがらくたがたくさんあった
新しいシングルビューiosプロジェクトを作成する場合に最も簡単です。テストを実行して実行できることを確認します-デフォルトでは失敗し、メインおよびテストターゲットのフレームワークSearhcパスを確認します。そしてあなたのプロジェクトと比較してください
私の答えをここで見てくださいbrian.clearここ
Apple Mach-Oリンカー(id)警告:MacOSX用に構築されていますが、iOS用に構築されたdylibに対してリンクしています
フレームワークプロジェクトを作成できます。これは、テストファイルのないポッドプロジェクトになります。プロジェクトの作成中にテストのチェックを外すだけです。
これは理由である場合もあります:
ターゲット "MyApplication"と "MyApplicationTests"の両方でXCTestフレームワークをリンクしている場合。次に、「MyApplicationTests」ファイルに「MyApplication」をインポートする必要があります。
@testable import FlickrDemo
したがって、循環インポートが作成され、XCTestフレームワークが見つからないという問題が発生します。簡単な解決策は、「MyApplication」ターゲットからXCTestフレームワークを削除することです。
これが誰かを助けることを願っています。