diff --git a/RevenueCat.xcodeproj/project.pbxproj b/RevenueCat.xcodeproj/project.pbxproj index e0f51357de..d23345eace 100644 --- a/RevenueCat.xcodeproj/project.pbxproj +++ b/RevenueCat.xcodeproj/project.pbxproj @@ -242,6 +242,7 @@ 4FCBA84F2A15391B004134BD /* SnapshotTesting+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576C8A9127D27DDD0058FA6E /* SnapshotTesting+Extensions.swift */; }; 4FCBA8512A153940004134BD /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 4FCBA8502A153940004134BD /* SnapshotTesting */; }; 4FD291BE2A1E9A2E0098D1B9 /* StoreKit2TransactionFetcherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FD291BD2A1E9A2E0098D1B9 /* StoreKit2TransactionFetcherTests.swift */; }; + 4FF8464D2A32554300617F00 /* DiagnosticsStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FF8464C2A32554300617F00 /* DiagnosticsStrings.swift */; }; 57032ABF28C13CE4004FF47A /* StoreKit2SettingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57032ABE28C13CE4004FF47A /* StoreKit2SettingTests.swift */; }; 57045B3829C514A8001A5417 /* ProductEntitlementMappingDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57045B3729C514A8001A5417 /* ProductEntitlementMappingDecodingTests.swift */; }; 57045B3A29C51751001A5417 /* GetProductEntitlementMappingOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57045B3929C51751001A5417 /* GetProductEntitlementMappingOperation.swift */; }; @@ -508,7 +509,6 @@ 9A65E07B2591977500DE00B0 /* NetworkStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A65E07A2591977500DE00B0 /* NetworkStrings.swift */; }; 9A65E0A02591A23200DE00B0 /* OfferingStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A65E09F2591A23200DE00B0 /* OfferingStrings.swift */; }; 9A65E0A52591A23500DE00B0 /* PurchaseStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A65E0A42591A23500DE00B0 /* PurchaseStrings.swift */; }; - 9A65E0AA2591A23800DE00B0 /* RestoreStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A65E0A92591A23800DE00B0 /* RestoreStrings.swift */; }; A524378B284FFF0200E788BD /* AttributionPosterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A524378A284FFF0200E788BD /* AttributionPosterTests.swift */; }; A525BF4B26C320D100C354C4 /* SubscriberAttributesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A525BF4A26C320D100C354C4 /* SubscriberAttributesManager.swift */; }; A55D08302722368600D919E0 /* SK2BeginRefundRequestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55D082F2722368600D919E0 /* SK2BeginRefundRequestHelper.swift */; }; @@ -524,7 +524,6 @@ A56F9AB126990E9200AFC48F /* CustomerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56F9AB026990E9200AFC48F /* CustomerInfo.swift */; }; A5B6CDD8280F3843007629D5 /* AdServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B6CDD5280F3843007629D5 /* AdServices.framework */; platformFilters = (ios, maccatalyst, macos, ); settings = {ATTRIBUTES = (Weak, ); }; }; A5F0104E2717B3150090732D /* BeginRefundRequestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F0104D2717B3150090732D /* BeginRefundRequestHelper.swift */; }; - B300E4BF26D436F900B22262 /* LogIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A65DFDD258AD60A00DE00B0 /* LogIntent.swift */; }; B300E4C026D4371200B22262 /* SKPaymentTransactionExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F591492526B994B400D32E58 /* SKPaymentTransactionExtensionsTests.swift */; }; B300E4C226D439B700B22262 /* IntroEligibilityCalculatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37E354B18710B488B8B0D443 /* IntroEligibilityCalculatorTests.swift */; }; B302206A27271BCB008F1A0D /* Decoder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B302206927271BCB008F1A0D /* Decoder+Extensions.swift */; }; @@ -933,6 +932,7 @@ 4FA696BC2A0020A000D228B1 /* MainThreadMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainThreadMonitor.swift; sourceTree = ""; }; 4FCBA8522A1539D0004134BD /* __Snapshots__ */ = {isa = PBXFileReference; lastKnownFileType = folder; path = __Snapshots__; sourceTree = ""; }; 4FD291BD2A1E9A2E0098D1B9 /* StoreKit2TransactionFetcherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreKit2TransactionFetcherTests.swift; sourceTree = ""; }; + 4FF8464C2A32554300617F00 /* DiagnosticsStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiagnosticsStrings.swift; sourceTree = ""; }; 57032ABE28C13CE4004FF47A /* StoreKit2SettingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreKit2SettingTests.swift; sourceTree = ""; }; 57045B3729C514A8001A5417 /* ProductEntitlementMappingDecodingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductEntitlementMappingDecodingTests.swift; sourceTree = ""; }; 57045B3929C51751001A5417 /* GetProductEntitlementMappingOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetProductEntitlementMappingOperation.swift; sourceTree = ""; }; @@ -1164,7 +1164,6 @@ 9A65E07A2591977500DE00B0 /* NetworkStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkStrings.swift; sourceTree = ""; }; 9A65E09F2591A23200DE00B0 /* OfferingStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OfferingStrings.swift; sourceTree = ""; }; 9A65E0A42591A23500DE00B0 /* PurchaseStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PurchaseStrings.swift; sourceTree = ""; }; - 9A65E0A92591A23800DE00B0 /* RestoreStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RestoreStrings.swift; sourceTree = ""; }; A524378A284FFF0200E788BD /* AttributionPosterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttributionPosterTests.swift; sourceTree = ""; }; A525BF4A26C320D100C354C4 /* SubscriberAttributesManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriberAttributesManager.swift; sourceTree = ""; }; A55D082F2722368600D919E0 /* SK2BeginRefundRequestHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SK2BeginRefundRequestHelper.swift; sourceTree = ""; }; @@ -1442,6 +1441,7 @@ F5714EE426DC2F1D00635477 /* CodableStrings.swift */, 9A65E03525918B0500DE00B0 /* ConfigureStrings.swift */, 9A65E03A25918B0900DE00B0 /* CustomerInfoStrings.swift */, + 4FF8464C2A32554300617F00 /* DiagnosticsStrings.swift */, 575642B52910116900719219 /* EligibilityStrings.swift */, 9A65E0752591977200DE00B0 /* IdentityStrings.swift */, 2D00A41C2767C08300FC3DD8 /* ManageSubscriptionsStrings.swift */, @@ -1449,7 +1449,6 @@ 9A65E09F2591A23200DE00B0 /* OfferingStrings.swift */, 57488BE729CB7FB60000EE7E /* OfflineEntitlementsStrings.swift */, 9A65E0A42591A23500DE00B0 /* PurchaseStrings.swift */, - 9A65E0A92591A23800DE00B0 /* RestoreStrings.swift */, 5791FCF22992D3EC00F1FEDA /* SigningStrings.swift */, F5C0196826E880800005D61E /* StoreKitStrings.swift */, 37E3507939634ED5A9280544 /* Strings.swift */, @@ -3161,6 +3160,7 @@ 5791FE4A2994453500F1FEDA /* Signing+ResponseVerification.swift in Sources */, 2DC19195255F36D10039389A /* Logger.swift in Sources */, 2DDF419F24F6F331005BC22D /* ReceiptParsingError.swift in Sources */, + 4FF8464D2A32554300617F00 /* DiagnosticsStrings.swift in Sources */, 57BB070E28D27A2B007F5DF0 /* CachingProductsManager.swift in Sources */, 2DDF419D24F6F331005BC22D /* IntroEligibilityCalculator.swift in Sources */, 57536A2627851FFE00E2AE7F /* SK1StoreTransaction.swift in Sources */, @@ -3216,7 +3216,6 @@ 57536A28278522B400E2AE7F /* SK2StoreTransaction.swift in Sources */, 2D9C7BB326D838FC006838BE /* UIApplication+RCExtensions.swift in Sources */, F56E2E7727622B5E009FED5B /* TransactionsManager.swift in Sources */, - 9A65E0AA2591A23800DE00B0 /* RestoreStrings.swift in Sources */, B34605CC279A6E380031CA74 /* LogInOperation.swift in Sources */, 35F82BB626A9B8040051DF03 /* AttributionDataMigrator.swift in Sources */, A55D08302722368600D919E0 /* SK2BeginRefundRequestHelper.swift in Sources */, @@ -3479,7 +3478,6 @@ 574A2F4F282D7B9E00150D40 /* PostOfferDecodingTests.swift in Sources */, 2DDF41CE24F6F4C3005BC22D /* InAppPurchaseBuilderTests.swift in Sources */, 573A10DB2800AF4700F976E5 /* PurchaseErrorTests.swift in Sources */, - B300E4BF26D436F900B22262 /* LogIntent.swift in Sources */, 351B513F26D4496000BD2BD7 /* MockIdentityManager.swift in Sources */, B319514926C19856002CA9AC /* NSData+RCExtensionsTests.swift in Sources */, 5733B1A427FF9F8300EC2045 /* NetworkErrorTests.swift in Sources */, diff --git a/Sources/Logging/Strings/ConfigureStrings.swift b/Sources/Logging/Strings/ConfigureStrings.swift index e94fbb5a02..e46748d809 100644 --- a/Sources/Logging/Strings/ConfigureStrings.swift +++ b/Sources/Logging/Strings/ConfigureStrings.swift @@ -71,6 +71,8 @@ enum ConfigureStrings { case custom_entitlements_computation_enabled_but_no_app_user_id + case timeout_lower_than_minimum(timeout: TimeInterval, minimum: TimeInterval) + } extension ConfigureStrings: CustomStringConvertible { @@ -167,6 +169,12 @@ extension ConfigureStrings: CustomStringConvertible { return "customEntitlementComputation mode is enabled, but appUserID is nil. " + "When using customEntitlementComputation, you must set the appUserID to prevent anonymous IDs from " + "being generated." + + case let .timeout_lower_than_minimum(timeout, minimum): + return """ + Timeout value: \(timeout) is lower than the minimum, setting it + to the mimimum: (\(minimum)) + """ } } diff --git a/Sources/Logging/Strings/DiagnosticsStrings.swift b/Sources/Logging/Strings/DiagnosticsStrings.swift new file mode 100644 index 0000000000..556914ebbf --- /dev/null +++ b/Sources/Logging/Strings/DiagnosticsStrings.swift @@ -0,0 +1,34 @@ +// +// Copyright RevenueCat Inc. All Rights Reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// DiagnosticsStrings.swift +// +// Created by Nacho Soto on 6/8/23. + +import Foundation + +// swiftlint:disable identifier_name + +enum DiagnosticsStrings { + + case timing_message(message: String, duration: TimeInterval) + +} + +extension DiagnosticsStrings: CustomStringConvertible { + + var description: String { + switch self { + case let .timing_message(message, duration): + let roundedDuration = (duration * 100).rounded(.down) / 100 + return String(format: "%@ (%.2f seconds)", message.description, roundedDuration) + } + } + +} diff --git a/Sources/Logging/Strings/NetworkStrings.swift b/Sources/Logging/Strings/NetworkStrings.swift index 63ac3d826a..a2706d7332 100644 --- a/Sources/Logging/Strings/NetworkStrings.swift +++ b/Sources/Logging/Strings/NetworkStrings.swift @@ -34,6 +34,7 @@ enum NetworkStrings { case failing_url_resolved_to_host(url: URL, resolvedHost: String) case blocked_network(url: URL, newHost: String?) case api_request_redirect(from: URL, to: URL) + case operation_state(NetworkOperation.Type, state: String) #if DEBUG case api_request_forcing_server_error(HTTPRequest) @@ -103,6 +104,9 @@ extension NetworkStrings: CustomStringConvertible { case let .api_request_redirect(from, to): return "Performing redirect from '\(from.absoluteString)' to '\(to.absoluteString)'" + case let .operation_state(operation, state): + return "\(operation): \(state)" + #if DEBUG case let .api_request_forcing_server_error(request): return "Returning fake HTTP 500 error for '\(request.description)'" diff --git a/Sources/Logging/Strings/OfferingStrings.swift b/Sources/Logging/Strings/OfferingStrings.swift index d46eef105e..bc624ec9ed 100644 --- a/Sources/Logging/Strings/OfferingStrings.swift +++ b/Sources/Logging/Strings/OfferingStrings.swift @@ -42,6 +42,7 @@ enum OfferingStrings { case product_details_empty_title(productIdentifier: String) case unknown_package_type(Package) case custom_package_type(Package) + case overriding_package(old: String, new: String) } @@ -151,6 +152,9 @@ extension OfferingStrings: CustomStringConvertible { "has a custom duration." + "\nYou can reference this package by its identifier ('\(package.identifier)') directly." + "\nMore information: https://rev.cat/displaying-products" + + case let .overriding_package(old, new): + return "Package: \(old) already exists, overwriting with: \(new)" } } diff --git a/Sources/Logging/Strings/PurchaseStrings.swift b/Sources/Logging/Strings/PurchaseStrings.swift index b6b0c34a4d..7261b36c36 100644 --- a/Sources/Logging/Strings/PurchaseStrings.swift +++ b/Sources/Logging/Strings/PurchaseStrings.swift @@ -76,6 +76,10 @@ enum PurchaseStrings { case sk2_transactions_update_received_transaction(StoreTransaction) case sk1_purchase_too_slow case sk2_purchase_too_slow + case payment_queue_wrapper_delegate_call_sk1_enabled + + // swiftlint:disable:next identifier_name + case restorepurchases_called_with_allow_sharing_appstore_account_false } @@ -282,6 +286,13 @@ extension PurchaseStrings: CustomStringConvertible { case .sk2_purchase_too_slow: return "StoreKit 2 purchase took longer than expected" + + case .payment_queue_wrapper_delegate_call_sk1_enabled: + return "Unexpectedly received PaymentQueueWrapperDelegate call with SK1 enabled" + + case .restorepurchases_called_with_allow_sharing_appstore_account_false: + return "allowSharingAppStoreAccount is set to false and restorePurchases has been called. " + + "Are you sure you want to do this?" } } diff --git a/Sources/Logging/Strings/RestoreStrings.swift b/Sources/Logging/Strings/RestoreStrings.swift deleted file mode 100644 index f16711fb4a..0000000000 --- a/Sources/Logging/Strings/RestoreStrings.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// Copyright RevenueCat Inc. All Rights Reserved. -// -// Licensed under the MIT License (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://opensource.org/licenses/MIT -// -// RestoreStrings.swift -// -// Created by Tina Nguyen on 12/11/20. -// - -import Foundation - -enum RestoreStrings { - - // swiftlint:disable identifier_name - case restorepurchases_called_with_allow_sharing_appstore_account_false_warning - // swiftlint:enable identifier_name - -} - -extension RestoreStrings: CustomStringConvertible { - - var description: String { - switch self { - case .restorepurchases_called_with_allow_sharing_appstore_account_false_warning: - return "allowSharingAppStoreAccount is set to false and restorePurchases has been called. " + - "Are you sure you want to do this?" - } - } - -} diff --git a/Sources/Logging/Strings/StoreKitStrings.swift b/Sources/Logging/Strings/StoreKitStrings.swift index d3a9ad0abd..893ef2d4ea 100644 --- a/Sources/Logging/Strings/StoreKitStrings.swift +++ b/Sources/Logging/Strings/StoreKitStrings.swift @@ -41,6 +41,8 @@ enum StoreKitStrings { case sk1_no_known_product_type + case sk1_unknown_transaction_state(SKPaymentTransactionState) + case unknown_sk2_product_discount_type(rawValue: String) case sk1_discount_missing_locale @@ -55,6 +57,12 @@ enum StoreKitStrings { case sk2_product_request_too_slow + #if DEBUG + + case sk1_wrapper_notifying_delegate_of_existing_transactions(count: Int) + + #endif + } extension StoreKitStrings: CustomStringConvertible { @@ -101,6 +109,9 @@ extension StoreKitStrings: CustomStringConvertible { return "This StoreProduct represents an SK1 product, the type of product cannot be determined, " + "the value will be undefined. Use `StoreProduct.productCategory` instead." + case let .sk1_unknown_transaction_state(state): + return "Received unknown transaction state: \(state.rawValue)" + case .unknown_sk2_product_discount_type(let rawValue): return "Failed to create StoreProductDiscount.DiscountType with unknown value: \(rawValue)" @@ -128,6 +139,13 @@ extension StoreKitStrings: CustomStringConvertible { case .sk2_product_request_too_slow: return "StoreKit 2 product request took longer than expected" + + #if DEBUG + case let .sk1_wrapper_notifying_delegate_of_existing_transactions(count): + return "StoreKit1Wrapper: sending delegate \(count) existing transactions " + + "for Integration Tests." + #endif + } } diff --git a/Sources/Logging/Strings/Strings.swift b/Sources/Logging/Strings/Strings.swift index 2961f74243..f18d09dfe5 100644 --- a/Sources/Logging/Strings/Strings.swift +++ b/Sources/Logging/Strings/Strings.swift @@ -19,6 +19,7 @@ enum Strings { static let configure = ConfigureStrings.self static let backendError = BackendErrorStrings.self static let customerInfo = CustomerInfoStrings.self + static let diagnostics = DiagnosticsStrings.self static let eligibility = EligibilityStrings.self static let identity = IdentityStrings.self static let network = NetworkStrings.self @@ -26,7 +27,6 @@ enum Strings { static let offlineEntitlements = OfflineEntitlementsStrings.self static let purchase = PurchaseStrings.self static let receipt = ReceiptStrings.self - static let restore = RestoreStrings.self static let signing = SigningStrings.self static let storeKit = StoreKitStrings.self diff --git a/Sources/Misc/DateAndTime/TimingUtil.swift b/Sources/Misc/DateAndTime/TimingUtil.swift index 464e7b03cb..d527496d71 100644 --- a/Sources/Misc/DateAndTime/TimingUtil.swift +++ b/Sources/Misc/DateAndTime/TimingUtil.swift @@ -206,10 +206,12 @@ private extension TimingUtil { intent: LogIntent ) { if duration >= threshold { - let roundedDuration = (duration * 100).rounded(.down) / 100 - let message = String(format: "%@ (%.2f seconds)", message.description, roundedDuration) - - Logger.log(level: level, intent: intent, message: message) + Logger.log( + level: level, + intent: intent, + message: Strings.diagnostics.timing_message(message: message.description, + duration: duration) + ) } } diff --git a/Sources/Networking/Operations/NetworkOperation.swift b/Sources/Networking/Operations/NetworkOperation.swift index 63c26884f0..f911f7e9de 100644 --- a/Sources/Networking/Operations/NetworkOperation.swift +++ b/Sources/Networking/Operations/NetworkOperation.swift @@ -168,7 +168,8 @@ class NetworkOperation: Operation { // MARK: - internal func log(_ message: CustomStringConvertible) { - Logger.debug("\(type(of: self)): \(message.description)") + Logger.debug(Strings.network.operation_state(type(of: self), + state: message.description)) } // MARK: - diff --git a/Sources/Purchasing/Configuration.swift b/Sources/Purchasing/Configuration.swift index ed55674908..a06ab1642d 100644 --- a/Sources/Purchasing/Configuration.swift +++ b/Sources/Purchasing/Configuration.swift @@ -202,10 +202,10 @@ import Foundation private func clamped(timeout: TimeInterval) -> TimeInterval { guard timeout >= Self.minimumTimeout else { Logger.warn( - """ - Timeout value: \(timeout) is lower than the minimum, setting it - to the mimimum: (\(Self.minimumTimeout)) - """ + Strings.configure.timeout_lower_than_minimum( + timeout: timeout, + minimum: Self.minimumTimeout + ) ) return Self.minimumTimeout } diff --git a/Sources/Purchasing/Offering.swift b/Sources/Purchasing/Offering.swift index 716320e618..318bf6aa6e 100644 --- a/Sources/Purchasing/Offering.swift +++ b/Sources/Purchasing/Offering.swift @@ -211,7 +211,8 @@ private extension Offering { static func checkForNilAndLogReplacement(previousPackages: [PackageType: Package], newPackage: Package) { if let package = previousPackages[newPackage.packageType] { - Logger.warn("Package: \(package.identifier) already exists, overwriting with: \(newPackage.identifier)") + Logger.warn(Strings.offering.overriding_package(old: package.identifier, + new: newPackage.identifier)) } } diff --git a/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift b/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift index faed4b8609..fbe578f0df 100644 --- a/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift +++ b/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift @@ -606,7 +606,7 @@ extension PurchasesOrchestrator: StoreKit1WrapperDelegate { case .deferred: self.handleDeferredTransaction(transaction) @unknown default: - Logger.warn("unhandled transaction state!") + Logger.appleWarning(Strings.storeKit.sk1_unknown_transaction_state(transaction.transactionState)) } } @@ -678,8 +678,8 @@ extension PurchasesOrchestrator: PaymentQueueWrapperDelegate { // need to be handled as a SK2 purchase. // This method converts the `SKPayment` into an SK2 purchase by fetching the product again. if self.paymentQueueWrapper.sk1Wrapper != nil { - Logger.warn("Unexpectedly received PaymentQueueWrapperDelegate call with SK1 enabled") - assertionFailure("This method should not be invoked if SK1 is enabled") + Logger.warn(Strings.purchase.payment_queue_wrapper_delegate_call_sk1_enabled) + assertionFailure(Strings.purchase.payment_queue_wrapper_delegate_call_sk1_enabled.description) } guard let delegate = self.delegate else { return false } @@ -930,7 +930,7 @@ private extension PurchasesOrchestrator { // Don't log anything unless the flag was explicitly set. let allowSharingAppStoreAccountSet = self._allowSharingAppStoreAccount.value != nil if allowSharingAppStoreAccountSet, !self.allowSharingAppStoreAccount { - Logger.warn(Strings.restore.restorepurchases_called_with_allow_sharing_appstore_account_false_warning) + Logger.warn(Strings.purchase.restorepurchases_called_with_allow_sharing_appstore_account_false) } let currentAppUserID = self.appUserID diff --git a/Sources/Purchasing/StoreKit1/StoreKit1Wrapper.swift b/Sources/Purchasing/StoreKit1/StoreKit1Wrapper.swift index f5eff65711..5a43c43089 100644 --- a/Sources/Purchasing/StoreKit1/StoreKit1Wrapper.swift +++ b/Sources/Purchasing/StoreKit1/StoreKit1Wrapper.swift @@ -132,8 +132,7 @@ class StoreKit1Wrapper: NSObject { guard !transactions.isEmpty else { return } Logger.appleWarning( - "StoreKit1Wrapper: sending delegate \(transactions.count) existing transactions " + - "for Integration Tests." + Strings.storeKit.sk1_wrapper_notifying_delegate_of_existing_transactions(count: transactions.count) ) for transaction in transactions { diff --git a/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift b/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift index f67a42dcc4..0c56155818 100644 --- a/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift +++ b/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift @@ -1127,8 +1127,8 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { logger.verifyMessageWasNotLogged( Strings - .restore - .restorepurchases_called_with_allow_sharing_appstore_account_false_warning + .purchase + .restorepurchases_called_with_allow_sharing_appstore_account_false ) } @@ -1145,8 +1145,8 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { logger.verifyMessageWasNotLogged( Strings - .restore - .restorepurchases_called_with_allow_sharing_appstore_account_false_warning + .purchase + .restorepurchases_called_with_allow_sharing_appstore_account_false ) } @@ -1163,8 +1163,8 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { logger.verifyMessageWasLogged( Strings - .restore - .restorepurchases_called_with_allow_sharing_appstore_account_false_warning, + .purchase + .restorepurchases_called_with_allow_sharing_appstore_account_false, level: .warn ) }