{"id":21888742,"url":"https://github.com/dulvui/godot4-ios-export","last_synced_at":"2025-03-22T02:24:12.659Z","repository":{"id":265001047,"uuid":"864843879","full_name":"dulvui/godot4-ios-export","owner":"dulvui","description":"Export Godot 4.x games to iOS with Github Actions ","archived":false,"fork":false,"pushed_at":"2025-03-13T12:51:49.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T07:53:02.612Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/dulvui.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},"funding":{"github":"dulvui","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"dulvui","issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"simondalvai.org/donate"}},"created_at":"2024-09-29T10:11:47.000Z","updated_at":"2025-03-13T12:51:52.000Z","dependencies_parsed_at":"2025-01-26T20:38:06.399Z","dependency_job_id":null,"html_url":"https://github.com/dulvui/godot4-ios-export","commit_stats":null,"previous_names":["dulvui/godot4-ios-export"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulvui%2Fgodot4-ios-export","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulvui%2Fgodot4-ios-export/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulvui%2Fgodot4-ios-export/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulvui%2Fgodot4-ios-export/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dulvui","download_url":"https://codeload.github.com/dulvui/godot4-ios-export/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244895593,"owners_count":20527910,"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":[],"created_at":"2024-11-28T11:17:09.518Z","updated_at":"2025-03-22T02:24:12.651Z","avatar_url":"https://github.com/dulvui.png","language":null,"funding_links":["https://github.com/sponsors/dulvui","https://liberapay.com/dulvui","simondalvai.org/donate"],"categories":[],"sub_categories":[],"readme":"# godot4-ios-export\nGithub Action to export a Godot Engine 4.x game to iOS.  \nIf you are facing problems with the action or this README feels incomplete, pull requests are welcome or open an issue.\n\n# Table of contents\n- [Requirements](#requirements)\n- [Parameters](#parameters)\n- [How to use](#how-to-use)\n- [Example](#example)\n- [License](#license)\n\n# Requirements\n - Godot Engine project with a iOS config in your `exports_presets.cfg` file\n\n# Parameters\n| key | required | default | description |\n| ----|----------|---------|-------------|\n| godot-version | true | . | Godot Engine version. Supported are 4.x versions. Check versions [here](https://github.com/godotengine/godot-builds/releases) |\n| godot-channel | false | stable | Godot Engine release channel (stable, beta, rc1, rc2, rc3...). Defaults to 'stable' Check release channels [here](https://github.com/godotengine/godot-builds/releases) |\n| working-directory | false | . | Path to .project file |\n\n\n# How to use\nThis is the minimal example on how to use the action.\nThis creates a XCode project in the destination directory defined in your `exports_presets.cfg` file.  \n```yml\n- name: Export iOS\n  uses: dulvui/godot4-ios-export@v1\n  with:\n    godot-version: 4.3\n```\n\n# Example\nThe exported project can then be built and uploaded to the Apple App Store's Testflight.  \n\n```yml\n# SPDX-FileCopyrightText: 2023 Simon Dalvai \u003cinfo@simondalvai.org\u003e\n\n# SPDX-License-Identifier: CC0-1.0\n\nname: iOS upload\n\non:\n  push:\n    # paths:\n    #   - \".github/workflows/upload-ios.yml\"\n    #   - \"exportOptions.plist\"\n    #   - \"export_presets.ios.example\"\n\nenv:\n  GODOT_VERSION: 4.3\n  PROJECT_NAME: FutsalManager\n  WORKING_DIRECTORY: game\n  BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_BUILD_CERTIFICATE_BASE64 }}\n  P12_PASSWORD: ${{ secrets.IOS_P12_PASSWORD }}\n  BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE_BASE64 }}\n  KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }}\n\njobs:\n  deploy:\n    if: github.ref == 'refs/heads/main'\n    runs-on: macos-latest\n    steps:\n      - name: Checkout source code\n        uses: actions/checkout@v3\n\n      # https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development\n      - name: Install the Apple certificate and provisioning profile\n        run: |\n          # create variables\n          CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12\n          PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision\n          KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db\n\n          # import certificate and provisioning profile from secrets\n          echo -n \"$BUILD_CERTIFICATE_BASE64\" | base64 --decode -o $CERTIFICATE_PATH\n          echo -n \"$BUILD_PROVISION_PROFILE_BASE64\" | base64 --decode -o $PP_PATH\n\n          # create temporary keychain\n          security create-keychain -p \"$KEYCHAIN_PASSWORD\" $KEYCHAIN_PATH\n          security set-keychain-settings -lut 21600 $KEYCHAIN_PATH\n          security unlock-keychain -p \"$KEYCHAIN_PASSWORD\" $KEYCHAIN_PATH\n\n          # import certificate to keychain\n          security import $CERTIFICATE_PATH -P \"$P12_PASSWORD\" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH\n          security list-keychain -d user -s $KEYCHAIN_PATH\n\n          # apply provisioning profile\n          mkdir -p ~/Library/MobileDevice/Provisioning\\ Profiles\n          cp $PP_PATH ~/Library/MobileDevice/Provisioning\\ Profiles\n\n      - name: Create export_presets.cfg\n        run: cp game/export_presets.ios.example game/export_presets.cfg\n\n      - name: Extract Provisioning profile UUID and create GODOT_IOS_PROVISIONING_PROFILE_UUID_RELEASE env variable\n        run: |\n          PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision\n          echo \"GODOT_IOS_PROVISIONING_PROFILE_UUID_RELEASE=$(grep -a -A 1 'UUID' $PP_PATH | grep string | \\\n                sed -e \"s|\u003cstring\u003e||\" -e \"s|\u003c/string\u003e||\" | tr -d '\\t')\" \u003e\u003e $GITHUB_ENV\n\n      - name: Export XCode project\n        uses: dulvui/godot4-ios-export@v1\n        env:\n          CODE_SIGN_IDENTITY: \"Apple Distribution\"\n        with:\n          working-directory: $WORKING_DIRECTORY\n          godot-version: $GODOT_VERSION\n\n      - name: Publish the App on TestFlight\n        if: success()\n        run: |\n          xcrun altool \\\n            --upload-app \\\n            -t ios \\\n            -f *.ipa \\\n            -u \"${{ secrets.IOS_APPLE_ID_USERNAME }}\" \\\n            -p \"${{ secrets.IOS_APPLE_ID_PASSWORD }}\" \\\n            --verbose\n```\n\n# License\nThis software is licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulvui%2Fgodot4-ios-export","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdulvui%2Fgodot4-ios-export","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulvui%2Fgodot4-ios-export/lists"}