Skip to content
This repository was archived by the owner on Oct 16, 2025. It is now read-only.

Commit 911a511

Browse files
committed
fix: appTransaction ios versino check
Related hyochan/flutter_inapp_purchase#561
1 parent 43c10bb commit 911a511

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

Sources/OpenIapModule.swift

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)