Update I've discovered the following.
I went to App Store Connect and disabled IAP2 by unchecking "Cleared for Sale"
In production app build, tapping on Button1 opens Store Kit dialog for IAP1.
In production app build, tapping on Button2 crashes app.
Disabling IAP2 does not affect dev/sandbox, there is no change in behavior likely because unchecking "Cleared for Sale" does not enable/disable the IAP in sandbox.
This is a slight improvement because previously:
Button1 opened Store Kit dialog for IAP2
Button2 opened Store Kit dialog for IAP1
...which would confuse customers.
The fact that this is only happening in production, and that disabling IAP2 from the "App Store Connect" site fixed the StoreKit dialog for IAP1 really indicates to me that this is an App Store bug.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags: