logo NodeSeekbeta

冬瓜TV MAX —— 打造你的私人 Netflix!TMDb 智能刮削 + 全网聚合 + 极速播放

  • @yuxmyyg #120 演示站没有添加任何接口,需要的话自行部署配置了

  • 收藏了

  • @EdNovas #121 发布于12/21/2025, 1:59:01 PM
    @yuxmyyg #120 演示站没有添加任何接口,需要的话自行部署配置了

    麻烦给一个部署的方法。

  • @yuxmyyg #124 请自行查看github项目中的readme部分,已经详细到不能再详细了

  • 构建app的android-build.yml似乎有点问题。修改了一下
    所有关键改动总结使用方法如下。

    1. fork项目,然后修改核心配置文件 (capacitor.config.json)

    这是你 App 的“身份证”和“导航图”。

    • 修改内容:
      • appName: 修改为 "XXXXX"。
      • server.url: 修改为你的自定义站点 http://xxxxxx。
    • 作用:定义了 App 启动后加载哪个网页,以及 App 叫什么名字(配合脚本生效)。

    2. 资源文件 (public/icon.png)

    这是你 App 的“脸面”。

    • 操作:上传了一张名为 icon.png 的图片到 public 文件夹。
    • 注意点:文件名必须全小写,且必须放在 public 下,否则脚本找不到。

    3. 修改构建脚本 (.github/workflows/android-build.yml) ——

    这是原本仓库里最难搞的部分,我们把它从“仅限原作者使用”改造成了“万能构建脚本”。

    主要改动点:

    1. 添加手动开关 (workflow_dispatch):

      • 原版:只能靠打 Tag (git tag v1.0) 触发,很麻烦。
      • 现版:加了手动触发器,现在点一下按钮就能构建,不用改代码。
    2. 升级运行环境:

      • 原版:Node 16/18,Java 11/17。
      • 现版:升级到了 Node 22 (Capacitor 新版强制要求) 和 Java 21,解决了 [fatal] The Capacitor CLI requires NodeJS >=22.0.0 报错。
    3. 暴力强制修改 App 名称:

      • 问题:安卓项目里 strings.xml 优先级太高,配置文件里的名字不生效。
      • 解决:增加了 sed 命令,在构建前直接读取 JSON 配置,强制替换安卓源码里的 <string name="app_name">,确保名字必变。
    4. 暴力强制生成图标:

      • 问题:简单的 Sync 不会覆盖已经存在的安卓默认图标。
      • 解决:增加了 imagemagick 脚本,检测到 public/icon.png 后,强制生成 5 种不同尺寸的图标并覆盖到安卓资源目录。
    5. 改为 Debug 构建 (assembleDebug):

      • 原版:assembleRelease (需要签名密钥,否则报错)。
      • 现版:改为 Debug 模式,跳过了复杂的签名验证步骤,虽然安装时会提示“测试版”,但个人使用完全没问题,且 100% 能构建成功。

    4. 仓库权限设置 (GitHub Settings)

    这是让脚本能跑起来的基础。

    • 改动:在 Settings -> Actions -> General -> Workflow permissions 中,勾选了 Read and write permissions。
    • 作用:允许脚本上传构建产物(APK)或者发布 Release。

    5. 现在的操作流程

    以后如果你想改个名字,或者换个网址,只需要:

    1. 修改 capacitor.config.json -> 提交。
    2. (如果要换图标) 替换 public/icon.png -> 提交。
    3. 去 Actions -> 点击 Android Build & Release -> 点击 Run workflow。
    4. 等 10 分钟,下载 APK。

    完整android-build.yml代码

    name: Android Build & Release
    
    on:
      workflow_dispatch:
    
    jobs:
      build:
        runs-on: ubuntu-latest
        permissions:
          contents: write
        
        steps:
          - name: Checkout repository
            uses: actions/checkout@v4
    
          # 1. 环境准备
          - name: Setup Node.js (v22)
            uses: actions/setup-node@v4
            with:
              node-version: '22'
              cache: 'npm'
    
          - name: Setup Java (v21)
            uses: actions/setup-java@v4
            with:
              distribution: 'temurin'
              java-version: '21'
    
          - name: Setup Android SDK
            uses: android-actions/setup-android@v3
    
          - name: Install Dependencies
            run: npm install
    
          # 2. 准备网页资源
          - name: Fix Web Assets
            run: |
              mkdir -p www
              if [ -d "public" ]; then
                cp -r public/* www/
              else
                echo "<h1>App</h1>" > www/index.html
              fi
    
          # 3. 生成图标
          - name: Generate App Icons
            run: |
              echo "🎨 Starting Icon Generation..."
              sudo apt-get update && sudo apt-get install -y imagemagick
              if [ -f "public/icon.png" ]; then
                RES_PATH="android/app/src/main/res"
                mkdir -p $RES_PATH/mipmap-mdpi $RES_PATH/mipmap-hdpi $RES_PATH/mipmap-xhdpi $RES_PATH/mipmap-xxhdpi $RES_PATH/mipmap-xxxhdpi
                generate_icon() {
                  convert "public/icon.png" -resize ${1}x${1} $RES_PATH/$2/ic_launcher.png
                  convert "public/icon.png" -resize ${1}x${1} $RES_PATH/$2/ic_launcher_round.png
                  convert "public/icon.png" -resize ${1}x${1} $RES_PATH/$2/ic_launcher_foreground.png
                }
                generate_icon 48 "mipmap-mdpi"
                generate_icon 72 "mipmap-hdpi"
                generate_icon 96 "mipmap-xhdpi"
                generate_icon 144 "mipmap-xxhdpi"
                generate_icon 192 "mipmap-xxxhdpi"
                echo "✅ Icons generated!"
              else
                echo "⚠️ No public/icon.png found!"
              fi
    
          # 4. 同步 Capacitor
          - name: Sync Capacitor
            run: npx cap sync android
    
          # 5. ★★★ 绝杀改名:Manifest + Strings ★★★
          - name: Force Rename App (Nuclear Option)
            run: |
              # 获取新名字
              NEW_NAME=$(jq -r '.appName' capacitor.config.json)
              echo "🔥 Target Name: $NEW_NAME"
    
              MANIFEST="android/app/src/main/AndroidManifest.xml"
              sed -i "s/android:label=\"[^\"]*\"/android:label=\"$NEW_NAME\"/g" $MANIFEST
              echo "✅ Manifest updated:"
              grep "android:label" $MANIFEST
    
              # 【操作B】地毯式替换所有 strings.xml (包括 values-zh, values-en 等)
              echo "🔍 Searching for strings.xml files..."
              find android/app/src/main/res -name "strings.xml" | while read file; do
                 echo "   -> Updating $file"
                 # 强制替换 <string name="app_name">...</string> 这一整行
                 sed -i "s|<string name=\"app_name\">.*</string>|<string name=\"app_name\">$NEW_NAME</string>|g" "$file"
              done
    
          # 6. 构建 APK
          - name: Build Debug APK
            working-directory: android
            run: |
              chmod +x gradlew
              ./gradlew assembleDebug
    
          # 7. 上传
          - name: Upload APK
            uses: actions/upload-artifact@v4
            with:
              name: APP-APP
              path: android/app/build/outputs/apk/debug/*.apk
    
  • @我才不吃冬瓜 #126 嗯?哈哈哈哈好像这些问题我在最新的版本里都已经修复过了,除了 加了手动触发器,现在点一下按钮就能构建,不用改代码。 这个,因为这个我个人不需要,只有改动才需要自动构建所以就没有加入 xhj016

  • 厉害

  • The Movie Database这玩意好像不让注册,一直出现人类验证

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72280位seeker

🎉欢迎新用户🎉