diff --git a/.github/workflows/upload-android.yml b/.github/workflows/upload-android.yml index b01e976..058cb57 100644 --- a/.github/workflows/upload-android.yml +++ b/.github/workflows/upload-android.yml @@ -10,15 +10,17 @@ on: - ".github/workflows/upload-android.yml" env: - RELEASE_KEY_STORE_BASE64: ${{ secrets.ANDROID_SIGNING_KEY_BASE64 }} - SERVICE_ACCOUNT_JSON: ${{ secrets.SERVICE_ACCOUNT_JSON }} - DEBUG_KEY_STORE_BASE64: ${{ secrets.DEBUG_SIGNING_KEY_BASE64 }} - EXPORT_PRESET_CFG: ${{ secrets.GODOT_EXPORTS_PRESET_CFG }} WORKING_DIRECTORY: game + SERVICE_ACCOUNT_JSON: ${{ secrets.ANDROID_SERVICE_ACCOUNT_JSON }} + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }} + ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }} + ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} + ANDROID_KEYSTORE_DEBUG_BASE64: ${{ secrets.ANDROID_KEYSTORE_DEBUG_BASE64 }} jobs: deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 @@ -56,25 +58,27 @@ jobs: - name: Create service-account.json run: echo $SERVICE_ACCOUNT_JSON > service-account.json - - name: Create release keystore - run: echo $RELEASE_KEY_STORE_BASE64 | base64 --decode > keystore.keystore - - - name: Create debug keystore - run: echo $DEBUG_KEY_STORE_BASE64 | base64 --decode > debug.keystore + - name: Create keystores + run: | + echo $ANDROID_KEYSTORE_BASE64 | base64 --decode > keystore.keystore + echo $ANDROID_KEYSTORE_DEBUG_BASE64 | base64 --decode > debug.keystore - - name: Create and config export_presets.cfg + - name: Create export_presets.cfg and inject values run: | - echo $EXPORT_PRESET_CFG > $WORKING_DIRECTORY/export_presets.cfg - sed -i "s|KEYSTORE_PATH|$GITHUB_WORKSPACE/keystore.keystore|g" $WORKING_DIRECTORY/export_presets.cfg + cp game/export_presets.android.example game/export_presets.cfg sed -i "s|VERSION_CODE|$VERSION_CODE|g" $WORKING_DIRECTORY/export_presets.cfg sed -i "s|VERSION_NAME|$VERSION_NAME|g" $WORKING_DIRECTORY/export_presets.cfg + sed -i "s|KEYSTORE_RELEASE_PATH|$GITHUB_WORKSPACE/keystore.keystore|g" $WORKING_DIRECTORY/export_presets.cfg + sed -i "s|KEYSTORE_DEBUG_PATH|$GITHUB_WORKSPACE/debug.keystore|g" $WORKING_DIRECTORY/export_presets.cfg + sed -i "s|ANDROID_KEYSTORE_ALIAS|$ANDROID_KEYSTORE_ALIAS|g" $WORKING_DIRECTORY/export_presets.cfg + sed -i "s|ANDROID_KEYSTORE_PASSWORD|$ANDROID_KEYSTORE_PASSWORD|g" $WORKING_DIRECTORY/export_presets.cfg - name: Delete iOS icons run: rm -rf $WORKING_DIRECTORY/AppIcons # GODOT EXPORT - name: Godot Android export - uses: dulvui/godot-android-export@v2.0.0 + uses: dulvui/godot-android-export@v2.0.1 with: working-directory: $WORKING_DIRECTORY @@ -89,13 +93,13 @@ jobs: track: 'internal' status: completed - # BUNDLE FOR GITHUB RELEASES + # GITHUB RELEASES - name: Bundle aab to apk run: | wget -q https://github.com/google/bundletool/releases/download/1.14.0/bundletool-all-1.14.0.jar java -jar bundletool-all-1.14.0.jar build-apks --bundle=PocketBroomball.aab --output=PocketBroomball.apks \ - --ks=keystore.keystore --ks-pass=pass:"${{ secrets.ANDROID_STORE_PASSWORD }}" --ks-key-alias=${{ secrets.ANDROID_KEYSTORE_ALIAS }} \ - --key-pass=pass:"${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" --mode=universal + --ks=keystore.keystore --ks-pass=pass:$ANDROID_STORE_PASSWORD --ks-key-alias=$ANDROID_KEYSTORE_ALIAS \ + --key-pass=pass:$ANDROID_KEYSTORE_PASSWORD --mode=universal unzip -p PocketBroomball.apks universal.apk > PocketBroomball.apk # UPLOAD TO GITHUB RELEASES diff --git a/.github/workflows/upload-ios.yml b/.github/workflows/upload-ios.yml index 005316b..d66113e 100644 --- a/.github/workflows/upload-ios.yml +++ b/.github/workflows/upload-ios.yml @@ -12,22 +12,23 @@ on: env: PROJECT_NAME: PocketBroomball WORKING_DIRECTORY: game - EXPORT_PRESET_CFG: ${{ secrets.GODOT_EXPORTS_PRESET_CFG }} + IOS_APPSTORE_TEAM_ID: ${{ secrets.IOS_APPSTORE_TEAM_ID }} + IOS_APPLE_ID_USERNAME: ${{ secrets.IOS_APPLE_ID_USERNAME }} + IOS_APPLE_ID_PASSWORD: ${{ secrets.IOS_APPLE_ID_PASSWORD }} + BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.IOS_P12_PASSWORD }} + BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE_BASE64 }} + KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }} jobs: deploy: - runs-on: macos-13 + runs-on: macos-latest steps: - name: Checkout source code uses: actions/checkout@v3 # https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development - name: Install the Apple certificate and provisioning profile - env: - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 @@ -56,12 +57,12 @@ jobs: - name: Create and config export_presets.cfg run: | - echo $EXPORT_PRESET_CFG > $WORKING_DIRECTORY/export_presets.cfg + cp game/export_presets.example game/export_presets.cfg sed -i -e "s|VERSION_CODE|$VERSION|g" $WORKING_DIRECTORY/export_presets.cfg sed -i -e "s|VERSION_NAME|$VERSION|g" $WORKING_DIRECTORY/export_presets.cfg sed -i -e "s|IOS_SHORT_VERSION|$VERSION|g" $WORKING_DIRECTORY/export_presets.cfg sed -i -e "s|IOS_VERSION|$VERSION|g" $WORKING_DIRECTORY/export_presets.cfg - cat $WORKING_DIRECTORY/export_presets.cfg + sed -i -e "s|IOS_APPSTORE_TEAM_ID|$IOS_APPSTORE_TEAM_ID|g" $WORKING_DIRECTORY/export_presets.cfg - name: Export and upload to Testflight uses: dulvui/godot-ios-upload@v1.1.0 @@ -69,5 +70,5 @@ jobs: working-directory: $WORKING_DIRECTORY project-name: $PROJECT_NAME provision-profile-path: ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision - apple-id-username: ${{ secrets.APPLE_ID_USERNAME }} - apple-id-password: ${{ secrets.APPLE_ID_PASSWORD }} \ No newline at end of file + apple-id-username: $IOS_APPLE_ID_USERNAME + apple-id-password: $IOS_APPLE_ID_PASSWORD \ No newline at end of file diff --git a/.github/workflows/upload-itchio.yml b/.github/workflows/upload-itchio.yml index c628a49..e173ef3 100644 --- a/.github/workflows/upload-itchio.yml +++ b/.github/workflows/upload-itchio.yml @@ -9,11 +9,12 @@ on: env: WORKING_DIRECTORY: game + ITCHIO_API_KEY: ${{ secrets.ITCHIO_API_KEY }} jobs: deploy: if: github.ref == 'refs/heads/prod' - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 @@ -28,12 +29,14 @@ jobs: uses: dulvui/godot-html-export@v0.0.2 with: working-directory: $WORKING_DIRECTORY + create-export-preset-cfg: false + - name: Upload to itch.io uses: dulvui/itchio-butler-upload@v0.0.1 with: working-directory: html5 - api-key: ${{ secrets.ITCHIO_API_KEY }} + api-key: $ITCHIO_API_KEY user: simondalvai game: pocket-broomball channel: html5 diff --git a/README.md b/README.md index 8033a53..27ba952 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ This game is open source, with no ads and no tracking. - [Pocket Broomball](#pocket-broomball) - [Table of contents](#table-of-contents) - [Setup](#setup) + - [export\_presets.cfg](#export_presetscfg) - [Join with your Broomball team](#join-with-your-broomball-team) - [Arcade Highscores](#arcade-highscores) - [Contributions](#contributions) @@ -37,6 +38,13 @@ repo. Then open the `game/project.godot` file with the editor. For further instructions, like exporting to mobile, please read the official [Godot Docs](https://docs.godotengine.org/en/stable/). +### export_presets.cfg + +To be able to export for Android or iOS, copy the `export_presets.exmaple` file and fill in your values. +```sh +cp game/export_presets.example game/export_presets.cfg +``` + ## Join with your Broomball team If you want to see your broomball team or even the whole league in the game, just contact me at info@simondalvai.org diff --git a/game/export_presets.android.example b/game/export_presets.android.example new file mode 100644 index 0000000..ba64791 --- /dev/null +++ b/game/export_presets.android.example @@ -0,0 +1,205 @@ +[preset.0] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="*.json" +exclude_filter="" +export_path="../PocketBroomball.aab" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +custom_build/use_custom_build=true +custom_build/export_format=1 +custom_build/min_sdk="" +custom_build/target_sdk="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +keystore/debug="KEYSTORE_DEBUG_PATH" +keystore/debug_user="androiddebugkey" +keystore/debug_password="android" +keystore/release="KEYSTORE_RELEASE_PATH" +keystore/release_user="ANDROID_KEYSTORE_ALIAS" +keystore/release_password="ANDROID_KEYSTORE_PASSWORD" +one_click_deploy/clear_previous_install=true +version/code=VERSION_CODE +version/name="VERSION_NAME" +package/unique_name="com.salvai.broomball" +package/name="Pocket Broomball" +package/signed=true +package/classify_as_game=true +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +xr_features/hand_tracking=0 +xr_features/hand_tracking_frequency=0 +xr_features/passthrough=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=true +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PoolStringArray( ) +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false diff --git a/game/export_presets.html.example b/game/export_presets.html.example new file mode 100644 index 0000000..8cd942a --- /dev/null +++ b/game/export_presets.html.example @@ -0,0 +1,35 @@ +[preset.0] + +name="HTML5" +platform="HTML5" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../html5/index.html" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +variant/export_type=0 +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=true +html/export_icon=true +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/focus_canvas_on_start=true +html/experimental_virtual_keyboard=false +progressive_web_app/enabled=false +progressive_web_app/offline_page="" +progressive_web_app/display=1 +progressive_web_app/orientation=2 +progressive_web_app/icon_144x144="" +progressive_web_app/icon_180x180="" +progressive_web_app/icon_512x512="" +progressive_web_app/background_color=Color( 0, 0, 0, 1 ) + diff --git a/game/export_presets.ios.example b/game/export_presets.ios.example new file mode 100644 index 0000000..1beb5df --- /dev/null +++ b/game/export_presets.ios.example @@ -0,0 +1,66 @@ +[preset.0] + +name="iOS" +platform="iOS" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../PocketBroomball.ipa" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +architectures/armv7=false +architectures/arm64=true +application/app_store_team_id="IOS_APPSTORE_TEAM_ID" +application/provisioning_profile_uuid_debug="" +application/code_sign_identity_debug="iPhone Developer" +application/export_method_debug=1 +application/provisioning_profile_uuid_release="" +application/code_sign_identity_release="" +application/export_method_release=0 +application/targeted_device_family=2 +application/name="Pocket Broomball" +application/info="World's first Broomball game" +application/identifier="com.salvai.broomball" +application/signature="" +application/short_version="IOS_SHORT_VERSION" +application/version="IOS_VERSION" +application/copyright="" +capabilities/access_wifi=false +capabilities/push_notifications=false +user_data/accessible_from_files_app=false +user_data/accessible_from_itunes_sharing=false +privacy/camera_usage_description="" +privacy/microphone_usage_description="" +privacy/photolibrary_usage_description="" +icons/iphone_120x120="res://AppIcons/Assets.xcassets/AppIcon.appiconset/120.png" +icons/iphone_180x180="res://AppIcons/Assets.xcassets/AppIcon.appiconset/180.png" +icons/ipad_76x76="res://AppIcons/Assets.xcassets/AppIcon.appiconset/76.png" +icons/ipad_152x152="res://AppIcons/Assets.xcassets/AppIcon.appiconset/152.png" +icons/ipad_167x167="res://AppIcons/Assets.xcassets/AppIcon.appiconset/167.png" +icons/app_store_1024x1024="res://AppIcons/Assets.xcassets/AppIcon.appiconset/1024.png" +icons/spotlight_40x40="res://AppIcons/Assets.xcassets/AppIcon.appiconset/40.png" +icons/spotlight_80x80="res://AppIcons/Assets.xcassets/AppIcon.appiconset/80.png" +storyboard/use_launch_screen_storyboard=false +storyboard/image_scale_mode=0 +storyboard/custom_image@2x="" +storyboard/custom_image@3x="" +storyboard/use_custom_bg_color=false +storyboard/custom_bg_color=Color( 0, 0, 0, 1 ) +landscape_launch_screens/iphone_2436x1125="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-2436@3x~iphoneX-landscape_2436x1125.png" +landscape_launch_screens/iphone_2208x1242="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-1242@3x~iphone6s-landscape_2208x1242.png" +landscape_launch_screens/ipad_1024x768="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-Landscape~ipad_1024x768.png" +landscape_launch_screens/ipad_2048x1536="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-Landscape@2x~ipad_2048x1536.png" +portrait_launch_screens/iphone_640x960="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage~iphone_640x960.png" +portrait_launch_screens/iphone_640x1136="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-568h@2x~iphone_640x1136.png" +portrait_launch_screens/iphone_750x1334="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-750@2x~iphone6-portrait_750x1334.png" +portrait_launch_screens/iphone_1125x2436="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-1125@3x~iphoneX-portrait_1125x2436.png" +portrait_launch_screens/ipad_768x1024="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-Portrait~ipad_768x1024.png" +portrait_launch_screens/ipad_1536x2048="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-Portrait@2x~ipad_1536x2048.png" +portrait_launch_screens/iphone_1242x2208="res://AppIcons/bundle/iOS/LaunchImage.launchimage/LaunchImage-1242@3x~iphone6s-portrait_1242x2208.png" diff --git a/metadata/en-US/changelogs/86.txt b/metadata/en-US/changelogs/86.txt new file mode 100644 index 0000000..f2d4713 --- /dev/null +++ b/metadata/en-US/changelogs/86.txt @@ -0,0 +1 @@ +- change url to simondalvai.org \ No newline at end of file diff --git a/version-android b/version-android index 70844df..b6bbf80 100644 --- a/version-android +++ b/version-android @@ -1 +1 @@ -5.0.2-85 +5.0.3-86 diff --git a/version-ios b/version-ios index a1ef0ca..50e2274 100644 --- a/version-ios +++ b/version-ios @@ -1 +1 @@ -5.0.2 +5.0.3