iovation / deviceprint-SDK-iOS

iovation device print SDK for iOS
Other
34 stars 13 forks source link

v5.3.0 can't be installed with Carthage #31

Closed CraigSiemens closed 2 years ago

CraigSiemens commented 2 years ago

v5.3.0 can't be installed with Cartahge since the Github Release doesn't contain the XCFramework as an artifact.

The Github release for v5.2.0 correctly contained the XCFramework artifact.

For reference: https://github.com/Carthage/Carthage#archive-prebuilt-frameworks-into-zip-files

mark-sanvitale-iovation commented 2 years ago

Ah, yes. The great dependency management debate! Here are our thoughts on this matter as it relates to this project. Dependency management tools like Carthage (and CocoaPods) are mainly concerned with the complex task of managing dependencies with open source projects. That is where the real magic happens. However, this project is not open source. Still, Carthage and the likes provide affordances for binary-only, pre-built dependencies, thus, closed-source projects can hook into this mechanism. Historically, we provided Carthage support (but not CocoaPods, which is another story) because there was a workload (e.g. proper multi-arch support, i.e. device and simulator, and the handling of 3rd-party bcsymbolmap files during app archive) that this tool reliably handled in the Universal (a.k.a. "Fat") framework era. Thus, preexisting Carthage users benefited by not having to engage in our own custom integration scripts for performing these build/archive-time tasks. This was an objectively discernible benefit (e.g. it allowed for skipping a significant chunk of our installation and preparation instructions).

We now find ourselves in the XCFramework era. This new format brings the aforementioned "discernible benefits" into the Xcode toolchain. Custom (or Carthage) tooling is no longer relevant. What we are left with is this tooling (e.g. Carthage) accomplishes merely downloading a zip file. We do not think this is enough of a discernible benefit to continue to officially support Carthage. The Carthage project will, necessarily, have integration issues with official Apple dev tool releases. (For example, there was a recent period where binary-only, XCFramework assets were not supported by Carthage.) This support cost exceeds the benefit of auto-downloading a new release.

Your opinion can, naturally, differ from ours. We suggest contacting your TransUnion Customer Success / Integration representative for more specific assistance and/or to make a feature request.

CraigSiemens commented 2 years ago

I guess this dependency never really supported a dependency manager, it was just a nice coincidence that it worked well with Carthage.

Though I will say most definitions of "Dependency Manager" don't distinguish between the type of the dependency (open vs closed source). The main benefits of a dependency manger is automating the resolution and usage of dependencies, regardless of whether they're open or closed source, so developers don't have to do it manually.