Skip to content

iOS build development #10205

@ihhub

Description

@ihhub

Preliminary checks

Describe the problem requiring a solution

After the initial implementation of iOS build we have a lot of tasks to be solve to bring the build to a user-ready state.

Describe the possible solution

  • add documentation on installation of dev environment and compilation steps for developers: specify earliest version of macOS as required OS, XCode as an IDE, steps to download and install SDL and SDL mixer (they have Xcode projects within their repository. Pay attention to SDL 2 and 3 versions, we use SDL 2), where to copy SDL libraries and how to compile, where to copy game's resources, how to choose device to run and how to make it run on a real device (it needs signing step and personal Apple account) with activation of the developer mode on an iPhone. Make a separate MD file for this documentation.

  • test audio and video playback

  • fix midi music playback being absent

  • fix app termination which right now is just a black screen that needs to be closed manually through app manager

  • make it possible to save new or changed maps in the Editor

  • fix a list of missing resolutions (iOS uses ppi, refer to the link below)

  • fix inability to save a configuration file

  • fix inability to keep save files

  • add an application icon (@ihhub to provide an original image)

  • figure out how to build without the need of game resources within the package and where to put game resources after

  • add GitHub Actions pipeline for iOS build (an example command to build xcodebuild -project fheroes2.xcodeproj -scheme fheroes2 -destination 'platform=iOS Simulator,name=iPhone 16' build)

  • add instructions for end users how to install the application (check how other open source projects do this)

  • add signing stage for the iOS build within GitHub Actions pipeline

  • add a script to automate most of installation steps (as it is done for Android)

  • the script should be located in script/ios directory

  • it should be created exclusively for macOS (bash script). Let's call it install_packages.sh

  • the script should download SDL2 and SDL2_Mixer zip archives from GitHub and unzip them into specified locations

  • the script then should renamed unpacked folders

  • the script then should update a XCode project configuration file to solve SDL2_Mixer compilation

  • mandate SDL2 and SDL2_Mixer folders to be within ios directory (add exclusions into .gitignore file)

Additional info

https://wiki.libsdl.org/SDL2/README-ios

No response

Metadata

Metadata

Assignees

Labels

documentationStuff related to documentationhigh priorityVery critical change needed immediatelyiOSiOS version of the engineimprovementNew feature, request or improvement

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions