Skip to content

iOS: import Combine where layers conform to ObservableObject - #931

Open
wf9a5m75 wants to merge 1 commit into
openmobilemaps:mainfrom
wf9a5m75:fix/ios-import-combine
Open

wf9a5m75 wants to merge 1 commit into
openmobilemaps:mainfrom
wf9a5m75:fix/ios-import-combine

Conversation

@wf9a5m75

Copy link
Copy Markdown

Fixes #930

RasterLayer.swift and VectorLayer.swift conform public/open classes to ObservableObject without importing Combine. With library evolution enabled (BUILD_LIBRARY_FOR_DISTRIBUTION=YES) this is an error:

error: 'ObservableObject' aliases 'Combine.ObservableObject' and cannot be used in a public or '@usableFromInline' conformance because 'Combine' was not imported by this file

This adds import Combine to both files. No behaviour change.

Tested with Xcode 27.1 (Swift 6.4): building a package that depends on maps-core with BUILD_LIBRARY_FOR_DISTRIBUTION=YES for generic/platform=iOS Simulator fails without this change and succeeds with it.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-24T06:18:14.439032Z a48979e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

wf9a5m75 added a commit to MapConductor/ios-for-openmobilemaps that referenced this pull request Oct 24, 2026
scripts/api-surface.sh now covers OpenMobileMaps. Building maps-core with library
evolution needs openmobilemaps/maps-core#931 (import Combine in two layer files).
wf9a5m75 added a commit to MapConductor/ios-for-openmobilemaps that referenced this pull request Oct 24, 2026
* Add OpenMobileMapsDesign.none: no tile layer at all

An empty template means no design layer is set, so only what the app adds is drawn.

* feat: integrate vector style support and pending map fixes

* remove unnecessary file

* Record the public API baseline

scripts/api-surface.sh now covers OpenMobileMaps. Building maps-core with library
evolution needs openmobilemaps/maps-core#931 (import Combine in two layer files).
@wf9a5m75

Copy link
Copy Markdown
Author

Please review this PR. Thank you.

@stmitt

stmitt commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the PR! This is already fixed in our internal repository, and the fix will be included in the upcoming release.

wf9a5m75 added a commit to MapConductor/ios-sdk that referenced this pull request Nov 5, 2026
api-surface.sh now dumps and checks ios-for-openmobilemaps. maps-core 4.0.0 does not
build with library evolution until openmobilemaps/maps-core#931 lands, so the
check needs the local maps-core with that change.

ios-vectorstyle and ios-vectortile require the published core from 1.3.2, like
the other modules.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS: RasterLayer.swift / VectorLayer.swift fail to build with library evolution (missing import Combine)

2 participants