Transaction.environment is undefined/nil in TestFlight

I'm using Transaction.environment to determine server behavior.

https://developer.apple.com/documentation/storekit/apptransaction/environment

https://developer.apple.com/documentation/storekit/appstore/environment

I gather this information on the app using StoreKit and then send it to the server:

originalTransactionId = transaction.originalID
originalTransactionEnvironment = transaction.environment

When testing within Xcode, on a simulator, the value sent to the server for originalTransactionEnvironment is Xcode - as expected.

When testing on a device using a TestFlight build, the value sent to the server for originalTransactionEnvironment is undefined/nil. I expected it to be Sandbox - and later in production it should be Production.

Most importantly, the value sent to the server for originalTransactionId in the TestFlight version is not undefined/nil - it is the value I expected it would be. The transaction was originally for a subscription purchase, if that makes a difference.

So the transaction is available, and information like originalID is also available. Why is transaction.environment not available? What is the behavior in production?

Transaction.environment is undefined/nil in TestFlight
 
 
Q