![]() ## Objective Get rid of a redundant Cargo feature flag. ## Solution Use the built-in `target_abi = "sim"` instead of a custom Cargo feature flag, which is set for the iOS (and visionOS and tvOS) simulator. This has been stable since Rust 1.78. In the future, some of this may become redundant if Wgpu implements proper supper for the iOS Simulator: https://github.com/gfx-rs/wgpu/issues/7057 CC @mockersf who implemented [the original fix](https://github.com/bevyengine/bevy/pull/10178). ## Testing - Open mobile example in Xcode. - Launch the simulator. - See that no errors are emitted. - Remove the code cfg-guarded behind `target_abi = "sim"`. - See that an error now happens. (I haven't actually performed these steps on the latest `main`, because I'm hitting an unrelated error (EDIT: It was https://github.com/bevyengine/bevy/pull/17637). But tested it on 0.15.0). --- ## Migration Guide > If you're using a project that builds upon the mobile example, remove the `ios_simulator` feature from your `Cargo.toml` (Bevy now handles this internally). |
||
---|---|---|
.. | ||
Cargo.toml | ||
readme.md |
Basic Android Example Instruction
This folder instructs you how to build android apps with cargo-apk
, a deprecated Android apk building tool.
Setup
rustup target add aarch64-linux-android armv7-linux-androideabi
cargo install cargo-apk
Please refer example README for NDK/SDK related instructions.
Build & Run
When using cargo-apk
, it must use NativeActivity
, so you need to edit it in Cargo.toml
manually like this:
bevy = { version = "0.14", default-features = false, features = ["android-native-activity", ...] }
Then the following fields must be added to Cargo.toml
:
[package.metadata.android]
build_targets = ["aarch64-linux-android", "armv7-linux-androideabi"]
[package.metadata.android.sdk]
target_sdk_version = 33
Please refer cargo-apk
README for other Android Manifest fields.
For this example, you can replace the Cargo.toml
with the one within this folder.
After setup, you can run it on a device for Android development:
cargo apk run -p bevy_mobile_example
Please refer example README for debugging instructions.
Old phones
Bevy by default targets Android API level 33 in its examples which is the Play Store's minimum API to upload or update apps. Users of older phones may want to use an older API when testing.
To use a different API, the following fields must be updated in Cargo.toml
:
[package.metadata.android.sdk]
target_sdk_version = >>API<<
min_sdk_version = >>API or less<<