0

iOS プロジェクトで Xcode 4.5 で BlocksKit 1.8.1 を使用すると、警告が表示されます。

警告は次のとおりです。

ここに画像の説明を入力

詳細は次のとおりです。

GenerateDSYMFile /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName.app.dSYM /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/ Products/Debug-iphoneos/AppName.app/AppName cd /Users/john/Documents/AppName_iphone setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode .app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil / Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName.app/AppName -o /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName.app.dSYM

デバイスターゲットでコンパイルする場合。

シミュレーターをターゲットとしてコンパイルする場合、警告は少し異なります。

ここに画像の説明を入力

Git ページの指示に従いました。

  • BlocksKit のリリースをダウンロードします。
  • libBlocksKit.a と Headers をプロジェクトのフォルダー (できれば "Vendor" などのサブフォルダー) に移動します。
  • "Build Phases" で、libBlocksKit.a をターゲットの "Link Binary With Libraries" ビルド フェーズにドラッグします。
  • ターゲットまたはプロジェクトのビルド設定で、「その他のリンカー フラグ」を -ObjC -all_load に変更します。アプリが CoreGraphics、Foundation、MessageUI、および UIKit にリンクされていることを確認してください。
  • $(SRCROOT)/Vendor/Headers など、BlocksKit のヘッダーへの相対パスを「ヘッダー検索パス」に変更 (または追加) します。
  • プロジェクトのプレフィックス ヘッダーに #import ` を挿入します。

何が間違っている可能性がありますか?

4

2 に答える 2

1

同じ警告があり、理由を見つけることができませんでしたが、一時的な解決策を見つけました。

たぶん関連:

BlocksKit 1.8.1 でのリンクにはさらに問題があるようです: 私のアプリはコンパイルされ、開発ビルドで正しく動作します (ただし、これらの警告は表示されます)。ただし、Ad Hoc デプロイメント用のアーカイブをビルドすると、libBlocksKit がリンクされていないように見えます。BlocksKit メソッドの 1 つが次のクラッシュ ログで呼び出されるとアプリがクラッシュするためです。

Last Exception Backtrace:
0   CoreFoundation                  0x3b2783e2 __exceptionPreprocess + 158
1   libobjc.A.dylib                 0x3a2d195e objc_exception_throw + 26
2   CoreFoundation                  0x3b27bdbc +[NSObject(NSObject) doesNotRecognizeSelector:] + 180
3   CoreFoundation                  0x3b27a648 ___forwarding___ + 388
4   CoreFoundation                  0x3b1d2204 _CF_forwarding_prep_0 + 20

すべてのビルド構成で、他のリンカー フラグが に設定されてい-ObjCます。(-all_load使用している AdMob ライブラリで「シンボルの重複」が発生するため、削除しました。)

一時的な解決策:

BlocksKit の古いブランチ ( https://github.com/zwaldowski/BlocksKit ) に戻し 、リンカー フラグを使用します-ObjC。このブランチは非推奨ですが、すべてのビルド構成で上記の警告なしで機能します。

于 2012-12-06T10:01:38.377 に答える