3

アプリに手動でセグメンテーション iOS フレームワークを追加しようとしています。プロジェクトをビルドすると、「アーキテクチャ i386 の未定義シンボル」というエラーとログで終了しました。

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_Amplitude", referenced from:
      objc-class-ref in Analytics(SEGAmplitudeIntegration.o)
  "_OBJC_CLASS_$_AppsFlyerTracker", referenced from:
      objc-class-ref in Analytics(SEGAppsFlyerIntegration.o)
  "_OBJC_CLASS_$_Bugsnag", referenced from:
      objc-class-ref in Analytics(SEGBugsnagIntegration.o)
  "_OBJC_CLASS_$_Countly", referenced from:
      objc-class-ref in Analytics(SEGCountlyIntegration.o)
  "_OBJC_CLASS_$_Crittercism", referenced from:
      objc-class-ref in Analytics(SEGCrittercismIntegration.o)
  "_OBJC_CLASS_$_CrittercismConfig", referenced from:
      objc-class-ref in Analytics(SEGCrittercismIntegration.o)
  "_OBJC_CLASS_$_Flurry", referenced from:
      objc-class-ref in Analytics(SEGFlurryIntegration.o)
  "_OBJC_CLASS_$_GAI", referenced from:
      objc-class-ref in Analytics(SEGGoogleAnalyticsIntegration.o)
  "_OBJC_CLASS_$_GAIDictionaryBuilder", referenced from:
      objc-class-ref in Analytics(SEGGoogleAnalyticsIntegration.o)
  "_OBJC_CLASS_$_KahunaAnalytics", referenced from:
      objc-class-ref in Analytics(SEGKahunaIntegration.o)
  "_OBJC_CLASS_$_Localytics", referenced from:
      objc-class-ref in Analytics(SEGLocalyticsIntegration.o)
  "_OBJC_CLASS_$_Mixpanel", referenced from:
      objc-class-ref in Analytics(SEGMixpanelIntegration.o)
  "_OBJC_CLASS_$_QuantcastMeasurement", referenced from:
      objc-class-ref in Analytics(SEGQuantcastIntegration.o)
  "_OBJC_CLASS_$_TRVSDictionaryWithCaseInsensitivity", referenced from:
      objc-class-ref in Analytics(SEGAnalyticsIntegration.o)
  "_OBJC_CLASS_$_TSConfig", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_OBJC_CLASS_$_TSEvent", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_OBJC_CLASS_$_TSTapstream", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_kGAIScreenName", referenced from:
      -[SEGGoogleAnalyticsIntegration screen:properties:options:] in Analytics(SEGGoogleAnalyticsIntegration.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

このエラーを解決するには、ここに記載されているすべての指示に厳密に従っています。しかし、それを解決することはできません。

助けてください !

4

4 に答える 4

1

これは、より多くのフレームワークが必要であることを意味します。最初は 21 個のエラーがありましたが、CoreLocation.Framework を追加した後は 19 個しかないため、プロジェクトに追加する必要があるフレームワークを見つける必要があります。

于 2015-06-25T15:37:55.600 に答える
1

プロジェクトに次のファイル (フレームワークなし) を追加して、これを機能させました。

Segment.IO が正しく動作するために必要なファイル

行も追加しました

#import "Analytics.h"

ブリッジヘッダーファイルに(Swiftを使用しているため)。

私はクライアント側で統合を使用していないため、これはうまくいきます(ただし、サーバーで使用されています)。

これらのファイルは、podfile 行を含む別のブランチで cocoapods を使用して取得しました

pod 'Analytics/Segmentio'

それが終わったら、メイン ブランチ (cocoapods が使用されていない場所) に戻り、Pods フォルダーからこれらのファイル (および CocoaPods 構成ファイルはどれも) を取得しました。

于 2015-07-18T14:09:21.763 に答える
1

以前は Cocoa ポッドを使用してセグメント フレームワークを追加していましたが、すべて正常に動作しました。しかし、手動で追加するのに役立つ回答を待っています。

于 2015-06-18T07:07:17.543 に答える
0

一部のライブラリまたはフレームワークが不足している可能性があります。Analytics.framework を一度削除して、再度追加します。Build Setting(Linker path)の下のプロジェクトとターゲットの両方でパスが正しいことを確認してください。

于 2015-06-11T09:21:00.493 に答える