diff --git a/scripts/verify.sh b/scripts/verify.sh index 77c6f38..0ddb677 100644 --- a/scripts/verify.sh +++ b/scripts/verify.sh @@ -352,10 +352,14 @@ fi if [ -n "$APP_KEYS" ]; then for APP_KEY in $APP_KEYS; do - SDK_CODE=$(http_get "$BASE_URL/api/sdk/config?appKey=${APP_KEY}&platform=ANDROID") - SDK_BODY=$(http_body "$BASE_URL/api/sdk/config?appKey=${APP_KEY}&platform=ANDROID") + # packageName 为必填参数;fresh 部署无已注册包名时返回 403(正常) + SDK_CODE=$(http_get "$BASE_URL/api/sdk/config?appKey=${APP_KEY}&platform=ANDROID&packageName=com.xuqm.verify") + SDK_BODY=$(http_body "$BASE_URL/api/sdk/config?appKey=${APP_KEY}&platform=ANDROID&packageName=com.xuqm.verify") if [ "$SDK_CODE" = "200" ] && echo "$SDK_BODY" | grep -q '"code":200'; then pass "SDK config: $APP_KEY" + elif echo "$SDK_CODE" | grep -qE '^(403|404)$'; then + # 403 = 包名未注册(fresh 部署正常);404 = appKey 不存在 + warn "SDK config: $APP_KEY (HTTP $SDK_CODE,包名未注册或 App 未配置 — 部署后正常)" else fail "SDK config: $APP_KEY (HTTP $SDK_CODE)" fi @@ -386,14 +390,23 @@ check_optional_service() { fi } +# 使用数据库中第一个 IM 类型 App(或任意 App)的 key 测试 IM 服务 +_IM_APP_KEY="" +if [ -n "$MYSQL_CTR" ]; then + _IM_APP_KEY=$(docker exec "$MYSQL_CTR" sh -c \ + "mysql -u${MYSQL_USERNAME:-xuqm} -p${MYSQL_PASSWORD:-} ${MYSQL_DATABASE:-xuqm_private} -N \ + -e \"SELECT app_key FROM t_app WHERE enable_im=1 OR is_default=1 LIMIT 1;\"" 2>/dev/null | tr -d '\r\n') +fi +[ -z "$_IM_APP_KEY" ] && _IM_APP_KEY="${APP_KEYS%% *}" # 降级到第一个 App Key + check_optional_service "IM 服务" \ - "$BASE_URL/api/im/platform-events/token?appKey=test" "$TOKEN" + "$BASE_URL/api/im/platform-events/token?appKey=${_IM_APP_KEY:-test}" "$TOKEN" check_optional_service "版本管理 (update)" \ - "$BASE_URL/api/v1/updates/app/list?appKey=test&platform=ANDROID" "$TOKEN" + "$BASE_URL/api/v1/updates/app/list?appKey=${_IM_APP_KEY:-test}&platform=ANDROID" "$TOKEN" check_optional_service "RN 热更新 (rn)" \ - "$BASE_URL/api/v1/rn/list?appKey=test" "$TOKEN" + "$BASE_URL/api/v1/rn/list?appKey=${_IM_APP_KEY:-test}" "$TOKEN" # 文件服务 FILE_CODE=$(http_get "$BASE_URL/file/")