Step failed: 'no PLATFORM_DISPLAY_NAME config found for (PediFoods App)
target'. It queries build settings without pinning an SDK, and this
target's SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx (Skip
builds Darwin for both iOS and Catalyst-style macOS) makes that
ambiguous — LC Wallet's iOS-only target never hits this.
xcode-archive@5 already has automatic_code_signing: api-key, which
manages signing itself during archive. The separate step was redundant.
Referenced build_for_testing/test_without_building workflows that were
never defined — copied the pipeline block from LC Wallet without its
matching workflow definitions. Unused anyway (not in trigger_map, no
PR trigger wanted), so removing instead of completing it.
Switch from fastlane-driven build (build_app + hand-rolled apikey.json)
to Bitrise's own xcode-archive step, matching LC Wallet 1:1: manage-ios-
code-signing + xcode-archive@5 (automatic_code_signing: api-key) do the
build/sign, deploy-to-itunesconnect-deliver@2 handles TestFlight in the
beta workflow, fastlane only runs for the release lane (metadata push +
App Store upload) reading BITRISE_IPA_PATH — same shape as LC Wallet's
Fastfile beta/release lanes.
Only genuine differences from LC Wallet, all forced by this project's
actual layout:
- BITRISE_PROJECT_PATH/SCHEME point at Darwin/PediFoods.xcodeproj
- fastlane work_dir is Darwin/ (Fastfile lives there, not repo root)
- build number bumps CURRENT_PROJECT_VERSION in Skip.env instead of
agvtool — this project has no VERSIONING_SYSTEM set, Skip.env is the
actual shared source of truth for both Darwin and Android
- team_id comes from a DEVELOPMENT_TEAM secret instead of a hardcoded
literal — LC Wallet's Apple team ID isn't necessarily this app's
ASC_KEY_CONTENT is the raw .p8 private key, which contains literal
newlines. The heredoc interpolated it straight into a JSON string,
producing invalid JSON (JSON::ParserError in get_provisioning_profile).
Build the file with Ruby's JSON encoder instead so newlines are escaped
correctly. Verified locally against a realistic multi-line PEM value.
agvtool doesn't apply here — no VERSIONING_SYSTEM set, CURRENT_PROJECT_VERSION
comes from Skip.env (shared with the Android side) via #include in
Darwin/PediFoods.xcconfig. Bump it there instead.
Dropped APPLE_ID, ITC_TEAM_ID and unused BITRISE_DISTRIBUTION_METHOD carried
over from LC Wallet's Fastfile/Appfile shape — none of them are read anywhere
in this project's Appfile or Fastfile.
Added the actual missing piece: DEVELOPMENT_TEAM, which both
Darwin/PediFoods.xcconfig and Darwin/fastlane/AppStore.xcconfig leave blank
on purpose for CI to fill in. Wired BITRISE_DISTRIBUTION_METHOD into
build_app's export_method so it stops being dead config.
Modeled on LC Wallet's bitrise.yml. Push-only trigger map (develop->beta,
main->release), no PR-triggered checks. Reuses the existing Skip fastlane
lanes directly instead of a generic xcode-archive step, since build_app
already carries the Skip-specific xcconfig and build flags. Adds a beta
lane (TestFlight) to match release, which was the only lane wired before.