Skip to content

Library evolution error "No such module Sovran" when using the xcframework #213

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

Closed
blbnv opened this issue Apr 7, 2023 · 2 comments · Fixed by #220
Closed

Library evolution error "No such module Sovran" when using the xcframework #213

blbnv opened this issue Apr 7, 2023 · 2 comments · Fixed by #220
Assignees
Labels

Comments

@blbnv
Copy link

blbnv commented Apr 7, 2023

I am trying to useSegment by using an attached xcframework. After adding a framework, importing it into my host application and just building I have a problem with (I suppose) the library evolution of Sovran (the framework Segment depends on).

The error violation for the import Semgent

Failed to build module 'Segment' for importation due to the errors above; the textual interface may be broken by project issues or a compiler bug

The error violation into swiftinterface file:

No such module 'Sovran'

To Reproduce

  • Xcode 14.2 (14C18)
  • Segment 1.4.0 release

Steps to reproduce the behavior:

  1. Create an empty application with iOS 16.0 as a minimum deployment target
  2. Download an xcframework from the release 1.4.0
  3. Drag and drop xcframework into a newly created application
  4. Make sure the Embed and sign option is selected for a given framework since it's a dynamic one. If this step will be not done, the dynamic library will fail to load at runtime.
  5. Make import Segment in any of the application files
  6. Build the project

Expected behavior
Build succeeded.

Actual Behaviour
Build failed.

Screenshots
Screenshot 2023-04-07 at 11 56 16

Screenshot 2023-04-07 at 11 56 55

Platform (please complete the following information):

  • Library Version in use: 1.4.0
  • Platform being tested: iOS, Xcode 14.2 14C18
  • Integrations in use: N/A

Additional context
I suppose it's because of the swift library evolution. All modules that the framework depends on should be built with library evolution and the internal usage of them should be marked with @_implementationOnly import Sovran.

@bsneed
Copy link
Contributor

bsneed commented Apr 26, 2023

Working on this along with #207

@bsneed
Copy link
Contributor

bsneed commented Apr 26, 2023

Fixed! Implementationonly wouldn't suffice as it leaves out any protocol imports. Pull the xcframework for Sovran (which is on the release page at that repo now) and you should be good.

@bsneed bsneed closed this as completed Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants