Google+登录iOS(Apple mach-o链接器错误)

2 ios google-plus

早上好,

我正在尝试将Google Plus登录集成到我的第一个iOS应用中,然后按照Google提供的所有步骤进行操作https://developers.google.com/+/mobile/ios/sign-in我没有代码中的错误,但编译项目时出了问题:

我有18个错误"Apple mach-o链接器错误",我不知道为什么因为我遵循每一步,一切似乎都是正确的.

下面你会发现错误代码,我希望有人可以帮助我,因为我不知道如何解决它们.

      Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_ALAssetsLibrary", referenced from:
      objc-class-ref in GooglePlus(NSData+GPPAdditions.o)
      objc-class-ref in GooglePlus(UIDevice+GPPAdditions.o)
  "_kABPersonFirstNameProperty", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABAddressBookCopyArrayOfAllPeople", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_kABPersonEmailProperty", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABAddressBookGetPersonCount", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABPersonHasImageData", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABPersonCopyImageDataWithFormat", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABRecordCopyValue", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABMultiValueGetCount", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_ABAddressBookCreateWithOptions", referenced from:
      +[GPPAddressBook loadDeviceContactsWithHandler:] in GooglePlus(GPPAddressBook.o)
  "_ABMultiValueCopyValueAtIndex", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_MPMoviePlayerThumbnailImageKey", referenced from:
      -[GPPMediaPreviewView thumbnailImageRequestDidFinish:] in GooglePlus(GPPMediaPreviewView.o)
  "_MPMoviePlayerThumbnailImageRequestDidFinishNotification", referenced from:
      -[GPPMediaPreviewView initWithFrame:mediaAttachment:] in GooglePlus(GPPMediaPreviewView.o)
      -[GPPMediaPreviewView thumbnailImageRequestDidFinish:] in GooglePlus(GPPMediaPreviewView.o)
  "_OBJC_CLASS_$_CMMotionManager", referenced from:
      objc-class-ref in GooglePlus(GPPSpamSignal.o)
  "_ABAddressBookRequestAccessWithCompletion", referenced from:
      +[GPPAddressBook loadDeviceContactsWithHandler:] in GooglePlus(GPPAddressBook.o)
  "_kABPersonLastNameProperty", referenced from:
      ___48+[GPPAddressBook loadDeviceContactsWithHandler:]_block_invoke in GooglePlus(GPPAddressBook.o)
  "_OBJC_CLASS_$_MPMoviePlayerController", referenced from:
      objc-class-ref in GooglePlus(GPPMediaPreviewView.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

谢谢,谢谢.

Ome*_*han 5

第3步中的库AssetsLibrary.framework未包含在您的项目中,这就是您收到此错误的原因.

试试这些:

  1. 您需要将AssetsLibrary框架添加到目标的"Link Binary With Libraries"构建阶段.

  2. 尝试使用Command + Shift + K清理项目并再次添加所需的框架.希望它会开始工作

  3. 将文件复制到项目中但忘记检查要添加文件的目标.要解决:打开正确目标的构建阶段,展开编译源并添加缺少的.m文件.

另一个原因可能是:

  1. 您包含一个静态库,它是为另一个体系结构构建的,例如主机上的模拟器i386.解决:

如果您的库供应商有多个库文件要包含在项目中,则需要包含一个用于模拟器(i386)和一个用于设备(​​例如armv7).