Skip to content

Conversation

frederik-uni
Copy link

@frederik-uni frederik-uni commented Aug 4, 2024

simple wrapper around, building the project with cargo-bundle & running it with xcrun commands. the toolchains are set by default to aarch64 & can be modified with the --x86 flag or --sim for the simulator. creating a ipa from a .app file is quite easy(rename app folder to Payload and zip it) is also automated

@frederik-uni
Copy link
Author

eframe 0.28.2 is required or ([patch.crates-io] & remove web-sys.version = ">= 0.3.4, < 0.3.70")

Copy link
Owner

@emilk emilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool - thank you!

@@ -0,0 +1,180 @@
#!/usr/bin/env python3
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should have a .py file extension. Maybe it should also be called build-ios? But the current name is fine too.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I decided not to use the .py extension so it can be put into the bin folder & used as command

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it only uses builtin libs

@emilk
Copy link
Owner

emilk commented Sep 26, 2024

@lucasmerlin you've done some iOS work, maybe you wanna take a quick look? 🙏

@lucasmerlin
Copy link
Collaborator

Look really cool! Is there any reason you decided not to use cargo-mobile?

@frederik-uni
Copy link
Author

I don't want to change the project to run on a iOS target. cargo-mobile compiles it as a static lib and imports it into a swift app. My goal was to have a script that would need to be installed once and can run any existing egui project without modifying it. The only thing that needs to be added is a id to the cargo.toml.

@lucasmerlin
Copy link
Collaborator

Ah, I see, that makes sense!

@frederik-uni
Copy link
Author

frederik-uni commented Oct 1, 2024

this should work for most Egui/eframe projects with a version > 28.1 with "wgpu" as rendering backend

@hacknus
Copy link

hacknus commented Apr 18, 2025

Hi, thanks a lot, this looks really nice! I think this line here needs to be changed:

def parse_cargo_toml():
    with open('Cargo.toml', 'rb') as f:
        cargo_toml = tomllib.load(f)
    # here we need to get the name (at least if it is set here, we should probably use ["package"]["name"] as a fallback somehow
    app_name = cargo_toml['package']['metadata']['bundle']['name']
    app_id = cargo_toml['package']['metadata']['bundle']['identifier']
    return app_name, app_id

Can this be merged after that? I see there are some conflicts, probably just the versions, right?

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.

5 participants