54

以前のバージョンでは「libz.dylib」が必要だった新しい Swift 2.0 プロジェクトで、Google の外部コードを使用しています。新しい Xcode / 新しい SDK に更新した後。

Xcode が libz.dylib をインポートできなくなり、いくつかのエラーがスローされる

アーキテクチャ i386 の未定義シンボル: "_deflate"、次から参照: +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] 内 libGoogleAnalyticsServices.a(GAICompressionUtil.o) "_deflateEnd"、次から参照: +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel: mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o) " deflateInit2"、次から参照: +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] libGoogleAnalyticsServices.a(GAICompressionUtil.o) 内 "_inflate"、次から参照: +[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] libGoogleAnalyticsServices.a(GAICompressionUtil. o) "_inflateEnd"、次から参照: +[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a( GAICompressionUtil.o ) GAICompressionUtil.o) ld: アーキテクチャ i386 のシンボルが見つかりませんでした。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)

「ビルドフェーズ」設定で利用可能なパッケージを調べると、libz.dylib の代わりと思われる「libz.tbd」が見つかります。このライブラリをインポートすると、リンカー エラーは同じままですが、次の追加の警告が表示されます。

警告: ファイル '/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd' をスキップしています (予期しないファイル タイプ 'text' がフレームワークとライブラリのビルド フェーズ)

何をすべきか?

4

8 に答える 8

114

私も同じ問題を抱えていました。私はある種の回避策を見つけました。

  1. Build Phases > Link Binary with Libraries > + > Add other に移動します
  2. ファイル選択ウィンドウで、「CMD」+Shift+G (フォルダーに移動) を実行し、/usr/lib/ と入力します。
  3. /usr/lib から以下を追加できます: libz.dylib など...
  4. コンパイルして楽しむ
于 2015-06-13T19:45:26.540 に答える
83

libz.dylib は、Apple 開発者フォーラムから引用されたlibz.tbd の下にあり ます。

興味のある方のために説明すると、.tbd ファイルは新しい「テキストベースのスタブ ライブラリ」であり、SDK で使用するスタブ ライブラリのよりコンパクトなバージョンを提供し、ダウンロード サイズを大幅に削減するのに役立ちます。

うまくいけば、より多くのドキュメントがすぐに来るでしょう。

編集

それを明確にするために、更新されたコンテンツでギッツの回答を引用します

  1. Build Phases > Link Binary with Libraries > + > Add other に移動します
  2. ファイル選択ウィンドウで、「CMD」+Shift+G (フォルダーに移動) を実行し、/usr/lib/ と入力します。
  3. /user/lib から以下を追加できます: libz.tbdなど...
  4. コンパイルして楽しむ
于 2015-09-09T12:57:38.323 に答える
2

私はobjective-c project.ios9.1,xcode7.1でこの問題を抱えています

1.[ターゲット] > [ビルド フェーズ] > [バイナリをライブラリにリンク] > +

2. libz.tbd を選択して追加

それは私のために働いた

于 2015-11-09T05:52:01.223 に答える
1

libz.dylib は Zlib の動的ライブラリです。ここから Zlib をインストールできますhttp://zlib.net/

于 2015-08-17T08:02:10.160 に答える
0

次の場所から libz.1.dylib を追加できます:/usr/lib/

  1. Build Phases > Link Binary with Libraries > + > Add other に移動します
  2. ファイル選択ウィンドウで、CMD+Shift+G (フォルダーに移動) を実行し、/usr/lib/ と入力します。
  3. /user/lib から以下を追加できます: libz.1.dylib

それは私のために働いた。

于 2015-10-28T06:37:11.733 に答える