SoundCloud API Apple Mach-O Linker (Id) Ошибка - PullRequest
4 голосов
/ 04 ноября 2011

Я пытаюсь интегрировать Какао SoundCloud API в мое приложение для iPhone / iPad.Я следовал подробным инструкциям здесь , но при попытке создать и запустить свой проект я получаю следующую ошибку:

Ошибка Apple Mach-O Linker (Id)

Ld "/Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp" normal i386
    cd "/Users/curuser/Dropbox/iPhone Apps/MyApp"
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator -F/Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator -filelist "/Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList" -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -all_load -ObjC -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000 -framework UIKit /Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator/SoundCloudAPI/SoundCloudAPI -framework Security -framework OAuth2Client /Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator/libSoundCloudAPI.a -lOAuth2Client -framework AudioToolbox -framework Foundation -o "/Users/curuser/Library/Developer/Xcode/DerivedData/MyApp-gzdzxolteaojcobbqsfkgxakkclz/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp"

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1

Я новичок в разработке для iPhone и не могу понять, как это исправить.Я предполагаю, что мне не хватает фреймворка, но я добавил фреймворки, как указано в шаге № 3:

  • Теперь цель должна знать о новых библиотеках, на которые она должна ссылатьсяпротив.Итак, в Project выберите Target, а в Build Phases перейдите в раздел Link Binary with Libraries.Добавьте следующее:

    • libSoundCloudAPI.a (или SoundCloudAPI.framework на рабочем столе)
    • libOAuth2Client.a (или OAuth2Client.framework на рабочем столе)
    • Security.framework
    • AudioToolbox.framework (если вы хотите потоковую передачу)

Когда я добавляю libSoundCloudAPI.a и libOAuth2Client.a, он отображается как отсутствующий файл израбочая область (красная с иконкой в ​​виде пунктирной рамки).

1 Ответ

1 голос
/ 22 марта 2012

Если вы новичок в разработке для iOS, лучший способ интегрировать SoundCloud в ваше приложение - использовать новый CocoaSoundCloudAPI .Тот, на который вы ссылаетесь, больше не поддерживается SoundCloud.

Чтобы интегрировать это в ваш проект, вам просто нужно выполнить следующие несколько шагов:

В терминале

  1. Перейдите в каталог вашего проекта.

  2. Добавьте необходимые подмодули GIT

    // For the API
    git submodule add git://github.com/nxtbgthng/OAuth2Client.git
    git submodule add git://github.com/soundcloud/CocoaSoundCloudAPI.git
    git submodule add git://github.com/nxtbgthng/JSONKit.git
    git submodule add git://github.com/nxtbgthng/OHAttributedLabel.git
    git submodule add git://github.com/soundcloud/CocoaSoundCloudUI.git
    

В Xcode

  1. Создайте рабочую область, содержащую все те подмодули, добавленные выше.

  2. Чтобы найти заголовки, вам все равно нужно добавить ../** (или ./** в зависимости отв настройках) к Header Search Path основного проекта.

  3. Теперь цель должна знать о новых библиотеках, с которыми она должна ссылаться.Поэтому в Project выберите Target и в Phases Build перейдите в раздел Link Binary with Libraries .Добавьте следующее:

    • libSoundCloudAPI.a
    • libOAuth2Client.a
    • libJSONKit.a
    • libOHAttributedLabel.a
    • libSoundCloudUI.a
    • QuartzCore.framework
    • AddressBook.framework
    • AddressBookUI.framework
    • CoreLocation.framework
    • Security.framework
    • CoreGraphics.framework
    • CoreText.framework
  4. Следующий шаг - убедиться, что компоновщик найдет все, что ему нужно: перейдите в настройки сборкипроекта и добавьте следующее к Другие флаги компоновщика

    -all_load -ObjC
    
  5. В iOS нам нужно немного графики: Пожалуйста, переместите SoundCloud.bundle из CocoaSoundCloudUI/ каталог к ​​вашим ресурсам.

...