arichornlover / YouTubeRebornPlus

LillieH1000’s YouTube Reborn but with even more features!
https://github.com/arichornlover/YouTube-Reborn-v5
MIT License
539 stars 502 forks source link

[Bug] Unable to run GitHub workflow after SDK update. (Missing Framework Directory) #108

Closed superunknowndude closed 8 months ago

superunknowndude commented 8 months ago

Is there an existing issue for this?

Have you read the FAQ?

Device info

Describe the bug

Dir not found during compile after SDK update

Steps to reproduce the issue

Run a workflow in github

image

Crash log (if the app crashes)

No response

Are you using the newest version of YouTubeRebornPlus? If not, why?

✅ Yes, I'm using the latest version of YouTubeRebornPlus right now

Does the issue happen with the official YouTube from AppStore?

❌ No, It doesn't

Additional context

Original idea by @ISnackable. Many thanks to him for handling the most hardest parts!

https://github.com/ISnackable/YTCubePlus/blob/main/.github/workflows/Build.yml

name: Build and Release YouTubeRebornPlus

on: workflow_dispatch: inputs: reborn_version: description: "The version of YouTube Reborn" default: "4.2.6" required: true type: string decrypted_youtube_url: description: "The direct URL to the decrypted YouTube ipa" default: "" required: true type: string youtube_version: description: "The version of YouTube" default: "" required: true type: string bundle_id: description: "Modify the bundle ID. Not recommended" default: "com.google.ios.youtube" required: true type: string app_name: description: "Modify the name of the app on the Home Screen. Not recommended" default: "YouTube" required: true type: string sdk_version: description: "iOS SDK version to be used during build" default: "16.2" required: true type: string 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 YouTubeRebornPlus runs-on: macos-latest permissions: contents: write

steps:
  - name: Checkout Main
    uses: actions/checkout@v4.1.1
    with:
      path: main
      submodules: recursive

  - name: Install Dependencies
    run: brew install ldid dpkg make

  - name: Setup Theos
    uses: actions/checkout@v4.1.1
    with:
      repository: theos/theos
      ref: 9941262c450c0abac524574cb96b9a4cdf5e50f4
      path: theos
      submodules: recursive

  - name: SDK Caching
    id: SDK
    uses: actions/cache@v4.0.0
    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/arichorn/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@v4.1.1
    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: Download Reborn & Prepare YouTube iPA
    run: |
      curl "https://raw.githubusercontent.com/Muirey03/RemoteLog/master/RemoteLog.h" --output "$THEOS/include/RemoteLog.h"
      curl -L "https://www.dropbox.com/scl/fi/i2nojctxmhtxuk130u8x7/YouTube.Reborn.v4.2.6.deb?rlkey=6fag37onv9c9061cg1bwnb1je&dl=1" --output "main/Tweaks/Reborn/YouTube.Reborn.v4.2.6.deb"
      echo -e "==> \033[1mReborn v${{ inputs.reborn_version }} downloaded! \033[0m"
      wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
      echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} downloaded! \033[0m"
      cd main/Tweaks/Reborn && tar -xf "YouTube.Reborn.v4.2.6.deb" && tar -xf data.tar.* && cd ../../..
      echo -e "==> \033[1mReborn v${{ inputs.reborn_version }} unpacked! \033[0m"
      unzip -q main/YouTube.ipa -d main/tmp
      rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
      rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
      cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
      echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} unpacked! \033[0m"
    env:
      THEOS: ${{ github.workspace }}/theos
      REBORN_VERSION: ${{ inputs.reborn_version }}
      YOUTUBE_VERSION: ${{ inputs.youtube_version }}
      YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}

  - name: Fix Compiling & Build Package
    id: build_package
    run: |
      (echo PATH=\"$(brew --prefix make)/libexec/gnubin:\$PATH\" >> ~/.zprofile)
      cd ${{ github.workspace }}/main
      sed -i '' "11s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
      sed -i '' "10s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
      make package FINALPACKAGE=1
      (mv "packages/$(ls -t packages | head -n1)" "packages/YouTubeRebornPlus_${{ env.YOUTUBE_VERSION }}_${{ env.REBORN_VERSION }}.ipa")
      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
      REBORN_VERSION: ${{ inputs.reborn_version }}
      YOUTUBE_VERSION: ${{ inputs.youtube_version }}
      BUNDLE_ID: ${{ inputs.bundle_id }}
      APP_NAME: ${{ inputs.app_name }}

  - name: Upload Artifact
    uses: actions/upload-artifact@v4.3.1
    env:
      REBORN_VERSION: ${{ inputs.reborn_version }}
      YOUTUBE_VERSION: ${{ inputs.youtube_version }}
    with:
      name: YouTubeRebornPlus_${{ env.YOUTUBE_VERSION }}_${{ env.REBORN_VERSION }}
      path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
      if-no-files-found: error

  - name: Prepare Release Notes
    run: |
      export TODAY=$(date '+%Y-%m-%d')
      sed "s/%reborn_version%/${{ inputs.reborn_version }}/g; s/%youtube_version%/${{ inputs.youtube_version }}/g; s/%date%/$TODAY/g" \
      main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
  - name: Create Release
    id: create_release
    uses: softprops/action-gh-release@v2.0.1
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      REBORN_VERSION: ${{ inputs.REBORN_VERSION }}
      YOUTUBE_VERSION: ${{ inputs.youtube_version }}
      DRAFT: ${{ inputs.create_release }}
    with:
      tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.REBORN_VERSION }}-(${{ github.run_number }})
      name: v${{ env.YOUTUBE_VERSION }}-${{ env.REBORN_VERSION }}-(${{ github.run_number }})
      files: main/packages/*.ipa
      draft: ${{ env.DRAFT }}
superunknowndude commented 8 months ago

Nevermind. I saw that yaml was updated to 16.4 I manually entered 16.4 into the workflow as it still showed 16.2. Then I get the error. If I leave it as it, the workflow still caches 16.2 SDK and it completes:

image