Appboy / appboy-ios-sdk

Public repo for the Braze iOS SDK
https://www.braze.com
Other
165 stars 142 forks source link

Carthage xcframework support #293

Closed j-won-o closed 2 years ago

j-won-o commented 3 years ago

Carthage xcframeworks support is needed to save build time.

thangngoquocOura commented 3 years ago

Second this, should be straightforward to support XCFramework.

hokstuff commented 3 years ago

Hi @j-won-o and @thangngoquocOura,

Thanks for letting us know about the feature request. Carthage has recently released version 0.38.0 which adds XCFramework support for prebuilt binaries, and this is expected to be compatible with how we distribute our SDK. We have now added this request to our roadmap.

Best, Daniel

gui17aume commented 3 years ago

Hello @hokstuff, It's really good news that a full precompiled version as a XCFramework is coming via Carthage. Until then, do you plan to include this all-in-one XCFramework in the assets of your releases on GitHub? It would be much appreciated!

gui17aume commented 3 years ago

Hello @hokstuff, Is there any update on this issue? It is a bit disappointing that the last release is not including a Appboy_iOS_SDK.xcframework.zip asset along with the legacy framework version.

hokstuff commented 3 years ago

Hi @gui17aume,

Thanks for getting back to us and sorry for the delay. Currently, we distribute our SDK in an XCFramework built from a static library with the resources included separately. We are investigating for how we can package a complete all-in-one XCFramework built from a static library that also contains the resources. Once we have that, we will be able to attach that asset to our release on Github - but we do not have a timeline for when that may be ready.

Update: Since our current Carthage artifacts use dynamic frameworks, we are looking into generating an XCFramework from a dynamic framework instead of from static libraries.

Thank you for your patience!

gui17aume commented 3 years ago

Hi @hokstuff,

I understand that it could be better to have a all-in-one XCFramework built from a static library.

But since you currently deliver an all-in-one framework containing a dynamic library and the resource bundles:

Appboy Framework

wouldn't it be easier for you to package this already existing framework into a XCFramework? (by replacing the lipo step and keeping the simulator arm64 slice)

Appboy XCFramework

It could be a nice solution to provide a complete XCFramework quickly, and then you will have more time to adjust the XCFramework content if needed.

hokstuff commented 3 years ago

Hi @gui17aume,

Thank you for your patience on this! Your proposed solution makes sense and they would allow us to create a standalone XCFramework. However, it requires us to update a decent amount of our build process and automated scripts to make our current Carthage frameworks - so right now we cannot guarantee that we would release this new XCFramework artifact before we release Carthage XCFramework support (composed of a dynamic framework). These two projects have a decent amount of overlap and as we investigate, it may make sense to bundle them into the same release.

We will keep you updated as we have more information. Thanks!

marcusziade commented 3 years ago

Any update?

Sadmansamee commented 3 years ago

Any update?

hokstuff commented 3 years ago

Hi all,

Our team has this project planned in the near future, but we are currently addressing changes related to the expected iOS 15 release next month. We have this project lined up as one of the top priorities once our preparations for the new OS are out.

Thank you for your continued patience on this issue - we appreciate it!

hokstuff commented 2 years ago

Hello,

Just giving you all an update since there were no changes around this topic in our 4.3.3 release today. We are currently validating a proposed change to add a standalone XCFramework (with assets) and are working to add that to the Carthage ecosystem. We plan to include these features in upcoming release(s), and we will be sure to post here with updates on either (or both) of these feature requests.

Thank you all!

hokstuff commented 2 years ago

Hi all!

We just released the iOS SDK version 4.4.0 which adds XCFramework support to Carthage! This release also adds a new asset called Appboy_iOS_SDK.xcframework.zip, which contains the all-in-one XCFramework that can be dragged and dropped directly into a project. Please let us know here or via emailing support@braze.com if you run into any issues!

Note: When importing via Carthage, you may need to use carthage update --use-xcframework instead of the carthage build --use-xcframework command described in the Carthage migration steps.

Thank you so much for your patience on this request! 🙏

Best, Braze iOS Team

marcelofabri commented 2 years ago

The Core integration does not support XCFrameworks, and you can use the original .framework files as before.

Any reason for that @hokstuff? That's the integration we've been using and would love to keep using it.