From a3c6eabdae829d31efd28506a67e3d7ad891fc5d Mon Sep 17 00:00:00 2001 From: Dan <38832025+dayanch96@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:26:04 +0300 Subject: [PATCH] 2.0.1, actions, templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 61 ++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.yml | 30 ++++++ .github/workflows/main.yml | 93 +++++++++++++++++++ .../Base.lproj/Localizable.strings | 1 + .../ar.lproj/Localizable.strings | 1 + .../es.lproj/Localizable.strings | 1 + .../ja.lproj/Localizable.strings | 1 + .../ru.lproj/Localizable.strings | 1 + .../vi.lproj/Localizable.strings | 1 + .../zh-Hans.lproj/Localizable.strings | 3 +- .../zh-Hant.lproj/Localizable.strings | 1 + README.md | 21 +++++ 13 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/workflows/main.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..2057958 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,61 @@ +name: Bug report +description: This issue template is designed to help you report problems and suggest improvements for our project. +labels: bug +body: + - type: textarea + attributes: + label: Describe the bug + description: Describe the issue in detail here, including any relevant context or background information. Be clear and concise. + placeholder: | + Enter your description here + render: yaml + validations: + required: true + + - type: textarea + attributes: + label: Steps to reproduce + description: | + Steps to reproduce the behavior (bug) + placeholder: | + Example: + 1. Go to Main tab + 2. Tap to the music + 3. See error + render: yaml + validations: + required: true + + - type: textarea + attributes: + label: Crashlog + description: | + **Do not put text from crashlog, include zipped Crashlog_File.ips instead** + + **To find and attach your crashlog:** + 1. Open the Analytics & Improvements section of Settings on the device. + 2. Tap Analytics Data. + 3. Locate the log for your app. The log name starts with YouTubeMusic_(DateTime). + 4. Select the desired log. + 5. Tap the Share icon, save it in the Files app, then zip saved file. + placeholder: | + Drag and drop your Crashlog.zip here. + validations: + required: false + + - type: checkboxes + attributes: + label: Post Requisites + description: | + **IMPORTANT:** Read carefully before checking the box. + options: + - label: I have checked that a similar issue has not been reported before. + required: true + - label: Verified the relevance of the project and the version you are using. + required: true + - label: Provided a detailed description of the problem and have filled in all required fields. + required: true + - label: I did not answer truthfully to **ALL** the above checkboxes. + required: false + - label: By submitting this issue, **I confirm that I have filled in all the necessary fields and complied with the guidelines. Failure to comply may result in the issue being closed without discussion, and repeated violations may lead to restrict account from further participation.** + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..780207e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,30 @@ +name: Feature request +description: This template is designed to help you suggest improvements or new features for our project. +labels: enhancement +body: + - type: textarea + attributes: + label: Describe the feature request + description: Describe the feature or enhancement in detail here. Include any relevant context or background information. Be clear and concise. + placeholder: | + Enter your description here + render: yaml + validations: + required: true + + - type: checkboxes + attributes: + label: Post Requisites + description: | + **IMPORTANT:** Read carefully before checking the box. + options: + - label: I have checked that a similar feature request has not been reported before. + required: true + - label: Verified the relevance of the project and the version you are using. + required: true + - label: Provided a detailed description of the request and have filled in all required fields. + required: true + - label: I did not answer truthfully to **ALL** the above checkboxes. + required: false + - label: By submitting this request, **I confirm that I have filled in all the necessary fields and complied with the guidelines. Failure to comply may result in the request being closed without discussion, and repeated violations may lead to restrict account from further participation.** + required: true diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..b419fae --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,93 @@ +name: Create Infuse Plus app + +on: + workflow_dispatch: + inputs: + + ipa_url: + description: "URL to the decrypted IPA file" + default: "" + required: true + type: string + + tweak_version: + description: "The version of the tweak to use. Enter the version manually from dayanch96/InfusePlus/releases or leave default" + default: "2.0.1" + required: true + type: string + + display_name: + description: "App Name (Optional)" + default: "Infuse" + required: true + type: string + + bundle_id: + description: "BundleID (Optional)" + default: "com.firecore.infuse" + required: true + type: string + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: + runs-on: macos-latest + permissions: + contents: write + + steps: + - name: Checkout Main + uses: actions/checkout@v4.1.1 + with: + path: main + submodules: recursive + + - name: Hide sensitive inputs + uses: levibostian/action-hide-sensitive-inputs@v1 + + - name: Validate IPA URL + run: | + curl -L -r 0-1023 -o sample.part "${{ inputs.ipa_url }}" > /dev/null 2>&1 + file_type=$(file --mime-type -b sample.part) + + if [[ "$file_type" != "application/x-ios-app" && "$file_type" != "application/zip" ]]; then + echo "::error::Validation failed: The file is not a valid IPA file. Detected type: $file_type." + exit 1 + fi + + - name: Install Dependencies + run: brew install make ldid + + - name: Set PATH environment variable + run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + + - name: Install cyan + run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip + + - name: Download Infuse Plus + id: download_infp + run: | + deb_url="https://github.com/dayanch96/InfusePlus/releases/download/v${{ inputs.tweak_version }}/com.dvntm.infuseplus_${{ inputs.tweak_version }}_iphoneos-arm.deb" + wget "$deb_url" --no-verbose -O ${{ github.workspace }}/infplus.deb + + - name: Download Infuse + id: download_infuse + run: wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/infuse.ipa + + - name: Inject tweaks into IPA + run: cyan -i infuse.ipa -o InfusePlus_${{ inputs.tweak_version }}.ipa -uwef infplus.deb -n "${{ inputs.display_name }}" -b ${{ inputs.bundle_id }} + + - name: Upload to GitHub Releases + uses: softprops/action-gh-release@v2.0.1 + with: + name: InfusePlus v${{ inputs.tweak_version }} (${{ github.run_number }}) + files: InfusePlus_${{ inputs.tweak_version }}.ipa + draft: true + + - name: Output Release URL + run: | + echo "::notice::Release available at: https://github.com/${{ github.repository }}/releases" \ No newline at end of file diff --git a/InfusePlus.bundle/Base.lproj/Localizable.strings b/InfusePlus.bundle/Base.lproj/Localizable.strings index 386e8d1..d131e42 100644 --- a/InfusePlus.bundle/Base.lproj/Localizable.strings +++ b/InfusePlus.bundle/Base.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Displays the battery percentage in the status bar"; "ModernPercentage" = "Modern Percentage"; "ModernPercentageDesc" = "Combines the battery icon and percentage, as shown in the icon"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "Speed Up Playback"; "SpeedByLongTapDesc" = "Pressing and holding the overlay speeds up playback rate"; diff --git a/InfusePlus.bundle/ar.lproj/Localizable.strings b/InfusePlus.bundle/ar.lproj/Localizable.strings index 930b84d..e76c791 100644 --- a/InfusePlus.bundle/ar.lproj/Localizable.strings +++ b/InfusePlus.bundle/ar.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Displays the battery percentage in the status bar"; "ModernPercentage" = "Modern Percentage"; "ModernPercentageDesc" = "Combines the battery icon and percentage, as shown in the icon"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "Speed Up Playback"; "SpeedByLongTapDesc" = "Pressing and holding the overlay speeds up playback rate"; diff --git a/InfusePlus.bundle/es.lproj/Localizable.strings b/InfusePlus.bundle/es.lproj/Localizable.strings index f128832..6275b2c 100644 --- a/InfusePlus.bundle/es.lproj/Localizable.strings +++ b/InfusePlus.bundle/es.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Muestra el porcentaje de batería en la barra de estado"; "ModernPercentage" = "Porcentaje moderno"; "ModernPercentageDesc" = "Combina el icono de la batería y el porcentaje, como se muestra en el icono"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "Acelerar reproducción"; "SpeedByLongTapDesc" = "Manteniendo pulsada la superposición se acelera la velocidad de reproducción"; diff --git a/InfusePlus.bundle/ja.lproj/Localizable.strings b/InfusePlus.bundle/ja.lproj/Localizable.strings index c005c15..0e9a758 100644 --- a/InfusePlus.bundle/ja.lproj/Localizable.strings +++ b/InfusePlus.bundle/ja.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Displays the battery percentage in the status bar"; "ModernPercentage" = "Modern Percentage"; "ModernPercentageDesc" = "Combines the battery icon and percentage, as shown in the icon"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "Speed Up Playback"; "SpeedByLongTapDesc" = "Pressing and holding the overlay speeds up playback rate"; diff --git a/InfusePlus.bundle/ru.lproj/Localizable.strings b/InfusePlus.bundle/ru.lproj/Localizable.strings index 7215f7c..338f83e 100644 --- a/InfusePlus.bundle/ru.lproj/Localizable.strings +++ b/InfusePlus.bundle/ru.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Отображает проценты оставшегося заряда в статус-баре"; "ModernPercentage" = "Современный вид"; "ModernPercentageDesc" = "Отображает проценты внутри иконки аккумулятора, как показано в примере слева."; +"StatusBarFooter" = "На некоторых устройствах процент заряда батареи может округляться до ближайших 5%. Это ограничение, установленное Apple."; "SpeedByLongTap" = "Ускорять зажатием"; "SpeedByLongTapDesc" = "Позволяет ускорять видео зажатием по экрану воспроизведения"; diff --git a/InfusePlus.bundle/vi.lproj/Localizable.strings b/InfusePlus.bundle/vi.lproj/Localizable.strings index 29dd441..ceb66af 100644 --- a/InfusePlus.bundle/vi.lproj/Localizable.strings +++ b/InfusePlus.bundle/vi.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "Displays the battery percentage in the status bar"; "ModernPercentage" = "Modern Percentage"; "ModernPercentageDesc" = "Combines the battery icon and percentage, as shown in the icon"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "Speed Up Playback"; "SpeedByLongTapDesc" = "Pressing and holding the overlay speeds up playback rate"; diff --git a/InfusePlus.bundle/zh-Hans.lproj/Localizable.strings b/InfusePlus.bundle/zh-Hans.lproj/Localizable.strings index 2c4734a..3a8a1e2 100644 --- a/InfusePlus.bundle/zh-Hans.lproj/Localizable.strings +++ b/InfusePlus.bundle/zh-Hans.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "在状态栏中显示电池百分比"; "ModernPercentage" = "现代百分比"; "ModernPercentageDesc" = "组合电池图标和百分比,如图标所示"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "播放加速"; "SpeedByLongTapDesc" = "按住播放界面可加快播放速度"; @@ -118,4 +119,4 @@ "Welcome.More" = "更多功能"; "Welcome.MoreDesc" = "设置启动页、更改控制中心的播放器海报和标题、更新通知等等"; "SupportMe" = "支持我"; -"Continue" = "继续"; +"Continue" = "继续"; \ No newline at end of file diff --git a/InfusePlus.bundle/zh-Hant.lproj/Localizable.strings b/InfusePlus.bundle/zh-Hant.lproj/Localizable.strings index 595e247..b504ebd 100644 --- a/InfusePlus.bundle/zh-Hant.lproj/Localizable.strings +++ b/InfusePlus.bundle/zh-Hant.lproj/Localizable.strings @@ -30,6 +30,7 @@ "BatteryPercentageDesc" = "在狀態列中顯示電池百分比"; "ModernPercentage" = "現代百分比"; "ModernPercentageDesc" = "如圖所示,將電池圖示和百分比合併顯示"; +"StatusBarFooter" = "On some devices, the battery percentage may be rounded to the nearest 5%. This is a limitation set by Apple."; "SpeedByLongTap" = "長按加速播放"; "SpeedByLongTapDesc" = "長按播放介面可加快播放速度"; diff --git a/README.md b/README.md index 9d77255..01d699f 100644 --- a/README.md +++ b/README.md @@ -52,3 +52,24 @@ Enhancer for Infuse iOS app. **Infuse Plus preferences can be found in the Settings tab** + +## How to build a Infuse Plus app using Github actions +> [!NOTE] +> If this your first time, complete following steps before starting: +> +> 1. Fork this repository using the fork button on the top right +> 2. On your forked repository, go to **Repository Settings** > **Actions**, enable **Read and Write** permissions. + +
+ How to build the Infuse Plus app +
    +
  1. Click on Sync fork, and if your branch is out-of-date, click on Update branch.
  2. +
  3. Navigate to the Actions tab in your forked repository and select Build Infuse Plus app.
  4. +
  5. Click the Run workflow button located on the right side.
  6. +
  7. Prepare a decrypted .ipa file (we cannot provide this due to legal reasons), then upload it to a file provider (e.g., filebin.net, filemail.com, or Dropbox is recommended). Paste the URL of the decrypted IPA file in the provided field.
  8. +
  9. NOTE: Make sure to provide a direct download link to the file, not a link to a webpage. Otherwise, the process will fail.
  10. +
  11. Enter the tweak version from the releases (the latest release is selected by default). You can also change the BundleID and Display Name if desired.
  12. +
  13. Make sure all inputs are correct, then click Run workflow to start the process.
  14. +
  15. Wait for the build to finish. You can download the Infuse Plus app from the releases section of your forked repo. (If you can't find the releases section, go to your forked repo and add /releases to the URL, i.e., github.com/user/InfusePlus/releases.)
  16. +
+
\ No newline at end of file