Skip to content

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

@blbnv

Description

@blbnv

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions