Skip to content

Add SkipFuse as explicit dependency for native app modules#229

Open
bookii wants to merge 1 commit intoskiptools:mainfrom
bookii:fix/skip-fuse-explicit-module-dependency
Open

Add SkipFuse as explicit dependency for native app modules#229
bookii wants to merge 1 commit intoskiptools:mainfrom
bookii:fix/skip-fuse-explicit-module-dependency

Conversation

@bookii
Copy link
Copy Markdown

@bookii bookii commented Apr 13, 2026

Starting from Xcode 26, Swift Explicit Modules is enabled by default, requiring all imported modules to be declared as explicit dependencies.
(ref: https://developer.apple.com/documentation/xcode-release-notes/xcode-26-release-notes#Resolved-Issues)

The generated Package.swift for Skip Fuse mode now includes skip-fuse alongside skip-fuse-ui, fixing import SkipFuse failures.

Fixes skiptools/skip#662

Thank you for contributing to the Skip project! Please use this space to describe your change and add any labels (bug, enhancement, documentation, etc.) to help categorize your contribution.

Please review the contribution guide at https://skip.dev/docs/contributing/ for advice and guidance on making high-quality PRs.

Skip Pull Request Checklist:

  • REQUIRED: I have signed the Contributor Agreement
  • REQUIRED: I have tested my change locally with swift test
  • OPTIONAL: I have tested my change on an iOS simulator or device
  • OPTIONAL: I have tested my change on an Android emulator or device

  • AI was used to generate or assist with generating this PR. Please specify below how you used AI to help you, and what steps you have taken to manually verify the changes.

I used the issue I opened (skiptools/skip#662) to have Claude Code generate the fix, and verified it by running swift test.
However, it is difficult to perform a practical verification using skip create until this fix is merged into the main skip repository.

When using Skip Fuse mode, the generated Package.swift now includes
skip-fuse as an explicit dependency alongside skip-fuse-ui, fixing
`import SkipFuse` failures caused by Xcode 26.4 Explicitly Built Modules.

Fixes skiptools/skip#662

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented Apr 13, 2026

Thank you for your pull request and welcome to the Skip community. We require contributors to sign our contributor license agreement (CLA), and we don't seem to have the user(s) @bookii on file. In order for us to review and merge your code, for each noted user please add your GitHub username to Skip's .clabot file

@bookii
Copy link
Copy Markdown
Author

bookii commented Apr 13, 2026

Sorry, I mistakenly thought I had already signed the CLA.
Here is my signed PR:

@marcprux
Copy link
Copy Markdown
Member

Well that's annoying, and the first I've heard about this. Can you provide some information on the context in which you encountered this limitation? The skipapp-howdy Package.swift does not declare an explicit skip-fuse dependency, and ViewModel.swift is able to import SkipFuse.

Can you clarify under what circumstances this would break?

@marcprux
Copy link
Copy Markdown
Member

Note that we do declare an explicit dependency when a multi-module project like skipapp-ahoy's Package.swift has a separate module (SkipperModel) that depends on SkipFuse. I don't recall if that was implemented for exactly this issue, or if it was for some other reason…

@bookii
Copy link
Copy Markdown
Author

bookii commented Apr 13, 2026

I just performed a clean install on this machine three days ago. Also, here is the output from skip doctor:

% skip doctor
Skip Doctor
[✓] Skip version 1.8.6 (= 1.8.6)
[✓] macOS version 26.4.1 (> 13.5.0)
[✓] macOS architecture: ARM
[✓] Swift version 6.3 (> 5.9.0)
[✓] Swiftly version 1.1.1 (> 1.0.0)
[✓] Xcode version 26.4 (> 15.0.0)
[✓] Xcode tools SDKs: 5
[✓] Homebrew version 5.1.5 (> 4.1.0)
[✓] Gradle version 9.4.1 (> 8.6.0)
[✓] Java version 25.0.2 (> 17.0.0)
[✓] Android Debug Bridge version 1.0.41 (> 1.0.40)
[✓] Android SDK version 37.0.0 (> 29.0.0)
[✓] Check Skip Updates: 1.8.6
[✓] Skip 1.8.6 doctor succeeded in 1.38s

I should also mention that running skip create again results in the same error. To be honest, I'm still not entirely sure where the root cause lies, so please let me know if you need any additional information.

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.

Xcode 26.4 - skip create fails with no such module 'SkipFuse'

2 participants