Repository navigation
Conversation
`install = ["dep:idevice"]` is meant to be what pulls in idevice, but a few uses sat outside it, so `--no-default-features` without `install` failed to compile: - `use idevice::IdeviceError` and the `SideloadError::IdeviceError` variant in lib.rs - `pub mod device` in util/mod.rs (lockdown-based `IdeviceInfo`) - the `IdeviceInfo`, `IdeviceProvider` and `DevicesApi` imports in sideloader.rs All of them only serve `install_app`, so they now sit behind `#[cfg(feature = "install")]`, like `sideload::install` already does. `delete_app_after_install` is only read by `install_app` and gets `allow(dead_code)` when `install` is off. Turning `install` off also showed that serde's `derive` feature only reached isideload through idevice, so Cargo.toml now asks for it. A `wasm` build without `install` no longer warns about those unused imports and the unread field either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
install = ["dep:idevice"]reads as the feature that brings in idevice, but a few uses sit outside it, so a build withinstalloff fails:Two causes:
use idevice::IdeviceErrorandSideloadError::IdeviceError(lib.rs),pub mod device(util/mod.rs) and theIdeviceInfo,IdeviceProviderandDevicesApiimports in sideloader.rs are only used byinstall_app. They are now behind#[cfg(feature = "install")], likesideload::installalready is, anddelete_app_after_installgetsallow(dead_code)wheninstallis off.derivefeature only reached isideload through idevice, so Cargo.toml now asks for it.A
wasmbuild withoutinstallalso stops warning about those imports and the unread field.SideInstaller only calls
sign_appand installs through idevice-ffi, so having to turninstallon meant compiling a second idevice that nothing called.Checked on macOS:
--no-default-features --features tokio-mt,fs-storagebuilds, andcargo tree -i idevicefinds no idevice--features install,tokio-mt,fs-storage, the default features,cargo check --workspace --all-targetsandcargo build -p minimalbuild--features wasm,fs-storage --target wasm32-unknown-unknownbuilds, with and withoutinstallNot in this PR:
wasm = ["idevice/wasm", …]still turns idevice on by itself.idevice?/wasmwould leave it off unlessinstallis on too, if that's what you want.Made with Claude Code.
🤖 Generated with Claude Code