parse-community / ParseLiveQuery-iOS-OSX

Parse LiveQuery Client for iOS/OS X.
https://parseplatform.org
Other
192 stars 133 forks source link

Xcode 12 beta 6 / iOS 14 incompatibility #228

Closed julianvogels closed 4 years ago

julianvogels commented 4 years ago

The Parse iOS SDK had an issue which lead to Xcode 12 beta 6not being able to compile: https://github.com/parse-community/Parse-SDK-iOS-OSX/issues/1526

This was recently addressed in https://github.com/parse-community/Parse-SDK-iOS-OSX/pull/1527., which is not released yet. The fix can only be integrated by modifying the Podfile to use the version from the Github repository directly:

pod 'Parse', :git => 'https://github.com/parse-community/Parse-SDK-iOS-OSX'
pod 'ParseLiveQuery', '2.7.1'

Since we are using ParseLiveQuery version 2.7.1 in the same project, pod install now fails with

ParseLiveQuery (from `https://github.com/parse-community/ParseLiveQuery-iOS-OSX`) was resolved to 2.7.1, which depends on
      Parse (~> 1.18.0)

because ParseLiveQuery depends on Parse version 1.18.0. Changing the Podfile to use ParseLiveQuery from Github directly does not fix the issue.

Repro Steps

  1. Using Xcode beta 6 and a fresh iOS app project, run pod init from the terminal
  2. Add the above lines to the Podfile
  3. Run pod install

Expected result

Pod installation succeeds

Actual results

Pod installation fails with dependency error (ParseLiveQuery 2.7.1 depends on Parse ~> 1.18.0)

drdaz commented 4 years ago

This was recently addressed in parse-community/Parse-SDK-iOS-OSX#1527., which is not released yet.

1.19.0 was released with this fix earlier this week.

drdaz commented 4 years ago

I may have been a little hasty closing this; but I presume Cocoapods ParseLiveQuery accepts version 1.19.0 as the dependency?

julianvogels commented 4 years ago

If I run pod install --repo-update and a Podfile with content

pod 'Parse', '1.19.0'
pod 'ParseLiveQuery', '2.7.1' 

I get

[!] CocoaPods could not find compatible versions for pod "Parse":
  In Podfile:
    Parse (= 1.19.0)

    ParseLiveQuery (= 2.7.1) was resolved to 2.7.1, which depends on
      Parse (~> 1.18.0)

which is why I assumed it wasn't released to Cocoapods yet. This happens even if I set the deployment target in the Podfile to 14.0.

drdaz commented 4 years ago

Alrighty. I guess we need to roll that version on ParseLiveQuery. That '~>' disappoints me; I'd have expected it to accept 1.x tbh 🤷🏽‍♂️.

julianvogels commented 4 years ago

Yes I would expect that too actually 🤔, '~>' should resolve to any 1.x if Cocoapods respects semantic versioning.

Can you reproduce this issue? I hope it's not just on my side. I tried this only on one machine so far. Here's a test project.

Test.zip

drdaz commented 4 years ago

I'll give it a try at some point soon. If you have a chance, by all means give this a shot on another system.

pausenabre commented 4 years ago

I have the same issue: I can not run ParseLiveQuery(2.7.1) with Parse (1.19.0) [!] CocoaPods could not find compatible versions for pod "Parse": In Podfile: Parse (= 1.19.0) ParseLiveQuery (= 2.7.1) was resolved to 2.7.1, which depends on Parse (~> 1.18.0)

LilMoke commented 4 years ago

Hello, I am having this same issue. Has this been addressed? Or is there any workaround? I need to build my project with Swift 5.0/5.3. I have searched but cannot find a solution.

julianvogels commented 4 years ago

It's addressed in release 2.7.2 but it's not released yet. There's a workaround though. Change the line in your Podfile to this:

pod 'ParseLiveQuery', :git => 'https://github.com/parse-community/ParseLiveQuery-iOS-OSX', :branch => 'release'

…but don't forget to change it to

pod 'ParseLiveQuery', '2.7.2'

as soon as 2.7.2 is released!

cbaker6 commented 4 years ago

I believe pod update should have been used instead of pod install in order to install 1.19. When you use pod install it resorts to what’s in your lock file. Update “updates” your lockfile with the latest in this case and downloads it.

Your workaround works because you are looking for something new that isn’t in your lockfile, which is the branch itself.