-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Add support for Carthage #1623
Comments
Carthage support would be great, but Carthage only supports dynamic frameworks at the moment, whereas this project's relatively complex build system puts out a static library. CocoaPods wraps this static library in a framework, which is how we support Swift. So if we can do something like that as part of the build process, we'd be able to support Carthage. |
Dynamic framework is tracked in #828. |
carthage support would be great! |
+1 on carthage support |
For anyone interested in a temporary way to include Mapbox via Carthage until #828 is resolved, I've created a mirror using the Rome CocoaPods plugin at https://github.com/erichoracek/Mapbox. |
We’ve begun to publish 3.1.0 prereleases with dynamic frameworks attached. However, there are a couple issues blocking Carthage adoption:
|
According to Carthage/Carthage#1056 (comment), the existing structure should be fine. We just need to publish a redundant copy of the “-dynamic.zip” package with “.framework” in the name. |
Apparently Carthage considers any tag that doesn’t strictly conform to semver to meet the requirements specified in the Cartfile: Carthage/Carthage#469. Hopefully we’d get lucky because Android and Node releases have no “.framework” assets. |
IIRC, Carthage downloaded the Android release when I tried it a few days back (and Android was the most recent). |
+1 |
Carthage/Carthage#722 would give us another way forward for this issue. |
+1 Carthage |
Carthage fundamentally isn’t compatible with monorepos like this one. We could maintain a separate repository for iOS SDK releases along the lines of #1623 (comment), but then why not split the iOS and macOS SDKs’ Objective-C codebase into a separate repo from the core mbgl project, as we originally did in mapbox-gl-cocoa? |
Thanks for the heads-up, @erichoracek — we've added tentative support for Carthage. 🏛 I’ll leave this issue open for now so we can track how well this initial Carthage support works, and also as a reminder to add official documentation. How to use the Mapbox iOS SDK with CarthageIf you’re new to Carthage, follow these setup instructions.
There is also a
Caveats
|
Please be sure to open a Carthage issue if you have any feedback about this feature! I'm excited to see people adopting this feature. 🤘 |
@mdiep, on behalf of all monorepoists out there, thank you. 😉 |
The Mapbox macOS SDK supports Carthage through a setup workflow similar to the one in #1623 (comment). Here are the general instructions for a macOS project, and here are the steps for the macOS SDK specifically:
Note that Carthage doesn’t currently support prereleases, even when you use the Edit: Renamed the binary project specification from “carthage.json” to “Mapbox-macOS-SDK.json”. |
iOS instructions are live at: https://www.mapbox.com/ios-sdk/ |
Fixed in #8257. |
It would be wonderful if Mapbox GL for iOS would support Carthage as an alternative to Cocoapods.
The text was updated successfully, but these errors were encountered: