Xcodeでライブラリリンク時に発生するエラーに対応するframework

By | 2016年9月18日

Xcodeのアイコン

XcodeでiOSアプリをコンパイル後、ライブラリをリンクする際、framework が足りないと以下のようなエラーが発生します。

以下は GoogleMobileAds をリンクする際に発生するエラーの例です。

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_GLKView", referenced from:
      objc-class-ref in GoogleMobileAds(flat-arm64)
  "_CVOpenGLESTextureCacheCreateTextureFromImage", referenced from:
      l2673 in GoogleMobileAds(flat-arm64)
  "_CVOpenGLESTextureGetName", referenced from:
      l2673 in GoogleMobileAds(flat-arm64)
  "_kUTTagClassMIMEType", referenced from:
      l2987 in GoogleMobileAds(flat-arm64)
  "_CVOpenGLESTextureCacheCreate", referenced from:
      l2672 in GoogleMobileAds(flat-arm64)
  "_CVPixelBufferGetHeight", referenced from:
      l2670 in GoogleMobileAds(flat-arm64)
  "_CVOpenGLESTextureCacheFlush", referenced from:
      l2671 in GoogleMobileAds(flat-arm64)
  "_CVBufferGetAttachment", referenced from:
      l2670 in GoogleMobileAds(flat-arm64)
  "_UTTypeCreatePreferredIdentifierForTag", referenced from:
      l2987 in GoogleMobileAds(flat-arm64)
  "_CVPixelBufferGetWidth", referenced from:
      l2670 in GoogleMobileAds(flat-arm64)
  "_kCVImageBufferYCbCrMatrixKey", referenced from:
      l2670 in GoogleMobileAds(flat-arm64)
  "_CVOpenGLESTextureGetTarget", referenced from:
      l2673 in GoogleMobileAds(flat-arm64)
  "_kCVPixelBufferPixelFormatTypeKey", referenced from:
      l090 in GoogleMobileAds(flat-arm64)
  "_kCVImageBufferYCbCrMatrix_ITU_R_601_4", referenced from:
      l2670 in GoogleMobileAds(flat-arm64)
  "_GLKMatrix4Identity", referenced from:
      l2664 in GoogleMobileAds(flat-arm64)
      l2675 in GoogleMobileAds(flat-arm64)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

呼び出そうとしている関数が見つからないというエラーが発生しています。

リンクエラーとframeworkの対応表

どの framework がどんな関数を含んでいるか(どんなエラー対応しているのか)を下表にまとめます。判明次第順次追加していきます。

framework名 定義されている関数など
GLKit.framework _OBJC_CLASS_$_GLKView
_GLKMatrix4Identity
MobileCoreServices.framework _kUTTagClassMIMEType
_UTTypeCreatePreferredIdentifierForTag
CoreVideo.framework _CVOpenGLESTextureCacheCreateTextureFromImage
_CVOpenGLESTextureGetName
_CVOpenGLESTextureCacheCreate
_CVOpenGLESTextureCacheFlush
_CVPixelBufferGetWidth
_CVOpenGLESTextureGetTarget
_kCVPixelBufferPixelFormatTypeKey
_kCVImageBufferYCbCrMatrix_ITU_R_601_4
_CVPixelBufferGetHeight
_CVBufferGetAttachment
_kCVImageBufferYCbCrMatrixKey
StoreKit.framework _OBJC_CLASS_$_SKProductsRequest
_OBJC_CLASS_$_SKMutablePayment
_OBJC_CLASS_$_SKPaymentQueue
_OBJC_CLASS_$_SKStoreProductViewController
_SKStoreProductParameterITunesItemIdentifier
MediaPlayer.framework _MPMoviePlayerPlaybackDidFinishNotification
_MPMoviePlayerPlaybackStateDidChangeNotification
_OBJC_CLASS_$_MPMoviePlayerController
_OBJC_CLASS_$_MPVolumeView
SafariServices.framework _OBJC_CLASS_$_SFSafariViewController
AdSupport.framework _OBJC_CLASS_$_ASIdentifierManager
CoreMotion.framework _OBJC_CLASS_$_CMMotionManager
CoreTelephony.framework _CTRadioAccessTechnologyDidChangeNotification
_OBJC_CLASS_$_CTTelephonyNetworkInfo
MessageUI.framework _OBJC_CLASS_$_MFMailComposeViewController
_OBJC_CLASS_$_MFMessageComposeViewController
CoreText.framework _CTFramesetterCreateWithAttributedString
_CTFramesetterSuggestFrameSizeWithConstraints
GameKit.framework _OBJC_CLASS_$_GKAchievement
_OBJC_CLASS_$_GKScore
_OBJC_CLASS_$_GKGameCenterViewController
_OBJC_CLASS_$_GKLocalPlayer
SystemConfiguration.framework _SCNetworkReachabilityCreateWithAddress
_SCNetworkReachabilityGetFlags
_SCNetworkReachabilityCreateWithName
_SCNetworkReachabilitySetDispatchQueue
_SCNetworkReachabilitySetCallback
Security.framework _SecCertificateCreateWithData
_SecTrustCopyExceptions
_SecTrustEvaluate
_SecTrustSetAnchorCertificates
_SecTrustSetExceptions
CoreMedia.framework _CMTimeGetSeconds
_CMTimeMakeWithSeconds
_CMTimeMake
_kCMTimeZero
OpenGLES.framework _OBJC_CLASS_$_EAGLContext
_glActiveTexture
他100個以上のエラー
CFNetwork.framework _CFHostCreateWithName
_CFHostStartInfoResolution
_CFHostGetAddressing

SKProductsRequest や GKAchievement など、名前から推測しやすいものもありますが、逆になかなか想像しにくいフレームワークも多いです。

Xcodeでライブラリリンク時に発生するエラーに対応するframework」への1件のフィードバック

  1. ピンバック: 【admob】admobのバナーをiOSで実装してみた。【cocos2d-x】 | TRISTORE

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です