From 7dbea446428eee58866a7daf8829af755c7f0bff Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 00:18:22 +0900 Subject: [PATCH 01/11] =?UTF-8?q?Refactor=20buildapp.yml=20for=20uYouEnhan?= =?UTF-8?q?ced=EF=BC=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated build workflow for uYouEnhanced with various fixes and improvements. --- .github/workflows/buildapp.yml | 38 +++++++++++----------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 769d864..5ff9079 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -1,6 +1,3 @@ -# Original idea by @ISnackable. Thanks to him for handling the hardest parts! -# https://github.com/ISnackable/YTCubePlus/blob/main/.github/workflows/Build.yml - name: Build and Release uYouEnhanced on: @@ -46,7 +43,7 @@ on: default: true required: false type: boolean - + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -57,6 +54,8 @@ jobs: runs-on: macos-14 permissions: contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # ← 未来対応 steps: - name: Checkout Main @@ -82,7 +81,7 @@ jobs: - name: SDK Caching id: SDK - uses: actions/cache@v4.3.0 + uses: actions/cache@v4 # ← 修正済み env: cache-name: iOS-${{ inputs.sdk_version }}-SDK with: @@ -110,8 +109,7 @@ jobs: submodules: recursive - name: Install Theos Jailed - run: | - ./theos-jailed/install + run: ./theos-jailed/install env: THEOS: ${{ github.workspace }}/theos @@ -129,10 +127,7 @@ jobs: mv YouTube.ipa YouTube.zip unzip -q YouTube.zip youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) - echo "==> YouTube v$youtube_version downloaded!" - sed -i '' "17s#.*#YOUTUBE_VERSION = ${youtube_version}#g" Makefile echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT - env: THEOS: ${{ github.workspace }}/theos YOUTUBE_URL: ${{ env.URL_YT }} @@ -141,14 +136,11 @@ jobs: id: build_package run: | cd ${{ github.workspace }}/main - sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile # Modify the bundle ID - sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile # Modify the app name - sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile # Modify the SDK version + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT - echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m" - echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m" - env: THEOS: ${{ github.workspace }}/theos UYOU_VERSION: ${{ inputs.uyou_version }} @@ -158,24 +150,18 @@ jobs: - name: Upload Artifact if: ${{ inputs.upload_artifact }} uses: actions/upload-artifact@v5 - env: - UYOU_VERSION: ${{ inputs.uyou_version }} - YOUTUBE_VERSION: ${{ steps.prepare_youtube.outputs.youtube_version }} with: - name: uYouEnhanced_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }} + name: uYouEnhanced path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} if-no-files-found: error - name: Create Release if: ${{ inputs.create_release }} - id: create_release - uses: softprops/action-gh-release@v2.5.0 + uses: softprops/action-gh-release@v2 # ← 修正済み env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UYOU_VERSION: ${{ inputs.uyou_version }} - YOUTUBE_VERSION: ${{ steps.prepare_youtube.outputs.youtube_version }} with: - tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) - name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release files: main/packages/*.ipa draft: true From a8dbcaaccaf42df4711b56f54f057a2414308571 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 00:35:31 +0900 Subject: [PATCH 02/11] Fix comments in buildapp.yml for clarity --- .github/workflows/buildapp.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 5ff9079..5c3ece7 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -55,7 +55,7 @@ jobs: permissions: contents: write env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # ← 未来対応 + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true steps: - name: Checkout Main @@ -81,7 +81,7 @@ jobs: - name: SDK Caching id: SDK - uses: actions/cache@v4 # ← 修正済み + uses: actions/cache@v4 env: cache-name: iOS-${{ inputs.sdk_version }}-SDK with: @@ -157,7 +157,7 @@ jobs: - name: Create Release if: ${{ inputs.create_release }} - uses: softprops/action-gh-release@v2 # ← 修正済み + uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 167ab2eb6a545643984d2441f29eb9c83f8983d5 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:14:27 +0900 Subject: [PATCH 03/11] Update YouTube download URL in build workflow --- .github/workflows/buildapp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 5c3ece7..6a1b51b 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -122,7 +122,7 @@ jobs: - name: Prepare YouTube iPA id: prepare_youtube run: | - wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa + wget "$URL_YT" --quiet --no-verbose -O main/YouTube.ipa cd ${{ github.workspace }}/main mv YouTube.ipa YouTube.zip unzip -q YouTube.zip From 7b06a905bf93f8c93b7c1cbb6e30cdca2d630d70 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:15:11 +0900 Subject: [PATCH 04/11] Rename buildapp.yml to buildapptest.yml --- .github/workflows/{buildapp.yml => buildapptest.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{buildapp.yml => buildapptest.yml} (100%) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapptest.yml similarity index 100% rename from .github/workflows/buildapp.yml rename to .github/workflows/buildapptest.yml From ca10ee1f7526f489499e53b9f5c4e7fac9839056 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:39:53 +0900 Subject: [PATCH 05/11] Update build workflow for uYouEnhanced with inputs --- .github/workflows/buildapptest.yml | 175 +++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) diff --git a/.github/workflows/buildapptest.yml b/.github/workflows/buildapptest.yml index 6a1b51b..19cc721 100644 --- a/.github/workflows/buildapptest.yml +++ b/.github/workflows/buildapptest.yml @@ -119,6 +119,130 @@ jobs: echo ::add-mask::$URL_YT echo URL_YT=$URL_YT >> $GITHUB_ENV + name: Build and Release uYouEnhanced + +on: + workflow_dispatch: + inputs: + sdk_version: + description: "iOS SDK Version" + default: "17.5" + required: true + type: string + uyou_version: + description: "uYou Version" + default: "3.0.4" + required: true + type: string + decrypted_youtube_url: + description: "Direct URL of the decrypted YouTube IPA" + default: "" + required: true + type: string + bundle_id: + description: "Modify the bundle ID" + default: "com.google.ios.youtube" + required: true + type: string + app_name: + description: "Modify the app name" + default: "YouTube" + required: true + type: string + commit_id: + description: "(Optional) Commit ID to build at" + default: "" + required: false + type: string + upload_artifact: + description: "Upload IPA as artifact" + default: false + required: false + type: boolean + create_release: + description: "Create a draft release" + default: true + required: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouEnhanced + runs-on: macos-14 + permissions: + contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + + steps: + - name: Checkout Main + uses: actions/checkout@v5 + with: + path: main + ref: ${{ github.event.inputs.commit_id || github.ref }} + submodules: recursive + + - name: Install Dependencies + run: brew install ldid dpkg make + + - name: Set PATH environment variable + run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + + - name: Setup Theos + uses: actions/checkout@v5 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: SDK Caching + id: SDK + uses: actions/cache@v4 + env: + cache-name: iOS-${{ inputs.sdk_version }}-SDK + with: + path: theos/sdks/ + key: ${{ env.cache-name }} + restore-keys: ${{ env.cache-name }} + + - name: Download iOS SDK + if: steps.SDK.outputs.cache-hit != 'true' + run: | + git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v5 + with: + repository: qnblackcat/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: ./theos-jailed/install + env: + THEOS: ${{ github.workspace }}/theos + + - name: Hash YT ipa url + run: | + URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)" + echo ::add-mask::$URL_YT + echo URL_YT=$URL_YT >> $GITHUB_ENV + + - name: Debug URL + run: echo "URL is: $URL_YT" + - name: Prepare YouTube iPA id: prepare_youtube run: | @@ -165,3 +289,54 @@ jobs: name: uYouEnhanced Release files: main/packages/*.ipa draft: true + name: Debug URL +      run: echo "URL is: $URL_YT" + + - name: Prepare YouTube iPA + id: prepare_youtube + run: | + + wget "$URL_YT" --quiet --no-verbose -O main/YouTube.ipa + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip + youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) + echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + YOUTUBE_URL: ${{ env.URL_YT }} + + - name: Fix compiling & Build Package + id: build_package + run: | + cd ${{ github.workspace }}/main + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile + make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 + echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + UYOU_VERSION: ${{ inputs.uyou_version }} + BUNDLE_ID: ${{ inputs.bundle_id }} + APP_NAME: ${{ inputs.app_name }} + + - name: Upload Artifact + if: ${{ inputs.upload_artifact }} + uses: actions/upload-artifact@v5 + with: + name: uYouEnhanced + path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + if-no-files-found: error + + - name: Create Release + if: ${{ inputs.create_release }} + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release + files: main/packages/*.ipa + draft: true + From e788f97fffba7fbd0c601f7db16ceba839a297c3 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Tue, 24 Mar 2026 18:59:47 +0900 Subject: [PATCH 06/11] Add GitHub Actions workflow for uYouEnhanced 3 build node js version 24 update --- .github/workflows/main.yml | 170 +++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..6074608 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,170 @@ +name: Build and Release uYouEnhanced + +on: + workflow_dispatch: + inputs: + sdk_version: + description: "iOS SDK Version" + default: "17.5" + required: true + type: string + uyou_version: + description: "uYou Version" + default: "3.0.4" + required: true + type: string + decrypted_youtube_url: + description: "Direct URL of the decrypted YouTube IPA" + default: "" + required: true + type: string + bundle_id: + description: "Modify the bundle ID" + default: "com.google.ios.youtube" + required: true + type: string + app_name: + description: "Modify the app name" + default: "YouTube" + required: true + type: string + commit_id: + description: "(Optional) Commit ID to build at" + default: "" + required: false + type: string + upload_artifact: + description: "Upload IPA as artifact" + default: false + required: false + type: boolean + create_release: + description: "Create a draft release" + default: true + required: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouEnhanced + runs-on: macos-14 + permissions: + contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # ← 未来対応 + + steps: + - name: Checkout Main + uses: actions/checkout@v5 + with: + path: main + ref: ${{ github.event.inputs.commit_id || github.ref }} + submodules: recursive + + - name: Install Dependencies + run: brew install ldid dpkg make + + - name: Set PATH environment variable + run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Setup Theos + uses: actions/checkout@v5 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: SDK Caching + id: SDK + uses: actions/cache@v4 # ← 修正済み + env: + cache-name: iOS-${{ inputs.sdk_version }}-SDK + with: + path: theos/sdks/ + key: ${{ env.cache-name }} + restore-keys: ${{ env.cache-name }} + + - name: Download iOS SDK + if: steps.SDK.outputs.cache-hit != 'true' + run: | + git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v5 + with: + repository: qnblackcat/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: ./theos-jailed/install + env: + THEOS: ${{ github.workspace }}/theos + + - name: Hash YT ipa url + run: | + URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)" + echo ::add-mask::$URL_YT + echo URL_YT=$URL_YT >> $GITHUB_ENV + - name: Prepare YouTube iPA + id: prepare_youtube + run: | + wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip + youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) + echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + YOUTUBE_URL: ${{ env.URL_YT }} + + - name: Fix compiling & Build Package + id: build_package + run: | + cd ${{ github.workspace }}/main + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile + make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 + echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + UYOU_VERSION: ${{ inputs.uyou_version }} + BUNDLE_ID: ${{ inputs.bundle_id }} + APP_NAME: ${{ inputs.app_name }} + + - name: Upload Artifact + if: ${{ inputs.upload_artifact }} + uses: actions/upload-artifact@v5 + with: + name: uYouEnhanced + path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + if-no-files-found: error + + - name: Create Release + if: ${{ inputs.create_release }} + uses: softprops/action-gh-release@v2 # ← 修正済み + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release + files: main/packages/*.ipa + draft: true From 8af51e17a972f1f22d251b2cce327b7acaf45381 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Tue, 24 Mar 2026 19:01:10 +0900 Subject: [PATCH 07/11] Add new workflow for Build and Release uYouEnhanced --- .github/workflows/mainnew2.yml | 170 +++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 .github/workflows/mainnew2.yml diff --git a/.github/workflows/mainnew2.yml b/.github/workflows/mainnew2.yml new file mode 100644 index 0000000..6074608 --- /dev/null +++ b/.github/workflows/mainnew2.yml @@ -0,0 +1,170 @@ +name: Build and Release uYouEnhanced + +on: + workflow_dispatch: + inputs: + sdk_version: + description: "iOS SDK Version" + default: "17.5" + required: true + type: string + uyou_version: + description: "uYou Version" + default: "3.0.4" + required: true + type: string + decrypted_youtube_url: + description: "Direct URL of the decrypted YouTube IPA" + default: "" + required: true + type: string + bundle_id: + description: "Modify the bundle ID" + default: "com.google.ios.youtube" + required: true + type: string + app_name: + description: "Modify the app name" + default: "YouTube" + required: true + type: string + commit_id: + description: "(Optional) Commit ID to build at" + default: "" + required: false + type: string + upload_artifact: + description: "Upload IPA as artifact" + default: false + required: false + type: boolean + create_release: + description: "Create a draft release" + default: true + required: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouEnhanced + runs-on: macos-14 + permissions: + contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # ← 未来対応 + + steps: + - name: Checkout Main + uses: actions/checkout@v5 + with: + path: main + ref: ${{ github.event.inputs.commit_id || github.ref }} + submodules: recursive + + - name: Install Dependencies + run: brew install ldid dpkg make + + - name: Set PATH environment variable + run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Setup Theos + uses: actions/checkout@v5 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: SDK Caching + id: SDK + uses: actions/cache@v4 # ← 修正済み + env: + cache-name: iOS-${{ inputs.sdk_version }}-SDK + with: + path: theos/sdks/ + key: ${{ env.cache-name }} + restore-keys: ${{ env.cache-name }} + + - name: Download iOS SDK + if: steps.SDK.outputs.cache-hit != 'true' + run: | + git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v5 + with: + repository: qnblackcat/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: ./theos-jailed/install + env: + THEOS: ${{ github.workspace }}/theos + + - name: Hash YT ipa url + run: | + URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)" + echo ::add-mask::$URL_YT + echo URL_YT=$URL_YT >> $GITHUB_ENV + - name: Prepare YouTube iPA + id: prepare_youtube + run: | + wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip + youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) + echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + YOUTUBE_URL: ${{ env.URL_YT }} + + - name: Fix compiling & Build Package + id: build_package + run: | + cd ${{ github.workspace }}/main + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile + make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 + echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + UYOU_VERSION: ${{ inputs.uyou_version }} + BUNDLE_ID: ${{ inputs.bundle_id }} + APP_NAME: ${{ inputs.app_name }} + + - name: Upload Artifact + if: ${{ inputs.upload_artifact }} + uses: actions/upload-artifact@v5 + with: + name: uYouEnhanced + path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + if-no-files-found: error + + - name: Create Release + if: ${{ inputs.create_release }} + uses: softprops/action-gh-release@v2 # ← 修正済み + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release + files: main/packages/*.ipa + draft: true From 28ad07934e1b266f951a597107c158c23df277c4 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Tue, 24 Mar 2026 19:01:58 +0900 Subject: [PATCH 08/11] Add GitHub Actions workflow for uYouEnhanced build --- .github/workflows/main3.yml | 170 ++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 .github/workflows/main3.yml diff --git a/.github/workflows/main3.yml b/.github/workflows/main3.yml new file mode 100644 index 0000000..6074608 --- /dev/null +++ b/.github/workflows/main3.yml @@ -0,0 +1,170 @@ +name: Build and Release uYouEnhanced + +on: + workflow_dispatch: + inputs: + sdk_version: + description: "iOS SDK Version" + default: "17.5" + required: true + type: string + uyou_version: + description: "uYou Version" + default: "3.0.4" + required: true + type: string + decrypted_youtube_url: + description: "Direct URL of the decrypted YouTube IPA" + default: "" + required: true + type: string + bundle_id: + description: "Modify the bundle ID" + default: "com.google.ios.youtube" + required: true + type: string + app_name: + description: "Modify the app name" + default: "YouTube" + required: true + type: string + commit_id: + description: "(Optional) Commit ID to build at" + default: "" + required: false + type: string + upload_artifact: + description: "Upload IPA as artifact" + default: false + required: false + type: boolean + create_release: + description: "Create a draft release" + default: true + required: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouEnhanced + runs-on: macos-14 + permissions: + contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # ← 未来対応 + + steps: + - name: Checkout Main + uses: actions/checkout@v5 + with: + path: main + ref: ${{ github.event.inputs.commit_id || github.ref }} + submodules: recursive + + - name: Install Dependencies + run: brew install ldid dpkg make + + - name: Set PATH environment variable + run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Setup Theos + uses: actions/checkout@v5 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: SDK Caching + id: SDK + uses: actions/cache@v4 # ← 修正済み + env: + cache-name: iOS-${{ inputs.sdk_version }}-SDK + with: + path: theos/sdks/ + key: ${{ env.cache-name }} + restore-keys: ${{ env.cache-name }} + + - name: Download iOS SDK + if: steps.SDK.outputs.cache-hit != 'true' + run: | + git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v5 + with: + repository: qnblackcat/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: ./theos-jailed/install + env: + THEOS: ${{ github.workspace }}/theos + + - name: Hash YT ipa url + run: | + URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)" + echo ::add-mask::$URL_YT + echo URL_YT=$URL_YT >> $GITHUB_ENV + - name: Prepare YouTube iPA + id: prepare_youtube + run: | + wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip + youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) + echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + YOUTUBE_URL: ${{ env.URL_YT }} + + - name: Fix compiling & Build Package + id: build_package + run: | + cd ${{ github.workspace }}/main + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile + make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 + echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + UYOU_VERSION: ${{ inputs.uyou_version }} + BUNDLE_ID: ${{ inputs.bundle_id }} + APP_NAME: ${{ inputs.app_name }} + + - name: Upload Artifact + if: ${{ inputs.upload_artifact }} + uses: actions/upload-artifact@v5 + with: + name: uYouEnhanced + path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + if-no-files-found: error + + - name: Create Release + if: ${{ inputs.create_release }} + uses: softprops/action-gh-release@v2 # ← 修正済み + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release + files: main/packages/*.ipa + draft: true From b873e304ed5877c2318d412d2915a3c27e1569e8 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:07:13 +0900 Subject: [PATCH 09/11] Upgrade action-gh-release from v2 to v4 --- .github/workflows/main3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main3.yml b/.github/workflows/main3.yml index 6074608..0476c56 100644 --- a/.github/workflows/main3.yml +++ b/.github/workflows/main3.yml @@ -160,7 +160,7 @@ jobs: - name: Create Release if: ${{ inputs.create_release }} - uses: softprops/action-gh-release@v2 # ← 修正済み + uses: softprops/action-gh-release@v4 # ← 修正済み env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 693bf60fb71b66e4d2b2696bb0ba2002b43a3595 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:09:19 +0900 Subject: [PATCH 10/11] Downgrade action-gh-release from v4 to v3 --- .github/workflows/main3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main3.yml b/.github/workflows/main3.yml index 0476c56..ab81c93 100644 --- a/.github/workflows/main3.yml +++ b/.github/workflows/main3.yml @@ -160,7 +160,7 @@ jobs: - name: Create Release if: ${{ inputs.create_release }} - uses: softprops/action-gh-release@v4 # ← 修正済み + uses: softprops/action-gh-release@v3 # ← 修正済み env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 6f1803b776865c8cd016e07410975bb52a3e721a Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:11:00 +0900 Subject: [PATCH 11/11] Downgrade action-gh-release from v3 to v2 --- .github/workflows/main3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main3.yml b/.github/workflows/main3.yml index ab81c93..72dac4a 100644 --- a/.github/workflows/main3.yml +++ b/.github/workflows/main3.yml @@ -160,7 +160,7 @@ jobs: - name: Create Release if: ${{ inputs.create_release }} - uses: softprops/action-gh-release@v3 # ← 修正済み + uses: softprops/action-gh-release@v2 # ← 修正済み env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: