Skip to content
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

Package Maps SDK for iOS in .xcframework to ease SPM integration #329

Closed
arriolac opened this issue Aug 13, 2020 · 47 comments
Closed

Package Maps SDK for iOS in .xcframework to ease SPM integration #329

arriolac opened this issue Aug 13, 2020 · 47 comments
Labels
priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. status: blocked Resolving the issue is dependent on other work. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.

Comments

@arriolac
Copy link
Contributor

Comment or +1 this issue if this is something you'd like to see in the library so it can be prioritized. Also a good candidate for contributions.

Is your feature request related to a problem? Please describe.
Currently, integrating this library with SPM requires that developers additionally include Maps SDK for iOS either via CocoaPods or Carthage. In other words, the Maps SDK is not packaged in the .xcframework which causes additional friction and confusion (see #326) while using this library.

Describe the solution you'd like
The Maps SDK for iOS should be included in the .xcframework.zip asset on each release so that developers can just include the iOS Utils library.

Describe alternatives you've considered
Keep existing integration.

Additional context
See #326

@arriolac arriolac added type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design. triage me I really want to be triaged. good first issue This issue is a good place to started contributing to this repository. labels Aug 13, 2020
@michael-mckenna
Copy link

michael-mckenna commented Aug 13, 2020

As the confused in #326 I'm a proponent. Without it being included I have to maintain Google Maps manually or use Carthage, both of which require a lot of extra steps I'd rather not mess with again. Cocoapods is not an option for my team. Additionally I think it'd be a great idea for google-maps-ios-utils to maintain the proper Google Maps version. If there is an version incompatibility down the road, it'd be on the developer to figure out the issue and update either this or Google Maps to the appropriate version.

@arriolac
Copy link
Contributor Author

@michael-mckenna curious... why is CocoaPods not an option for your team?

@michael-mckenna
Copy link

Mainly two reasons. The primary is that we are transitioning to SwiftPM as it's the officially supported dependency manager. The second is that cocoapods lead to dreadfully slow incremental build times which slowed the development cycle. Switching to Carthage remediated that issue, so there's no looking back for us ;) if memory serves me correctly, we got our incremental build times down from 1m45s on cocoapods to 23s with Carthage. This was also 2-3 years ago.

@arriolac
Copy link
Contributor Author

Wow, that's quite a huge difference 😅 Thanks for providing context.

@michael-mckenna
Copy link

@arriolac Will this integration allow building for macOS catalyst? somewhat relevant. Right now, I can't build for catalyst form the frameworks in the google maps zip

@arriolac
Copy link
Contributor Author

@michael-mckenna the built XCFramework simply mirrors the architectures that are currently supported by the SDK (arm64
& armv7 for iPhones, and i386 & x86_6 for Simulators). Adding support for Mac Catalyst, which we are evaluating and will eventually support, would be a separate step.

@luispadron
Copy link

+1 for a solution that would allow using only the officially supported dependency manager.

@Scvairy
Copy link

Scvairy commented Nov 19, 2020

@michael-mckenna the built XCFramework simply mirrors the architectures that are currently supported by the SDK (arm64
& armv7 for iPhones, and i386 & x86_6 for Simulators). Adding support for Mac Catalyst, which we are evaluating and will eventually support, would be a separate step.

Don't forget add arm64 for Simulators, so we can use it on new arm macs 😉

@cltnschlosser
Copy link

This is marked as good first issue, but it’s really up to the maintainers and distributors of https://cocoapods.org/pods/GoogleMaps. There is a lot of good information on xcframeworks here: https://github.com/bielikb/xcframeworks. It’s likely a simplification of the existing process for packaging the GoogleMaps framework and wouldn’t take much effort for someone to repackage it.

It is probably possible that someone external to google could download the existing release and repackage it as an xcframework, but I doubt Google wants the officially supported way to use google maps for spm and m1 macs to be: download a modified version of our binaries from someone else...

@arriolac
Copy link
Contributor Author

arriolac commented Feb 1, 2021

I filed this issue considering that the existing Maps SDK for iOS .framework could be packaged into the Maps SDK for iOS Utility library .xcframework. However, that's not really how SPM packages work.

Rather, the steps to mark this issue fixed would be: (1) for the Maps SDK for iOS to support .xcframeworks, and (2) update Package.swift for this repo and specify Maps SDK for iOS as a dependency. (1) needs to be done by us, and (2) can be done by us or a contributor. Since this issue is blocked by (1), I'll remove the good first issue label since you are correct that this needs to be provided by us.

(1) currently has no ETA so if you are using .xcframework version of this library you will need to include the Maps SDK for iOS dependency in addition using one of the installation options (CocoaPods, Carthage, or manual).

@arriolac arriolac removed the good first issue This issue is a good place to started contributing to this repository. label Feb 1, 2021
@mthole
Copy link

mthole commented Apr 7, 2021

Big +1 to this issue. I'd love to see GoogleMaps properly available via SPM. It's the primary blocker in moving my large app fully onto SPM now.

@luispadron
Copy link

Any update on this issue? It’s a blocker for a lot of users.

@arriolac
Copy link
Contributor Author

Please see my comment here googlemaps-samples/maps-sdk-for-ios-samples#70 (comment)

@SaidAlSouti
Copy link

Any update on this feature request?

@iserbius
Copy link

iserbius commented Jun 7, 2021

+1, still waiting . xcframework

@federicopolesello
Copy link

+1

4 similar comments
@RyuX51
Copy link

RyuX51 commented Jun 24, 2021

+1

@steffenbirkis
Copy link

+1

@piotrekjeremicz
Copy link

+1

@twprzybysz
Copy link

+1

@mathaeus
Copy link

+1

After the release of the SPM-compatible GoogleSignIn SDK this week, the Google Maps SDK is the last one for us that does not yet support SPM. So this would be highly appreciated🤞

@thehavre
Copy link

thehavre commented Dec 3, 2021

@arriolac Hi! Could you please clarify, since new 6.0.0 version of Google Maps SDK is available and #355 is closed, may we use this new XCFramework version in our local Swift Packages?

@ElysiumWhale
Copy link

+1

2 similar comments
@thr1llseek3r
Copy link

+1

@EastHell
Copy link

EastHell commented Dec 3, 2021

+1

@akhakimzyanov
Copy link

+1

3 similar comments
@Neilfau
Copy link

Neilfau commented Dec 17, 2021

+1

@VincentDurandChewbi
Copy link

+1

@Neilfau
Copy link

Neilfau commented Jan 17, 2022

+1

@leenatekani5
Copy link

Any update on when SPM will be available for google maps.

@stale
Copy link

stale bot commented Jun 12, 2022

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

@stale stale bot added the stale label Jun 12, 2022
@VincentDurandChewbi
Copy link

+1 still waiting for this update.
Last version of google maps sdk allows build on new arm mac so is there anything still blocking the SPM migration ?

@stale stale bot removed the stale label Jun 12, 2022
@blazek
Copy link

blazek commented Jun 14, 2022

+1

6 similar comments
@TaimoorSaeed
Copy link

+1

@Neilfau
Copy link

Neilfau commented Oct 4, 2022

+1

@stherold
Copy link

+1

@ARamy23
Copy link

ARamy23 commented Oct 25, 2022

+1

@StefanNestorov
Copy link

+1

@DanijelHuis
Copy link

+1

@wangela wangela added priority: p2 Moderately-important priority. Fix may not be included in next release. and removed triage me I really want to be triaged. labels Feb 9, 2023
@stale
Copy link

stale bot commented Jun 18, 2023

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

@stale stale bot added the stale label Jun 18, 2023
@AmarSinghRajput
Copy link

Any update on when SPM will be available for google maps

@stale stale bot removed the stale label Jun 24, 2023
@ARamy23
Copy link

ARamy23 commented Jul 2, 2023

+1

@emilismayilov095
Copy link

+10

@wangela wangela added status: blocked Resolving the issue is dependent on other work. priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. and removed priority: p2 Moderately-important priority. Fix may not be included in next release. labels Nov 21, 2023
@wangela
Copy link
Member

wangela commented Nov 21, 2023

Hi folks, I see the need here. I recommend "starring" the issue on the Maps SDK for iOS Public Issue Tracker as the best way to get notified when SPM support is available for the Maps SDK for iOS. That's the first priority, then the subsequent packaging in this Utils library will be easier.

@tuananhdoqm
Copy link

It is now officially supported https://cloud.google.com/blog/products/maps-platform/google-maps-platform-sdks-for-ios-now-available-through-swift-package-manager

@wangela wangela closed this as completed Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. status: blocked Resolving the issue is dependent on other work. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.
Projects
None yet
Development

No branches or pull requests