1

iOS 6.1 アプリでの共有に Google Plus SDK を使用しようとしていますが、GooglePlus.framework と GoogleOpenSource.framework を追加した後にリンカー エラーが発生します。

フレームワークを含めてビルドするだけでは、次のエラーが発生します。

Undefined symbols for architecture armv7:
"_CGRectDivide", referenced from:
  -[GTMOAuth2ViewControllerTouch moveWebViewFromUnderNavigationBar] in GTMOAuth2ViewControllerTouch.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Google ガイドにある指示に従っても役に立ちませんでした。私は次のことをしました:

  1. SystemConfiguration.framework と Security.framework が含まれています
  2. GooglePlus.framework と GoogleOpenSource.framework を SDK から XCode プロジェクトにドラッグ アンド ドロップしました。
  3. -ObjC フラグをアプリ ターゲットのビルド設定に追加しました

前の手順に加えて、SDK で提供されている OpenSource フォルダーの内容を追加しようとしましたが、効果がなかった最初の修正後に追加の問題が発生しました。

ライブラリ:

私の含まれているライブラリ

完全なエラー メッセージ:

 Ld "/Users/me/Library/Developer/Xcode/DerivedData/MyApp-asdf/Build/Intermediates/MyApp.build/
 Debug-iphoneos/MyAoo.build/Objects-normal/armv7/MyApp" normal armv7
     cd /Users/me/code/MyApp
     setenv IPHONEOS_DEPLOYMENT_TARGET 6.1
     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/clang -arch armv7 -isysroot
 /Applications/Xcode.app/Contents/Developer/     
 Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk 

 -L/Users/me/Library/Developer/Xcode/DerivedData/
 MyApp-asdf/Build/Products/Debug-iphoneos

 -L/Users/me/code/MyApp/MyApp 

 -F/Users/me/Library/Developer/Xcode/DerivedData/MyApp-asdf/Build/Products/Debug-iphoneos 

 -F/Users/me/code/MyApp/../../Documents/FacebookSDK -F/Users/me/code/MyApp 

 -F/Users/me/code/MyApp/MyApp 

 -filelist "/Users/me/Library/Developer/Xcode/
 DerivedData/MyApp-asdf/Build/Intermediates/
 MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/MyApp.LinkFileList"

 -dead_strip -ObjC -lsqlite3.0 -fobjc-arc 
 -fobjc-link-runtime -miphoneos-version-min=6.1 
 -framework SystemConfiguration -framework Security 
 -framework CFNetwork -framework Social -framework Accounts 
 -framework EventKit -framework EventKitUI 
 -framework AVFoundation -framework MapKit  
 -framework Twitter -framework CoreMotion -framework CoreLocation 
 -lxml2 -framework QuartzCore 
 -framework MobileCoreServices -framework CoreData
 -framework UIKit -framework Foundation 
 -framework Pinterest -framework GooglePlus 
 -framework GoogleOpenSource 
 -lGooglePlusUniversal -o 

 "/Users/me/Library/Developer/
 Xcode/DerivedData/MyApp-asdf/Build/Intermediates/MyApp.build/
 Debug-iphoneos/MyApp.build/Objects-normal/armv7/MyApp"

 Undefined symbols for architecture armv7:
   "_CGRectDivide", referenced from:
       -[GTMOAuth2ViewControllerTouch moveWebViewFromUnderNavigationBar] in 
   GTMOAuth2ViewControllerTouch.o
 ld: symbol(s) not found for architecture armv7
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

何を見逃したのかわかりませんが、どんな助けでも大歓迎です。

4

2 に答える 2

4

CoreGraphics フレームワークにもリンクします。CoreGraphics の一部である CGRectDivide メソッドを探しています。

于 2013-06-22T03:54:29.020 に答える
0

このエラーは、OpenSource フォルダーをプロジェクトに追加することによって発生します。xcode は、ファイルの重複があることを検出します。したがって、GooglePlus.framework と GoogleOpenSource.framework のみを追加する必要があります。

于 2015-01-06T14:47:09.947 に答える