parse-community / Parse-SDK-iOS-OSX

The Apple SDK for Parse Platform (iOS, macOS, watchOS, tvOS)
https://parseplatform.org
Other
2.81k stars 873 forks source link

clientKey nil exception 1.13.0 #896

Closed robert-wallis closed 8 years ago

robert-wallis commented 8 years ago

This was in the 1.13.0 milestone. #827 But in practice using the framework downloaded from the releases causes 'clientKey' should not be nil. to be thrown.

Specifically with this swift code:

let config = ParseClientConfiguration {
    $0.applicationId = kApplicationID
    $0.server = kServer
    $0.clientKey = ""
}

Which indicates that the 1.13.0 release does not contain this code #827, or specifically this commit because it looks like the property is throwing.

Also in Travis the test ParseSetupUnitTests::testInitializeWithNilApplicationIdShouldThrowException is/was ??? ing, maybe it's throwing.
https://travis-ci.org/ParsePlatform/Parse-SDK-iOS-OSX/jobs/121564192#L1274

What am I doing wrong?

The reason I'm setting it to nil or "" is the iOS code doesn't seem to be creating an installation record on parse-server, but the Android code worked after setting the client key to null.

nlutsenko commented 8 years ago

Hey @robert-wallis, which platform do you see the problem with? I've just tested iOS and OS X packages and there it works like a charm.

Can you point me to the specific download that you see the problem with?

Travis would have failed with an error, since xcpretty is also checking for non-zero exit code on the xcodebuild process, which means that all of the tests didn't fail.

parse-github-bot commented 8 years ago

Thank you for your feedback. We prioritize issues that have clear and concise repro steps. Please see our Bug Reporting Guidelines about what information should be added to this issue.

Please try the latest SDK. Our release notes have details about what issues were fixed in each release.

In addition, you might find the following resources helpful:

robert-wallis commented 8 years ago

We are having trouble with an iOS 6 device. Using the 1.13.0 framework downloaded from https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/releases/tag/1.13.0

To reproduce:

let config = ParseClientConfiguration {
    $0.applicationId = kApplicationID
    $0.server = kServer
    $0.clientKey = ""
}

Crashes with: 'clientKey' should not be nil. in console. Thanks for looking into this. It's possible that the github release code is incorrectly tagged.

nlutsenko commented 8 years ago

Ehm, are you sure it's the problem with iOS 6? The interesting thing is that Swift doesn't support iOS 6 at all. If you got it to run - that's actually undefined behavior.

Parse SDK also dropped support for iOS 6 a while ago and we are iOS 7.0+ only at this point.

robert-wallis commented 8 years ago

Sorry for being an idiot, I meant iOS 9 on an iPhone 6. Too many things going on right now and I mixed the versions.

robert-wallis commented 8 years ago

There must be something wrong with how we set up the framework on iOS because I checked the hash that is tagged 1.13.0 and the assert is no longer there. https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/blob/dccfe4215ad9d1144089a9c275661a5360466915/Parse/ParseClientConfiguration.m#L67

So it's basically impossible unless we are actually running 1.12.0. We will try to repro on a different environment.

nlutsenko commented 8 years ago

Sounds good. Keep me posted. I would recommend checking framework search paths so it doesn't have a way to find the old framework and cleaning xcode derived data.

robert-wallis commented 8 years ago

Thanks, yes clearing derived data worked. As a side note, we noticed the swift instructions still point to 1.12.0 https://parse.com/apps/quickstart#parse_data/mobile/ios/swift/existing