ios_sdk icon indicating copy to clipboard operation
ios_sdk copied to clipboard

Carthage + Adjust v5: all products have the same product name overwriting each other

Open balavor opened this issue 9 months ago • 5 comments

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.

Image

Derived data:

Image

Project file change

Before After
image image

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.

balavor avatar Mar 16 '25 12:03 balavor

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.

Aditi3 avatar Apr 09 '25 06:04 Aditi3

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.

Aditi3 avatar May 02 '25 09:05 Aditi3

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)

balavor avatar May 02 '25 10:05 balavor

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?

Aditi3 avatar May 06 '25 06:05 Aditi3

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.

balavor avatar May 06 '25 10:05 balavor