2

アプリで Google Maps SDK を使用しようとしています。これまでのところ、すべてのフレームワークをリンクしています。指示に従って-ObjC適切なフラグを追加したと確信しています。ただし、コードをコピーしてクラスに貼り付けると、次のエラーが発生します。ViewController.m

アーキテクチャ i386 の未定義シンボル:
"_OBJC_CLASS_$_GMSCameraPosition"、参照元: FoothillTourViewController.o の objc-class-ref "_OBJC_CLASS_$_GMSMapView"、参照元: FoothillTourViewController.o の objc-class-ref "_OBJC_CLASS_$_GMSMarker"、参照元: FoothillTourViewController.o の objc-class-ref "_OBJC_CLASS_$_GMSServices"、参照元: FoothillTourAppDelegate.o ld の objc-class-ref: アーキテクチャ i386 のシンボルが見つかりませんでした: エラー: リンカー コマンドが終了コード 1 で失敗しました(呼び出しを表示するには -v を使用します)

"FoothillTourViewController"ViewController私のクラスの名前です。これが私のView Controllerクラスのコードです。コードは指示から直接取得されます。

#import "FoothillTourViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation FoothillTourViewController {
    GMSMapView *mapView_;
}

// You don't need to modify the default initWithNibName:bundle: method.

  - (void)loadView {
  //Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                        longitude:151.20
                                                             zoom:6];
 mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
 mapView_.myLocationEnabled = YES;
 self.view = mapView_;

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView_;
  }

何が起こっているのかを把握するために何時間も費やしてきたので、どんな助けも大歓迎です。ばかげた間違いだと思いますが、指を置くことはできません。ありがとう!

4

3 に答える 3

6

更新: この回答は古くなっています。ドキュメントでは、依存関係を手動でリンクする代わりに CocoaPods を使用するように指示されています。

詳細については、Google Developers Consoleを参照してください。

古い答え:

Google Maps SDK では、かなりの数のフレームワークをリンクする必要があります。どうぞ:

  • AVFoundation.framework
  • CoreData.framework
  • CoreLocation.framework
  • CoreText.framework
  • GLKit.framework
  • ImageIO.framework
  • libc++.dylib
  • libicucore.dylib
  • libz.dylib
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework

このリストはhereにあります。

于 2014-09-20T20:24:53.040 に答える
1

バージョン 1.9.2 以前の Google Maps SDK for iOS は、静的フレームワークを含む zip ファイルとして入手できました。CocoaPods ポッドから最新バージョンをインストールするオプションもありました。バージョン 1.10.0 以降、Google Maps SDK for iOS は CocoaPods 経由でのみインストールできます。

于 2015-11-06T12:46:20.247 に答える
0

あなたが言ったように、Google Maps SDK for iOS を使用しています。それでも、Intel プロセッサである i386 ではシンボルが定義されていないため、OS X 用にコンパイルしているように見えます。(シミュレータ用にコンパイルしようとしている場合を除く)

SDK がシミュレータ用にコンパイルされていない可能性があります。「file」コマンドで SDK バイナリを実行すると確認できます。ARM プロセッサをサポートしているが i386 をサポートしていない場合、シミュレータはサポートされていません。armv7/armv7s プロセッサ用にのみコンパイルするようにビルド フラグを変更する必要があります。

于 2013-08-02T23:00:29.563 に答える