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

App crash and dyld error message (AblyDeltaCodec cannot be loaded, image not found) when using XCFrameworks on macOS app. #1183

Closed
saragiro opened this issue Sep 30, 2021 · 2 comments · Fixed by #1754
Assignees
Labels
bug Something isn't working. It's clear that this does need to be fixed.

Comments

@saragiro
Copy link

saragiro commented Sep 30, 2021

A customer has reported that they’re getting a dyld error (AblyDeltaCodec cannot be loaded, image not found.) when attempting to use XCFrameworks instead of Carthage, whilst attempting to follow the instructions in

https://github.com/ably/ably-cocoa to build their macOS app.

The application runs fine from Xcode but upon installing the app on the test machine, the app crashes with dyld error message because AblyDeltaCodec cannot be loaded, image not found.

Steps followed prior to the error & crash were:

1-Changed Carthage update to include --use-xcframeworks
2-Removed the old framework references from the project
3-Dragged the three XCFrameworks from the Carthage build folder into the project
4-Confirmed that all three are in the Frameworks, Libraries and Embedded Content list on the General tab and that they have Do Not Embed selected
5-Confirmed all three are in the Link Binary with Libraries list in Build Phases

┆Issue is synchronized with this Jira Bug by Unito

@saragiro saragiro changed the title ### App crash and dyld error message (AblyDeltaCodec cannot be loaded, image not found) when using XCFrameworks on macOS app. App crash and dyld error message (AblyDeltaCodec cannot be loaded, image not found) when using XCFrameworks on macOS app. Sep 30, 2021
@AndyNicks AndyNicks added the bug Something isn't working. It's clear that this does need to be fixed. label May 3, 2022
@lawrence-forooghian
Copy link
Collaborator

lawrence-forooghian commented May 23, 2023

@saragiro do you know whether the customer managed to resolve this issue? I appreciate it was raised quite some time ago. I intend to look at this bug next sprint, starting by trying to reproduce. If it's an issue with our documentation then I will improve it.

@lawrence-forooghian lawrence-forooghian self-assigned this May 23, 2023
@lawrence-forooghian
Copy link
Collaborator

@saragiro told me that we provided the customer with some additional instructions, which by the sounds of it involved running some additional shell script that I don't think is documented (at least that's what I understand from the original internal Slack thread), and that the customer told us that this solved their issue. Sounds like we should still check our documentation and whether it's sufficient.

lawrence-forooghian added a commit that referenced this issue Jun 5, 2023
The current instructions re not embedding the frameworks in a macOS app
cause the app to exit upon launch with a linker error because one of our
frameworks can’t be found.

These instructions were added in 9a1e84c, as part of the PR for adding
Swift Package Manager support, and there’s no explanation of the
motivation for this change or how it was related to that work.

My best guess is that it was probably something to do with the fact that
we previously used to embed our dependency frameworks inside
Ably.xcframework. However, this caused duplicate framework issues if we
also tried to embed the dependency frameworks inside the application
too. This is the issue described by #1599, which was resolved in 9a1e84c
by no longer embedding the dependency frameworks inside Ably.framework.

So, I’m removing these instructions, hence reverting 9a1e84c, and have
replaced them with language taken from the Carthage quickstart guide
[1].

Resolves #1183.

[1] https://github.com/Carthage/Carthage/blob/187a78c62811d3d75a9b1d41bfaeff708936125d/README.md#L57
lawrence-forooghian added a commit that referenced this issue Jun 5, 2023
The current instructions re not embedding the frameworks in a macOS app
cause the app to exit upon launch with a linker error because one of our
frameworks can’t be found.

These instructions were added in 9a1e84c, as part of the PR for adding
Swift Package Manager support, and there’s no explanation of the
motivation for this change or how it was related to that work.

My best guess is that it was probably something to do with the fact that
we previously used to embed our dependency frameworks inside
Ably.xcframework. However, this caused duplicate framework issues if we
also tried to embed the dependency frameworks inside the application
too. This is the issue described by #1594, which was resolved in 9a1e84c
by no longer embedding the dependency frameworks inside Ably.framework.

So, I’m removing these instructions, hence reverting 9a1e84c, and have
replaced them with language taken from the Carthage quickstart guide
[1].

Resolves #1183.

[1] https://github.com/Carthage/Carthage/blob/187a78c62811d3d75a9b1d41bfaeff708936125d/README.md#L57
lawrence-forooghian added a commit that referenced this issue Jun 5, 2023
The current instructions re not embedding the frameworks in a macOS app
cause the app to exit upon launch with a linker error because one of our
frameworks can’t be found.

These instructions were added in 9691ebc, as part of the PR for adding
Swift Package Manager support, and there’s no explanation of the
motivation for this change or how it was related to that work.

My best guess is that it was probably something to do with the fact that
we previously used to embed our dependency frameworks inside
Ably.xcframework. However, this caused duplicate framework issues if we
also tried to embed the dependency frameworks inside the application
too. This is the issue described by #1594, which was resolved in 9a1e84c
by no longer embedding the dependency frameworks inside Ably.framework.

So, I’m removing these instructions, hence reverting 9a1e84c, and have
replaced them with language taken from the Carthage quickstart guide
[1].

Resolves #1183.

[1] https://github.com/Carthage/Carthage/blob/187a78c62811d3d75a9b1d41bfaeff708936125d/README.md#L57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working. It's clear that this does need to be fixed.
Development

Successfully merging a pull request may close this issue.

3 participants