-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch swift_version to 5.0 and add LIBRARY_SEARCH_PATHS in xcconfig #315
Conversation
It is a minimal required fix to avoid a runtime linking error while running tests on iOS versions prior to 13 after building with Xcode 11
Thank you for the PR. I agree with you about upgrading to Swift 5.0. Hopefully it won't be a PITA in the long run. |
when I am using this commit in cart file I am getting error |
Hey, thanks for giving back to the Cuckoo community by creating a pull request. The reason we've not merged these changes in yet is the Carthage situation. I'll try to get it sorted out today. Thanks again for the PR! |
I have raised this issue. Could you please look at it? is it related to this PR changes? |
I was responding to this PR's author @artyom-razinov. It was just coincidentally right after your comment. Lesson learned to use the handle next time. |
@sanoj00b Carthage is broken in 1.2.0 thanks to its lightweight (read limited) functionality that probably forces us to separate the repository into swift mocking and ObjC mocking using OCMock. |
It is not in Brightify/Cuckoo repo yet
No. The issue this PR fixes is that without these changes any test target that imports Cuckoo crashes on iOS 12 or lower if built with Xcode 10. It is a runtime issue. You have compile time issue. |
The matter is a bit more complicated than I anticipated. I'll have to push this into next week. |
Are we planning this week? |
Yes. |
@artyom-razinov, I'll be merging this pull request and releasing it shortly. Even though this PR consists of only a few lines, I have no doubt that it took a significant amount of time of finding the leanest (and most elegant) solution to the problem. On behalf of the Cuckoo community I thank you for the pull request and am looking forward to working with you in the future! |
We had some problems with this solution. It seems that this line:
caused a problem in a very old project (https://forums.swift.org/t/undefined-symbol-swift-getfunctionreplacement/30495) when was linked to a library with that line in podspec. I've localized the issue to this exact line, but the issue is only with 1 project. Some settings seem to conflict with each other. This is just FYI. It was working fine in a newer project, I'm investigating this now. |
Thanks for the info. I jumped over Xcode 11.1 and my testing project that fetches Cuckoo was working the way it should. Still, if there is an issue with the library search paths for more Cuckoo users, we'll see where we can go from there. |
The problem in our old project was solved by setting DEAD_CODE_STRIPPING to YES. Just fyi. |
This fixes running tests on iOS 10/11/12 with Cuckoo when tests are built using Xcode 11.
It is a minimal required fix. I checked this, nothing can be removed from these changes to fix the issue.
I think it is okay to switch to Swift 5 at the moment. It is the biggest change in terms of compatibility, it has stable ABI, etc. I was trying to keep my project in Swift 5, but I gave up after several days. You can make a tag named swift-4.2 for current HEAD in Cuckoo. People who use your project will still be able use your project.
I think there is no point in holding on to the past now.