【问题标题】:SoundCloud iOS SDK architecturesSoundCloud iOS SDK 架构
【发布时间】:2014-10-30 19:59:25
【问题描述】:

我正在开发一个音乐流 iOS 项目,并希望利用 SoundCloud SDK。

我按照本指南前往发球台: https://developers.soundcloud.com/docs/api/ios-quickstart

五个 SoundCloud 依赖项是:

  1. CocoaSoundCloudAPI
  2. OAuth2Client
  3. JSONKit
  4. OHAttributedLabel
  5. CocoaSoundCloudUI

所有这五个项目都可以作为子模块使用,您只需将它们添加到当前的 git 存储库中即可。根据上面链接的指南,您应该能够添加它们并继续您的项目。但是,它们的架构都是不同的! CocoaSOundCloudAPI、JSONKit、OHAttributedLabel 和 CocoaSoundCloudUI 都是 32 位架构项目,而 OAuth2Client 是 64 位架构项目。

无论我将项目构建为 32 位还是 64 位,都会出现 Mach-O 链接器错误。我在我的主要 Xcode 项目中添加了 32 位和 64 位作为有效架构,但问题仍然存在。

我也找不到这些子模块的其他版本。我不能是唯一一个遇到这个问题的人,因为我逐字逐句地遵循了指南,但我在任何地方都找不到任何解决方案。

请帮帮我!

我正在使用 Xcode 6 并为 iOS8 SDK 构建。

谢谢!

编辑:

这是我的架构和错误的屏幕截图...

【问题讨论】:

    标签: ios xcode linker-errors soundcloud cpu-architecture


    【解决方案1】:

    我强烈建议使用 CocoaPods 来管理这种依赖关系。我曾经在不使用 CocoaPods 的情况下将 SoundCloud 集成到一个项目中,这很痛苦。查看此链接并搜索 CocoaPods 以了解如何安装它:https://github.com/soundcloud/CocoaSoundCloudAPI

    【讨论】:

    • 谢谢,我试试看。
    • 嘿,没用。我安装并启动了所有 pod,但遇到了与之前相同的链接器错误。
    【解决方案2】:

    这对我有帮助:

    1. 转到 SmartSpeakers 目标(或您的应用的目标)
    2. 构建设置 -> 其他链接器标志
    3. 添加$(inherited)
    4. 构建它!

    【讨论】:

    • 天哪,它成功了!几个月前我放弃了寻找解决方案!你太棒了,你是怎么想出来的?
    • 这是pod install 不断抛出的警告,所以我决定添加它。很高兴它也对你有用!我认为它真正所做的只是确保为相同的架构构建 pod 和您自己的目标?老实说,我不知道。链接器错误是我最不喜欢的错误。
    【解决方案3】:

    CocoaPods 是我的理想之选。我的 Podfile 看起来像这样:

    pod 'CocoaSoundCloudAPI', '1.0.1'
    pod 'CocoaSoundCloudUI', '1.0.5'
    pod 'JSONKit', :podspec => 'https://gist.github.com/marcdown/5282955/raw/2a52cfd92f112f2a52669420c82c1bb1efd15d2a/JSONKit.podspec'
    

    截至本文发布时,podspec 获取版本 1.6.0。我在早期版本的 JSONKit 中遇到了一些弃用问题。如果为 JSONKit 遗漏 pod,则 Cocoapods 会安装包含这些问题的早期版本。

    我还必须在其构建设置中为 JSONKit pod 禁用 ARC 以消除 ARC 错误:

    Pods-JSONKit -> 构建设置 -> Apple LLVM 6.0 - 语言 - Objective C

    这是为我做的。

    【讨论】:

      【解决方案4】:

      您是否尝试部署到 64 位设备?尝试在 Targets -> Your App -> Build Settings -> Architectures 下将 Build Active Architecture Only 设置为 NO

      编辑:我按照说明创建了一个可以构建的示例项目。我无法弄清楚您收到链接器错误的确切原因,但也许您可以将我的项目与您的项目进行比较。

      http://lieberman.nyc/sample_soundcloud_project_for_relatively_slow_on_stackoverflow.zip

      【讨论】:

      • 我现在只是想让它在模拟器上工作。我尝试过模拟几代不同的 iPhone,结果相同。我尝试了您的建议,但没有成功。
      • @relatively_slow 你能在原帖中发布你的完整编译日志吗?什么文件给你链接器错误?
      • @relatively_slow 我添加了一个示例项目,该项目按照您的说明构建。也许您可以将我的项目设置与您的项目设置进行比较并找出问题所在。
      • @relatively_slow 你看过我的示例项目了吗?你还有什么需要帮助的>
      • 嘿伙计,我编译了你的代码,而且它工作正常。但是,当您尝试实际实现 SDK 中的任何类时(我导入了 SCRequest.h 来测试播放),我得到了同样的错误。你能帮我一个忙并尝试导入 SCRequest.h 并执行快速请求吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多