Reputation: 3194
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
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
Reputation: 3194
Ah, finally fixed it! It was a combination of two things.
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:
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).
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