{"id":16608771,"url":"https://github.com/mak448a/build-ios","last_synced_at":"2025-04-19T17:10:16.875Z","repository":{"id":249826683,"uuid":"832412189","full_name":"mak448a/build-ios","owner":"mak448a","description":"Build an XCode Project to IPA file without a Mac! (e.g., Godot Engine project)","archived":false,"fork":false,"pushed_at":"2025-02-09T03:09:52.000Z","size":299,"stargazers_count":17,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T10:43:17.245Z","etag":null,"topics":["godot-engine","ios","ios-development","xcode","xcodebuild"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mak448a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-23T01:24:45.000Z","updated_at":"2025-03-11T01:24:35.000Z","dependencies_parsed_at":"2025-02-06T03:29:07.451Z","dependency_job_id":"c54cb81c-5db5-4f6f-9766-d04befef1af7","html_url":"https://github.com/mak448a/build-ios","commit_stats":null,"previous_names":["mak448a/build-ios"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mak448a%2Fbuild-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mak448a%2Fbuild-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mak448a%2Fbuild-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mak448a%2Fbuild-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mak448a","download_url":"https://codeload.github.com/mak448a/build-ios/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249746041,"owners_count":21319581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["godot-engine","ios","ios-development","xcode","xcodebuild"],"created_at":"2024-10-12T01:27:11.053Z","updated_at":"2025-04-19T17:10:16.870Z","avatar_url":"https://github.com/mak448a.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Build a Godot Project without Mac!\n\nTools to develop apps for iOS without a Mac with Godot Engine!\n\nEver wanted to stop hopping between your Mac and Windows/Linux PCs when developing an iOS Project? This is the project for you!\nSee [my blog post](https://mak448a.github.io/blog/compile-ios-godot-without-mac) for more info!\n\nFeatures:\n- Editor to update the .ipa file of your game without rebuilding!\n- Uploader that pushes your game to GitHub actions for building!\n\n\n\u003e [!WARNING]\n\u003e I try my best to write code that works, but I may have accidentally included bugs. Please report any that you find and be cautious!\n\n## Requirements\n- GitHub CLI (2.63.2 tested, other versions untested.)\n- git\n- Python (3.12+)\n\n## Installation and Configuration\n1. First, download [Python](Python.org/downloads), Git, and GitHub. Make sure to check the box that says \"Add to PATH\" when installing Python if you're on Windows. Run this command if you want to install Git and GitHub on Windows: `winget install Git.Git GitHub.cli`\n3. Go to the path where you downloaded this repository. \n   - For Windows, go to the folder and press on the address bar. Then, type in cmd and press enter.\n   - For Linux, type `cd` and then the path you want in your terminal.\n4. Install dependencies with the commands below. Choose the one for your operating system.\n\n**Windows**\n```shell\npython -m venv venv\nvenv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n**Linux**\n```shell\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n4. Visit https://www.dropbox.com/developers/apps to get your key.\n![Screenshot of \"create new app\"](tutorial/1.png)\nYou can name your app whatever you want, as long as it's unique.\n![Screenshot of app naming](tutorial/2.png)\n![Screenshot of generating access token](tutorial/3.png)\n![Screenshot of going to permissions tab](tutorial/4.png)\n![Screenshot of permissions](tutorial/5.png)\n![Screenshot of submit button](tutorial/6.png)\n5. Add `TOKEN=YOURKEYHERE` (replace the token with your token) in the file `.env`.\n\n6. Run the Python script!\n```shell\npython main.py\n```\n7. (Optional) If you want to skip writing in the questions every time you want to build, add the answeres to the `.env` file. Make sure to check `example.env` for how to do this!\n\n## Usage\nWhen you launch the CLI with `python main.py`, it'll prompt you to choose whether you want to build or edit an IPA. For the first time, choose build IPA.\n\n### Mode instructions\n**Build IPA:**\n- Follow the prompts.\n\n**Edit IPA:**\n- When exporting your Godot Project, choose \"Export PCK/ZIP\" and save it as `yourproject.pck`.\n\n### But what's the difference?\n- Build IPA is for the first time you run the CLI. It makes a fresh build of your project.\n- Edit IPA is for afterwards. You can export with the PCK only, and it'll replace some of the files in the IPA. If you didn't change any settings in `project.godot`, it should work perfectly! If you did though, rebuild the IPA.\n\n\n## Troubleshooting\nIf you get an `AuthError('expired_access_token', None))`, that means that you need to get a new OAuth token from Dropbox.\nIf you have any other problems, feel free to open an issue/discussion in this repository.\n\n## Privacy Policy\n- I don't collect any data from this project.\n- This project uses GitHub and Dropbox. See the privacy policies for these services for more information.\n\n\n## Notes and credits\n- Edit IPA function inspired by [this article by RandomMomentania](https://randommomentania.com/2022/01/godot-easy-ios-app-testing/)\n- Started work on this project ~11/2024.\n- Inspired by [u/_atreat](https://www.reddit.com/r/godot/comments/vlwrj0/comment/idxn5z8/) and [u/Host127001](https://www.reddit.com/r/godot/comments/s0pj02/comment/hs3rjl3/) who suggested building with GitHub Actions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmak448a%2Fbuild-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmak448a%2Fbuild-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmak448a%2Fbuild-ios/lists"}