Kiran Panesar
Kiran Panesar

Reputation: 3194

SoundCloud Libraries Not Found

I'm having some trouble with the SoundCloud API for iOS. I've followed the directions on their quickstart guide (here) and set my Header Search Path like so.

Xcode is finding SCUI.h and until recently wasn't getting any syntax errors. The app was running fine on the iOS Simulator and executing SoundCloud API requests (SCRequest methods). But I then went to try it on-device and encountered these errors, then when I went back to trying to test on the Simulator I started getting these errors.

After reading the error messages and checking my linked libraries (here) I'm certain it has something to do with the path that Xcode is searching for the headers. Or maybe those libraries just don't exist? I can't seem to see any them in Finder, even the .a files that are in black in my linked libraries section.

Also, I've tried cleaning the product (CMD+Shift+K). This allows the project to be run on the simulator but causes an "Assertion failure":

Assertion failure in -[NXOAuth2Client initWithClientID:clientSecret:authorizeURL:tokenURL:accessToken:tokenType:persistent:delegate:], /Users/chiliesontoast/Desktop/iOS/Projects/MobileX Labs/MXLTest App/MXLTestApp/OAuth2Client/Sources/OAuth2Client/NXOAuth2Client.m:82

And then when trying to build for a device it returns this error.

Has anybody got any suggestions for a solution? It's been really bothering me all day.

Thanks.

Upvotes: 2

Views: 1660

Answers (2)

James Morris
James Morris

Reputation: 163

Been fighting this one for a while... hit error after error (if anyone encounters a different one to this, message me - i guarantee I've hit it)

Anyway, what worked for me is that when you click on the project file, you have a choice of checking the build settings for the project or the target. It didn't work for me until I entered $PROJECT_DIR into the project build settings header search paths instead of the target build settings (or both)

Upvotes: 0

Kiran Panesar
Kiran Panesar

Reputation: 3194

Ah, finally fixed it! It was a combination of two things.

First Issue

The first issue (here and here) was something to do with with the libraries and search paths. I did a load of different things, not sure what fixed it. I did this:

  1. Changed the Header Search Paths around from "./**" to "$PROJECT_DIR" and finally to "../**", which is what it's at now.
  2. Deleted all of the files downloaded for the SoundCloud API.
  3. Deleted the entries for the downloaded submodules in .gitmodules and .git/config and then deleted all of the API's folders from .git/modules.
  4. Then I removed the git cache by navigating to my project's root folder in Terminal and running:

    git rm --cache ./OAuth2Client

(And repeated for each of the added submodules). I then reinstalled the SoundCloudAPI (using git) and possibly cleaned the project (CMD+Shift+K).

Second Issue

The second issue was with a weird runtime error

Assertion failure in -[NXOAuth2Client initWithClientID:clientSecret:authorizeURL:tokenURL:accessToken:tokenType:persistent:delegate:], /Users/chiliesontoast/Desktop/iOS/Projects/MobileX Labs/MXLTest App/MXLTestApp/OAuth2Client/Sources/OAuth2Client/NXOAuth2Client.m:82

After some serious research into NXOAuth and looking at the stack trace I realised that I needed to include the following code in the function before trying to perform any SCRequest methods:

[SCSoundCloud setClientID:@"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
                   secret:@"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
              redirectURL:[NSURL URLWithString:@"AppName://oauth"]];

So, that's how I went about solving it. I really hope this helps someone as I was stuck for a whole ~20 hours on this.

Upvotes: 3

Related Questions