-
-
Notifications
You must be signed in to change notification settings - Fork 874
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
builds dynamic framworks #600
Conversation
@flovilmart, is there a specific reason why you need a dynamic framework for Swift framework? Will review and report few things on the code here in the meantime. I agree that this is a good idea in general, also would make us compatible with Carthage. |
Code review:
Overall, I would suggest taking a look at BoltsFramework/Bolts-ObjC#168 which was contributed recently to Bolts.framework. That one has the same feature built, but for Bolts.framework. You can base the implementation here off of that one. |
I'm building ParseZero, that allows dump from a ParseApp to be preloaded in the app for a great first launch experience, even offline.It leverages the localDatastore and pins.This framework is in swift and meant to be distributed via Carthage.Mind that Parse is not initialized in that framework, but in the host app.Initially I was using the static lib framework and all was fine, even with the Unit Tests.When integrating in an app, I started having duplicate symbols problems as Parse (and Bolts) would be linked statically twice.Also because the symbols are different the Parse in the host app and the ParseZero framework would be different and uninitialized in the Framework. Envoyé à partir d'Outlook
From: Nikita Lutsenko notifications@github.com @flovilmart, is there a specific reason why you need a dynamic framework for Swift framework? Will review and report few things on the code here in the meantime. I agree that this is a good idea in general, also would make us compatible with Carthage. — |
That's actually the main reason why we don't ship only dynamic framework for iOS - we want to be explicitly compatible with iOS 7. One of 2 things for shipping this here:
Let me know which path is easier and makes more sense for you. |
As for the review, thanks for the tips :) |
I guess I'll be able to manage with the effort that has been made on Bolts already. |
Also in the Bolts projects, I really don't like the Target duplication that occurs because of the dynamic Scheme. |
Sure, that sounds good. |
Haha! Yeah, that works! Awesome find! |
I'm not sure about setting the destinations from the rakefile, but if that works, that is way cleaner :) |
One thing - I wonder what happens with Configurations here, I mean This is implicit and crazy, but I guess it works. |
I'll check it out as we need at least to set a different -destination for the universal framework |
Some parameters can be forwarded like |
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
The shared configuration particularly the iOS breaks stuff as it forces the SDKROOT to iphoneos. I've just played with it and don't seem to have any clean workaround |
@flovilmart updated the pull request. |
1 similar comment
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
@nlutsenko btw, the toolchain is ready http://github.com/flovilmart/ParseToolchain |
@flovilmart updated the pull request. |
@flovilmart updated the pull request. |
@flovilmart Quick question on top of this: |
The override of the SDKROOT is because the Parse-iOS-Dynamic is a macos target and it needs to be overridden by default to an iphone SDKROOT (iphoneos or iphonesimulator)
the $SDKROOT variable is the one passed when invoking:
|
And I am confused... why is it a macos target? |
Xcode defines it that way. In the case of our Parse-iOS-Dynamic, we need to override those as well. The Parse-iOS-Dynamic.xcconfig is use to define the build settings for the target as well as the build settings for the Parse-iOS target. That can be confusing. |
From what I understood: Here is the confusing part:
Not sure about the underlying difference, but iOS supports dynamic framework targets since Xcode 6 (I think the product type is the same as with macos, you are right). Let's start from the beginning: |
I've spent hours already trying to integrate with iOS.xcconfig and it breaks the build.
|
@flovilmart updated the pull request. |
@nlutsenko Check in the last commit, I managed to do some things a bit cleaner, |
@flovilmart updated the pull request. |
@nlutsenko I just rebased and fixed a stupid typo in a file name |
Superseeded by #717 |
I have a 'workaround' here to build dynamic frameworks just based on xconfigs, as I needed dynamic frameworks for a swift framework.
This producing the frameworks in build/ios through a shell script (not integrated with the rake bundle).
How do you think you could support that? In the future I will only require dylibs in the project I'm working on.