如何确保我的静态库具有适用于 CocoaLibSpotify 的正确架构?

Posted

技术标签:

【中文标题】如何确保我的静态库具有适用于 CocoaLibSpotify 的正确架构?【英文标题】:How do I make sure my static library has the right architectures for CocoaLibSpotify? 【发布时间】:2014-12-16 21:59:06 【问题描述】:

当我尝试使用 CocoaLibSpotify 构建项目时出现此错误。

ld: warning: directory not found for option '-FLibrary/libspotify-12.1.64-ios-universal'
ld: warning: ignoring file /Users/tgm/Library/Developer/Xcode/DerivedData/CocoaLibSpotify_iOS_Library-gtxluzeubophcpfplfiyijlecxzt/Build/Products/Debug-iphoneos/libCocoaLibSpotify.a, missing required architecture x86_64 in file /Users/tgm/Library/Developer/Xcode/DerivedData/CocoaLibSpotify_iOS_Library-gtxluzeubophcpfplfiyijlecxzt/Build/Products/Debug-iphoneos/libCocoaLibSpotify.a (2 slices)
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_SPSession", referenced from:
      __TMaCSo9SPSession in DetailViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我使用lipo 来检查引用的静态库中的架构:

$ lipo -info /Users/tgm/Library/Developer/Xcode/DerivedData/CocoaLibSpotify_iOS_Library-gtxluzeubophcpfplfiyijlecxzt/Build/Products/Debug-iphoneos/libCocoaLibSpotify.a
Architectures in the fat file: /Users/tgm/Library/Developer/Xcode/DerivedData/CocoaLibSpotify_iOS_Library-gtxluzeubophcpfplfiyijlecxzt/Build/Products/Debug-iphoneos/libCocoaLibSpotify.a are: armv7 arm64 

arm64 不是 x86_64 的正确标签吗?

我应该怎么做才能解决这个问题?

【问题讨论】:

【参考方案1】:

CocoaLibSpotify 不支持 iOS 的 arm64(64 位设备)或 x86_64(64 位模拟器)。要使用 CocoaLibSpotify 构建应用,您只能定位 armv6armv7armv7s

对于更现代的图书馆,我可以推荐新的Spotify iOS SDK 吗?

【讨论】:

您或您的同事是否维护了 sdk 每个版本(至少是最新版本)的功能列表?

以上是关于如何确保我的静态库具有适用于 CocoaLibSpotify 的正确架构?的主要内容,如果未能解决你的问题,请参考以下文章

未生成适用于 iOS 的 Xcode 6.1 静态库 .a

如何编写单元测试以确保我的基于日期/时间的代码适用于所有时区以及有/无 DST?

如何配置 GitHub Actions 以构建依赖于私有存储库的 Azure 静态 Web 应用程序?

如何在适用于 Android 和 iOS 的 C++ 跨平台库中正确链接 OpenCV?

如何通过使用接口或抽象来确保类具有静态属性?

Terraform:如何创建具有动态和静态内容的块