SoundCloud iOS SDK 架构

5
我正在开发一款音乐流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构建应用程序。
谢谢!
编辑:
这里是我的架构和错误截图... arhitectures erroes
4个回答

4
我强烈建议使用CocoaPods来管理这个依赖项。 我曾经在一个项目中集成SoundCloud,没有使用CocoaPods,非常麻烦。请查看此链接并搜索CocoaPods以了解如何安装它:https://github.com/soundcloud/CocoaSoundCloudAPI

谢谢,我会尝试一下。 - tbogatchev
嘿,它没起作用。我安装并启动了所有的Pods,但是仍然得到了之前遇到的相同的链接器错误。 - tbogatchev

3

这是一些帮助我的内容:

  1. 进入SmartSpeakers目标(或您的应用程序所使用的任何目标)
  2. 构建设置 -> 其他链接器标志
  3. 添加 $(inherited)
  4. 构建它!

天啊,伙计,它起作用了!我几个月前就放弃寻找解决方案了!你太棒了,你是怎么想出来的? - tbogatchev
这是一个“pod install”一直抛出的警告,所以我决定将其添加进去。很高兴它对你也起作用了!我认为它真正做的只是确保pods和你自己的目标被构建为相同的架构?老实说,我不知道。链接器错误是我最不喜欢的错误。 - Andrew Konoff

2
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的Build Settings中禁用ARC以消除ARC错误:
Pods-JSONKit -> Build Settings -> Apple LLVM 6.0 - Language - Objective C
这对我有用。

1

我现在只是试图让它在模拟器上运行。 我尝试了几个不同的 iPhone 代数进行模拟,但结果都一样。 我尝试了你的建议,但没有成功。 - tbogatchev
@relatively_slow,你能在原帖中发布完整的编译日志吗?是哪个文件导致了链接器错误? - JAL
@relatively_slow 我添加了一个示例项目,按照你的指示进行构建。也许你可以比较一下我的项目设置和你的,找出问题所在。 - JAL
@relatively_slow 你看过我的示例项目了吗?还有其他需要帮助的地方吗? - JAL
嘿,伙计,我编译了你的代码,按照原样运行得很好。 然而,当你尝试实际使用SDK中的任何类(我导入了SCRequest.h来测试播放),我会得到相同的错误。 你能否帮我一个忙,尝试导入SCRequest.h并执行一个快速请求? - tbogatchev
我也遇到了同样的问题 - 如果我不导入任何东西,构建就很好,但一旦我开始导入Soundcloud头文件,它就会出现相同的错误。希望Soundcloud的开发人员能够解决这个问题!我使用的是Xcode 6.1,构建iOS 8.1和iOS模拟器iPhone 6。 - Andrew Konoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接