Platform: iOS #590

Open
opened 2025-12-17 03:07:31 +00:00 by SakulFlee · 0 comments
SakulFlee commented 2025-12-17 03:07:31 +00:00 (Migrated from github.com)

Before working on iOS, we probably should figure out #573 first.
Android has about the same problems and requirements as iOS has.

1. Proper build tools

Unfortunately, tools like cargo-xbuild are outdated / not supported anymore (NOTE: there might be alternative tools specifically for iOS like cargo-apk!), and there are no proper replacements. Thus, we needed to find a way of compiling to iOS without such tools. While this works, this isn't conclusive at all and it is a rather complicated process (... at least first time setup is a mess).
We don't necessarily need our own tool, but some easy to run command chain like Makefile or Just.

This also should take care of installing dependencies as-needed and possibly making the xCode project.

2. CI / CD

Similar to 1., we don't have any proper CI / CD setup for iOS.
We'd need a way of easily replicating given configurations of iOS versions X source code revisions.
Ideally, we'd build full IPA files and upload them as Artifacts.

3. Asset management

Assets are done much differently on mobile platforms like iOS.
Most, if not all, of the assets are included into the IPA file and have to be read somehow.
The iOS SDK commonly provides functions for easily extracting assets from the currently executed IPA file, but how do we do that in Rust?

If we don't find a crate that gives us such functionality, we'll have to bind the native iOS functions.

This also applies for writing files like save games!
There needs to be a solution for saving files locally.

Before working on iOS, we probably should figure out #573 first. Android has about the same problems and requirements as iOS has. ### 1. Proper build tools Unfortunately, tools like cargo-xbuild are outdated / not supported anymore (NOTE: there might be alternative tools specifically for iOS like cargo-apk!), and there are no proper replacements. Thus, we needed to find a way of compiling to iOS **without** such tools. While this works, this isn't conclusive at all and it is a rather complicated process (... at least first time setup is a mess). We don't necessarily need our own tool, but some easy to run command chain like Makefile or Just. This also should take care of installing dependencies as-needed and possibly making the xCode project. ### 2. CI / CD Similar to 1., we don't have any proper CI / CD setup for iOS. We'd need a way of easily replicating given configurations of iOS versions X source code revisions. Ideally, we'd build full IPA files and upload them as Artifacts. ### 3. Asset management Assets are done much differently on mobile platforms like iOS. Most, if not all, of the assets are included into the IPA file and have to be read _somehow_. The iOS SDK commonly provides functions for easily extracting assets from the currently executed IPA file, but how do we do that in Rust? If we don't find a crate that gives us such functionality, we'll have to bind the native iOS functions. This also applies for writing files like save games! There needs to be a solution for saving files locally.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SakulFlee/Orbital#590
No description provided.