@@ -861,26 +861,31 @@ private func makePurchaseError(code: ErrorCode, productId: String? = nil, messag
861861 private func mapAppTransaction( _ transaction: StoreKit . AppTransaction ) -> AppTransaction {
862862 let appVersionId = transaction. appVersionID. map ( Double . init) ?? 0
863863 let appVersion = transaction. appVersion
864- let originalPlatform : String ?
865- if #available( iOS 18 . 4 , macOS 15 . 4 , * ) {
866- originalPlatform = transaction. originalPlatform. rawValue
867- } else {
868- originalPlatform = nil
869- }
870-
871864 let appId = transaction. appID. map ( Double . init) ?? 0
872-
865+
866+ // iOS 18.4+ properties - only compile with Xcode 16.4+ (Swift 6.1+)
867+ // This prevents build failures on Xcode 16.3 and below
868+ var appTransactionId : String ? = nil
869+ var originalPlatformValue : String ? = nil
870+
871+ #if swift(>=6.1)
872+ if #available( iOS 18 . 4 , * ) {
873+ appTransactionId = String ( transaction. appTransactionID)
874+ originalPlatformValue = transaction. originalPlatform. rawValue
875+ }
876+ #endif
877+
873878 return AppTransaction (
874879 appId: appId,
875- appTransactionId: transaction . appTransactionID ,
880+ appTransactionId: appTransactionId ,
876881 appVersion: appVersion,
877882 appVersionId: appVersionId,
878883 bundleId: transaction. bundleID,
879884 deviceVerification: transaction. deviceVerification. base64EncodedString ( ) ,
880885 deviceVerificationNonce: transaction. deviceVerificationNonce. uuidString,
881886 environment: transaction. environment. rawValue,
882887 originalAppVersion: transaction. originalAppVersion,
883- originalPlatform: originalPlatform ,
888+ originalPlatform: originalPlatformValue ,
884889 originalPurchaseDate: transaction. originalPurchaseDate. milliseconds,
885890 preorderDate: transaction. preorderDate? . milliseconds,
886891 signedDate: transaction. signedDate. milliseconds
0 commit comments