build.prebuild and a Capacitor web-asset staleness guard for apple build / play build
apple build and play build run build.prebuild (or apple.prebuild / play.prebuild) first, once per flow run; --no-prebuild skips it, --dry only prints it. A Capacitor project's copied public/index.html must then be newer than the last source commit and <webDir>/index.html, else the build stops (--allow-stale-web overrides). check warns when stale without a prebuild; the build output and dry plan show the web bundle's sha256 and mtime. The Capacitor project is also found in a monorepo (apps/native etc.); several ask for play.build.dir / apple.build.*. Pitfall 23.
This commit is contained in:
parent
de511500d9
commit
af827be884
14 changed files with 600 additions and 25 deletions
|
|
@ -45,7 +45,14 @@ when the owner said so for this run). The MCP server offers only `apple_signing_
|
|||
ExportOptions.plist (`method` app-store-connect, `destination` export, team, style, profiles) and both xcodebuild
|
||||
commands. Then run it without `--dry` (minutes; full logs in `build/ios/xcodebuild-*.log`). It ends with the IPA
|
||||
path, version and build. **Note the build number**: later steps use exactly it.
|
||||
- Capacitor: `npx cap sync ios` after the web build first. React Native / CocoaPods: `pod install` first (the dry
|
||||
- Capacitor: the archive ships the web assets `npx cap sync` copied last. Set `build.prebuild` (e.g.
|
||||
`"npm run build && npx cap sync"`; per store `apple.prebuild` / `play.prebuild`) and `apple build` / `play build`
|
||||
run it first (once per `flow run`; `--no-prebuild` skips it). Then the copied `public/index.html` must be newer
|
||||
than the source (last commit outside ios/ android/ node_modules/ store/ .storebound/, `<webDir>/index.html`),
|
||||
else the build stops; `--allow-stale-web` only with the owner's OK. The output names the web bundle (sha256 +
|
||||
mtime). In a monorepo (`apps/native/capacitor.config.ts` with its own android/ and ios/) the one Capacitor
|
||||
project found one or two levels down is used and named; with several, set `play.build.dir` and
|
||||
`apple.build.workspace` / `project`. React Native / CocoaPods: `pod install` first (the dry
|
||||
run warns when Pods/ is missing). Flutter: storebound runs `flutter build ios --config-only` with the build
|
||||
number. Unity: build the Xcode project from Unity first.
|
||||
- Capacitor needs a UTF-8 locale; storebound sets `LANG` / `LC_ALL` for xcodebuild.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue