Skip to content

Demo app fails to build on newer Xcode: ExyteChat 2.x needs a 3.x migration #444

Description

@nezhyborets

What

The Demo app (Demo/Demo.xcodeproj) currently fails to link on Xcode 27.0:

Undefined symbols for architecture arm64/x86_64:
  "variable initialization expression of ExyteChat.ChatView.(__isShowingMenu...) : SwiftUI.LazyState<Swift.Bool>", referenced from: ...

Demo/DemoChat is pinned to .package(url: "https://github.com/exyte/Chat.git", from: "2.5.7"), which currently resolves to 2.7.10 (the latest 2.x release). That version's ChatView default-property-initializer symbol doesn't link against this newer Swift compiler/SDK.

Why it's not a quick fix

Bumping the dependency to the latest release (3.3.0) does fix the linker error, but ExyteChat 2.x → 3.x is a breaking API change, and DemoChat's own source was written against the 2.x API. Confirmed compile errors after bumping to 3.3.0:

  • ChatView no longer has a .messageUseMarkdown modifier (used in DetailView.swift and ResponsesChatDetailView.swift)
  • PopupParameters lost its .displayMode member (surfaces via ExyteMediaPicker, which also gets bumped forward as a transitive dependency of Chat 3.x)
  • ResponsesStore.ConversationTurn no longer conforms to Hashable (likely a conformance dropped by a Chat/MediaPicker 3.x type it wraps)

So this needs a deliberate ExyteChat 3.x migration of DemoChat, not a version bump alone.

Impact

  • Demo is not built by any CI workflow, so this doesn't block CI or the package itself — only local development/testing of the Demo app.
  • Anyone trying to run the Demo app locally on a recent Xcode toolchain will hit this.

Suggested next step

Migrate DemoChat to ExyteChat 3.3.0+: update Demo/DemoChat/Package.swift's version constraint, then fix the resulting compile errors (messageUseMarkdown, PopupParameters.displayMode, ConversationTurn: Hashable) per ExyteChat's 3.x migration notes.

Related: #443

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions