【问题标题】:Symbols not found for architecture x86_64: "_OBJC_CLASS_$_Mixpanel", referenced from: __TMaCSo8Mixpanel in AppDelegate.o未找到架构 x86_64 的符号:“_OBJC_CLASS_$_Mixpanel”,引用自:AppDelegate.o 中的 __TMaCSo8Mixpanel
【发布时间】:2015-11-28 13:19:29
【问题描述】:

我正在安装 Mixpanel(由于更大的问题,我不使用 CocoaPods),一旦我尝试构建,我就遇到了这个问题。显然它在链接过程中:

Ld /Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Products/Debug-iphonesimulator/Skillet.app/Skillet normal x86_64
cd /Users/zheref/Code/skillet/skillet-ios
export IPHONEOS_DEPLOYMENT_TARGET=8.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.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 x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.4.sdk -L/Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Products/Debug-iphonesimulator -L/Users/zheref/Code/skillet/skillet-ios/Pods/Brightcove-Player-SDK/Library -L/Users/zheref/Code/skillet/skillet-ios/Pods/Google/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleAppUtilities/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleAuthUtilities/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleNetworkingUtilities/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleSignIn/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleSymbolUtilities/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Pods/GoogleUtilities/Libraries -L/Users/zheref/Code/skillet/skillet-ios/Skillet -F/Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Products/Debug-iphonesimulator -F/Users/zheref/Code/skillet/skillet-ios -F/Users/zheref/Code/vendors/parse-library-1.7.5 -filelist /Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Intermediates/Skillet.build/Debug-iphonesimulator/Skillet.build/Objects-normal/x86_64/Skillet.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lBCOVPlayerSDK -lGGLCore -lGGLSignIn -lGSDK_Overload -lGTMOAuth2_external -lGTMOAuth2_internal -lGTMSessionFetcher_core -lGTMSessionFetcher_full -lGTMStackTrace -lGTM_AddressBook -lGTM_DebugUtils -lGTM_GTMURLBuilder -lGTM_KVO -lGTM_NSDictionary+URLArguments -lGTM_NSScannerJSON -lGTM_NSStringHTML -lGTM_NSStringXML -lGTM_Regex -lGTM_RoundedRectPath -lGTM_StringEncoding -lGTM_SystemVersion -lGTM_UIFont+LineHeight -lGTM_core -lGTM_iPhone -lOpenInChrome -lPods-PaymentKit -lPods-Stripe -lSignIn -framework AVFoundation -framework AddressBook -framework CoreMedia -framework CoreText -framework Foundation -framework MediaPlayer -framework Security -framework StoreKit -framework SystemConfiguration -ObjC -lBCOVPlayerSDK -lGGLCore -lGGLSignIn -lGSDK_Overload -lGTMOAuth2_external -lGTMOAuth2_internal -lGTMSessionFetcher_core -lGTMSessionFetcher_full -lGTMStackTrace -lGTM_AddressBook -lGTM_DebugUtils -lGTM_GTMURLBuilder -lGTM_KVO -lGTM_NSDictionary+URLArguments -lGTM_NSScannerJSON -lGTM_NSStringHTML -lGTM_NSStringXML -lGTM_Regex -lGTM_RoundedRectPath -lGTM_StringEncoding -lGTM_SystemVersion -lGTM_UIFont+LineHeight -lGTM_core -lGTM_iPhone -lOpenInChrome -lPods-PaymentKit -lPods-Stripe -lSignIn -framework AVFoundation -framework AddressBook -framework CoreMedia -framework CoreText -framework Foundation -framework MediaPlayer -framework Security -framework StoreKit -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Intermediates/Skillet.build/Debug-iphonesimulator/Skillet.build/Objects-normal/x86_64/Skillet.swiftmodule -mios-simulator-version-min=8.1 -licucore -framework QuartzCore -framework CoreGraphics -framework Accelerate -framework CoreTelephony -framework SystemConfiguration -framework Foundation -framework UIKit -framework Bolts -framework Social -framework Accounts -framework Crashlytics -framework AVFoundation -framework CoreMedia -framework Parse -framework CoreText -framework MediaAccessibility -framework MediaPlayer -framework CFNetwork -framework Security -framework AudioToolbox -framework CoreLocation -lsqlite3 -lz -framework MobileCoreServices -framework StoreKit -framework FBSDKShareKit -framework Fabric -framework FBSDKCoreKit -framework FBSDKLoginKit -lPods -Xlinker -dependency_info -Xlinker /Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Intermediates/Skillet.build/Debug-iphonesimulator/Skillet.build/Objects-normal/x86_64/Skillet_dependency_info.dat -o /Users/zheref/Library/Developer/Xcode/DerivedData/Skillet-gyrvrgajwggdcmhhtxflcerwovjx/Build/Products/Debug-iphonesimulator/Skillet.app/Skillet

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_Mixpanel", referenced from:
  __TMaCSo8Mixpanel in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我使用的是 Swift 语言(根本不是 Objective-C)。

提前致谢。

更新 1

当我放行时出现问题: Mixpanel.sharedInstanceWithToken(MIXPANEL_TOKEN); 而不是之前。

当我在项目中安装 Mixpanel 代码时没有问题,甚至当我从桥接头导入它时也没有问题。

【问题讨论】:

  • 即使你的代码没有使用objective-c,那个特定的库也是写在里面的。我不确定您是否必须为这种特殊情况创建桥头。看看:stackoverflow.com/questions/28016246/…medium.com/ios-os-x-development/…。另外,看看这个:github.com/soffes/Mixpanel
  • 桥接文件似乎没有问题。当我从桥接头导入它时,它不会带来任何问题。当我输入Mixpanel.sharedInstanceWithToken(MIXPANEL_TOKEN); 时问题就开始了
  • cocoapods 有什么问题?我在所有项目中都使用它们,从来没有遇到过问题。在这种情况下,请确保库文件包含在您正在编译的目标中。
  • 是的,我也有同样的问题....请问您是如何解决这个问题的?
  • 您是否将框架导入该类?可能在类的顶部导入 Mixpanel?

标签: ios xcode swift mixpanel


【解决方案1】:

我遇到了同样的问题,我只是尝试通过单独拖动到我的项目中来重新添加框架文件。

不要直接拖动文件夹,而是只将文件拖动到您的项目中。

别忘了链接框架

SystemConfiguration、CoreTelephony、Accelerate、Security、CFNetwork、 QuartzCore、libicucore.tbd

【讨论】:

  • 这个过程对我有用,我可能会补充说我为文件创建了一个组,然后复制了文件。关于Frameworks,有些没有在文档中列出,我一个一个添加了frameworks尝试构建,最后添加了最后一个才成功:libicucore.tbd
  • 我可以确认并再添加 1 个 tibit。当我把文件夹拖进去时,文件夹是蓝色的。但是,当我创建一个新组并将文件拖入时,该文件夹是黄色的(与所有其他文件夹一样)。因此,如果您有一个用于 mixpanel 的蓝色文件夹,则可能意味着您将文件夹拖入其中,这就是导致此奇怪链接器错误的原因。
  • 另外我刚刚在我的版本控制中注意到 pbxproj 文件在我手动添加文件之前没有更改。所以我认为这意味着添加文件夹时它没有链接到主 pbxproj 但手动拖动文件实际上确实创建了该链接(因此您可以通过查看您的 pbxproj 文件是否确实有添加混合面板文件时更改)
  • @Aggressor:是的,这就是我们可以验证的方式。
猜你喜欢
  • 2015-10-27
  • 2016-11-12
  • 2018-06-23
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
相关资源
最近更新 更多