web-dev-qa-db-ja.com

Swift 2 / iOS 9-libz.dylibが見つかりません

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

XCodeはlibz.dylibをインポートできず、いくつかのエラーをスローします

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

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

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

何をすべきか考えていますか?

52
Daniel K.

同じ問題がありました。何らかの方法を見つけました。

  1. ビルドフェーズに移動>ライブラリとバイナリをリンク> +>その他を追加
  2. ファイル選択ウィンドウで、「CMD」+ Shift + G(フォルダーへ移動)を実行し、/ usr/lib /と入力します。
  3. / usr/libから追加できます:libz.dylibなど.
  4. コンパイルして楽しむ
112
Guitz

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

好奇心who盛な人にとって、.tbdファイルは新しい「テキストベースのスタブライブラリ」であり、SDKで使用するスタブライブラリのはるかにコンパクトなバージョンを提供し、ダウンロードサイズを大幅に削減するのに役立ちます。

より多くのドキュメントが近日中に公開されることを願っています。

edit

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

  1. ビルドフェーズに移動>ライブラリとバイナリをリンク> +>その他を追加
  2. ファイル選択ウィンドウで、「CMD」+ Shift + G(フォルダーへ移動)を実行し、/ usr/lib /と入力します。
  3. / user/libから次を追加できます:libz.tbdなど...
  4. コンパイルして楽しむ
82
helgetan

バイナリとのリンクフェーズからすべての動的ライブラリ(dylib)を削除します。これらのライブラリは単独で見つかります。

8
AZ0

Objective-C project.ios9.1、xcode7.1にこの問題があります

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

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

それは私のために働いた

2
iengchen

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

1

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

  1. ビルドフェーズに移動>ライブラリとバイナリをリンク> +>その他を追加
  2. ファイル選択ウィンドウが開いたら、CMD + Shift + G(フォルダーに移動)を実行し、/ usr/lib /と入力します。
  3. / user/libから追加できます:libz.1.dylib

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

0
Vin

引数lybz.dylibを追加することで、"その他のリンカーフラグ"ビルド設定から-lzを追加することもできます。

/ usr/libからライブラリを参照する方法を使用してアプリをテスターに​​デプロイしたときに、.dylibライブラリが解決できず、起動時にアプリがクラッシュするため、これを行う必要がありました。

0
tentmaking