import { Request } from "express"; import { AppMeta } from "./paths.js"; // manifest URL must be derived from req — iOS fails silently on host mismatch export function renderManifest(req: Request, slug: string, meta: AppMeta): string { const proto = (req.headers["x-forwarded-proto"] as string | undefined) ?? req.protocol; const host = req.headers.host ?? "localhost"; const base = `${proto}://${host}`; const ipaFile = meta.ipaFile ?? ""; const assetUrl = `${base}/install/${slug}/${ipaFile}`; return ` items assets kind software-package url ${assetUrl} metadata bundle-identifier ${meta.bundleId} bundle-version ${meta.version} kind software title ${meta.name} `; }