[spaceship][produce] Merchant IDs have no macOS endpoint, so `mac: true` cannot work
Spaceship::Portal merchant calls take mac: and switch the path to account/mac/identifiers/…: merchants(mac:), create_merchant!(…, mac:) and delete_merchant!(…, mac:). The Developer Portal has no such endpoint. Listing merchants with an Apple ID:
POST account/ios/identifiers/listOMCs.action -> 200
POST account/mac/identifiers/listOMCs.action -> 404
resultCode 1003, "Invalid request, Service mapping to the requested URL is not available."Create and delete use the same mac prefix; they were not called, since they write. Website pushes, by contrast, answer on both paths.
produce merchant passes mac: true when the platform is mac (produce/lib/produce/merchant.rb), both to look merchants up and to create them.
Merchant IDs are Apple Pay identifiers and are not tied to a platform, so the mac: option can likely go, with the ios path always used. Related: #30237 (fixing #30236) made Merchant remember the mac: it was fetched with, so that delete! uses the same path; for merchants, that path does not exist. The official App Store Connect API also has merchant IDs (/v1/merchantIds), which spaceship does not use yet.
Source: fastlane/fastlane