iPhone应用程序支持64位

时间:2015-01-26 21:04:35

标签: ios xcode linker-errors undefined-symbol

我将arm64添加到我的应用中:

Architecture
Valid Architecture

当我构建应用程序时,我收到此错误日志:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in DEFacebookComposeViewController.o
  "_kGADAdSizeBanner", referenced from:
      ...
  "_OBJC_CLASS_$_FBRequestConnection", referenced from:
      ...
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libInMobi-4.5.1.a(IMCommonUtil+Private.o)
      objc-class-ref in VungleSDK(VungleSDK.o)
      objc-class-ref in MobFox(MobFox)
      objc-class-ref in iSoma(SOMAAdRequestBuilder.o)
      objc-class-ref in libAppLovinSdk.a(ALDataCollector.o)
      objc-class-ref in libAppLovinSdk.a(ALTaskFetchNextAd.o)
      objc-class-ref in libFlurryAds_6.0.0.a(libFlurryAds.a-arm64-master.o)
      ...
  "_CGSizeFromGADAdSize", referenced from:
      ...
  "_kGADAdSizeLeaderboard", referenced from:
      ...
  "_OBJC_CLASS_$_FBSession", referenced from:
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

知道可能出现什么问题?

编辑:


我更新googleadmob lib和facebookSdk,但另一个框架已经支持64位,我收到此错误消息:

d: warning: ignoring file /Users/App/AdSupport.framework/AdSupport, missing required architecture arm64 in file /Users/App/AdSupport.framework/AdSupport (2 slices)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libInMobi-4.5.1.a(IMCommonUtil+Private.o)
      objc-class-ref in VungleSDK(VungleSDK.o)
      objc-class-ref in libGoogleAdMobAds.a(GADDevice.o)
      objc-class-ref in libGoogleAdMobAds.a(GADGestureIdUtil.o)
      objc-class-ref in MobFox(MobFox)
      objc-class-ref in iSoma(SOMAAdRequestBuilder.o)
      objc-class-ref in libAppLovinSdk.a(ALDataCollector.o)
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2 个答案:

答案 0 :(得分:3)

错误消息非常清楚。那些符号没有为该架构定义。您将需要每个库的新构建 - 具有64位切片的构建。

答案 1 :(得分:0)

您是否尝试过按住选项键并执行产品 - >清理构建文件夹?这会破坏在生成它们时不知道arm64编译目标的任何预编译头文件。尝试然后重新构建。