Carthage + Adjust v5: all products have the same product name overwriting each other
Description
AdjustSdk, AdjustSdkIm, and AdjustSdkWebBridge have AdjustSdk as a product name. When a product is built via Carthage, all three frameworks are built, but in the end, only the last one is left in the Build folder because all of them have the same product name defined in the project file. I suspect that is a regression in v5.
Derived data:
Project file change
| Before | After |
|---|---|
Extra notes
While migrating to v5, it also looks like we are not able to install Adjust-Signature via Carthage. Download options only contain a dynamic framework or static library while we are building dependencies as xcframeworks with static linkage.
Hi @balavor
Thank you for bringing this to our attention. We were able to reproduce the issue on our end and are working on a possible solution that should be released soon.
Hi @balavor,
To address this issue, we have started supporting the distribution of binary frameworks for Carthage installation.
Here is the developer documentation link to help you integrate the SDK via Carthage - https://dev.adjust.com/en/sdk/ios#alternative-installation-methods
Thank you again for bringing this to our attention.
Thanks @Aditi3 for the reply.
Unfortunately, the v5.4.0 update doesn't solve our issue. We use carthage to pre-build Adjust as an xcframework on our own. The reason for that is that we need to build the framework statically, not dynamically (.framework as staticlib). This key aspect is crucial in our integration, and switching to dynamic linking affects our product, reducing start-up time, bringing more friction to our users.
From what I see, Carthage distribution is still done dynamically, which is why we can't use the binary option and would expect the non-binary option to work normally (github "adjust/ios_sdk" ~> 5.4.0)
We can begin distributing the static library for Adjust SDK, but we also rely on another internal dependency—Adjust Signature SDK, which is obtained from GitHub as "adjust/adjust_signature_sdk". How do you plan to install or handle that?
AFAIU, from chatting with Adjust representatives, SignatureSdk is only required to be in the main application, and that's fine for us.
However, we are using the AdjustSdkIm version in the app extension, which captures most of the primary conversion events, and we have found that dynamic linking is significantly affecting us.