diff --git a/packages/in_app_purchase/CHANGELOG.md b/packages/in_app_purchase/CHANGELOG.md index 2a4d6a9e0960..940909b10d0d 100644 --- a/packages/in_app_purchase/CHANGELOG.md +++ b/packages/in_app_purchase/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.1+5 + +* Define clang module for iOS. + ## 0.2.1+4 * Update and migrate iOS example project. diff --git a/packages/in_app_purchase/example/ios/Runner.xcodeproj/project.pbxproj b/packages/in_app_purchase/example/ios/Runner.xcodeproj/project.pbxproj index 8ab33048c9a3..65c38e4c31b4 100644 --- a/packages/in_app_purchase/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/in_app_purchase/example/ios/Runner.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; A5279298219369C600FF69E6 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5279297219369C600FF69E6 /* StoreKit.framework */; }; A59001A721E69658004A3E5E /* InAppPurchasePluginTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59001A621E69658004A3E5E /* InAppPurchasePluginTest.m */; }; + F78AF3142342BC89008449C7 /* PaymentQueueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F78AF3132342BC89008449C7 /* PaymentQueueTest.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -56,10 +57,10 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; - 688DE35021F2A5A100EA2684 /* TranslatorTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TranslatorTest.m; sourceTree = ""; }; - 6896B34521E9363700D37AEF /* ProductRequestHandlerTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProductRequestHandlerTest.m; sourceTree = ""; }; - 6896B34A21EEB4B800D37AEF /* Stubs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Stubs.h; sourceTree = ""; }; - 6896B34B21EEB4B800D37AEF /* Stubs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Stubs.m; sourceTree = ""; }; + 688DE35021F2A5A100EA2684 /* TranslatorTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = TranslatorTest.m; path = ../../../ios/Tests/TranslatorTest.m; sourceTree = ""; }; + 6896B34521E9363700D37AEF /* ProductRequestHandlerTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ProductRequestHandlerTest.m; path = ../../../ios/Tests/ProductRequestHandlerTest.m; sourceTree = ""; }; + 6896B34A21EEB4B800D37AEF /* Stubs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Stubs.h; path = ../../../ios/Tests/Stubs.h; sourceTree = ""; }; + 6896B34B21EEB4B800D37AEF /* Stubs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Stubs.m; path = ../../../ios/Tests/Stubs.m; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -74,11 +75,12 @@ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A5279297219369C600FF69E6 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; A59001A421E69658004A3E5E /* in_app_purchase_pluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = in_app_purchase_pluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - A59001A621E69658004A3E5E /* InAppPurchasePluginTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InAppPurchasePluginTest.m; sourceTree = ""; }; + A59001A621E69658004A3E5E /* InAppPurchasePluginTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = InAppPurchasePluginTest.m; path = ../../../ios/Tests/InAppPurchasePluginTest.m; sourceTree = ""; }; A59001A821E69658004A3E5E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B2AB6BE1D4E2232AB5D4A002 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BE95F46E12942F78BF67E55B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; DE7EEEE26E27ACC04BA9951D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + F78AF3132342BC89008449C7 /* PaymentQueueTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PaymentQueueTest.m; path = ../../../ios/Tests/PaymentQueueTest.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,6 +177,7 @@ children = ( A59001A621E69658004A3E5E /* InAppPurchasePluginTest.m */, 6896B34521E9363700D37AEF /* ProductRequestHandlerTest.m */, + F78AF3132342BC89008449C7 /* PaymentQueueTest.m */, A59001A821E69658004A3E5E /* Info.plist */, 6896B34A21EEB4B800D37AEF /* Stubs.h */, 6896B34B21EEB4B800D37AEF /* Stubs.m */, @@ -379,6 +382,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + F78AF3142342BC89008449C7 /* PaymentQueueTest.m in Sources */, 6896B34621E9363700D37AEF /* ProductRequestHandlerTest.m in Sources */, 688DE35121F2A5A100EA2684 /* TranslatorTest.m in Sources */, A59001A721E69658004A3E5E /* InAppPurchasePluginTest.m in Sources */, @@ -575,23 +579,18 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = in_app_purchase_pluginTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "sample.changme.in-app-purchase-pluginTests"; PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/Runner"; }; name = Debug; @@ -601,22 +600,17 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = in_app_purchase_pluginTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "sample.changme.in-app-purchase-pluginTests"; PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/Runner"; }; name = Release; diff --git a/packages/in_app_purchase/ios/Classes/FIAPReceiptManager.h b/packages/in_app_purchase/ios/Classes/FIAPReceiptManager.h index 19ab4f105bab..c5b67756bad0 100644 --- a/packages/in_app_purchase/ios/Classes/FIAPReceiptManager.h +++ b/packages/in_app_purchase/ios/Classes/FIAPReceiptManager.h @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN @interface FIAPReceiptManager : NSObject -- (NSString *)retrieveReceiptWithError:(FlutterError *_Nullable *_Nullable)error; +- (nullable NSString *)retrieveReceiptWithError:(FlutterError *_Nullable *_Nullable)error; @end diff --git a/packages/in_app_purchase/ios/Classes/InAppPurchasePlugin.m b/packages/in_app_purchase/ios/Classes/InAppPurchasePlugin.m index 9934cf8ef1be..eb158338a752 100644 --- a/packages/in_app_purchase/ios/Classes/InAppPurchasePlugin.m +++ b/packages/in_app_purchase/ios/Classes/InAppPurchasePlugin.m @@ -154,7 +154,7 @@ - (void)addPayment:(FlutterMethodCall *)call result:(FlutterResult)result { SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product]; payment.applicationUsername = [paymentMap objectForKey:@"applicationUsername"]; NSNumber *quantity = [paymentMap objectForKey:@"quantity"]; - payment.quantity = quantity ? quantity.integerValue : 1; + payment.quantity = (quantity != nil) ? quantity.integerValue : 1; if (@available(iOS 8.3, *)) { payment.simulatesAskToBuyInSandbox = [[paymentMap objectForKey:@"simulatesAskToBuyInSandBox"] boolValue]; diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/InAppPurchasePluginTest.m b/packages/in_app_purchase/ios/Tests/InAppPurchasePluginTest.m similarity index 99% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/InAppPurchasePluginTest.m rename to packages/in_app_purchase/ios/Tests/InAppPurchasePluginTest.m index db7c1a88a4c8..e8a8885fdb84 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/InAppPurchasePluginTest.m +++ b/packages/in_app_purchase/ios/Tests/InAppPurchasePluginTest.m @@ -4,9 +4,10 @@ #import #import "FIAPaymentQueueHandler.h" -#import "InAppPurchasePlugin.h" #import "Stubs.h" +@import in_app_purchase; + @interface InAppPurchasePluginTest : XCTestCase @property(strong, nonatomic) InAppPurchasePlugin* plugin; diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/PaymentQueueTest.m b/packages/in_app_purchase/ios/Tests/PaymentQueueTest.m similarity index 97% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/PaymentQueueTest.m rename to packages/in_app_purchase/ios/Tests/PaymentQueueTest.m index d3935a19a43c..7c8f4fce9af9 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/PaymentQueueTest.m +++ b/packages/in_app_purchase/ios/Tests/PaymentQueueTest.m @@ -3,9 +3,10 @@ // found in the LICENSE file. #import -#import "FIAPaymentQueueHandler.h" #import "Stubs.h" +@import in_app_purchase; + @interface PaymentQueueTest : XCTestCase @property(strong, nonatomic) NSDictionary *periodMap; @@ -59,7 +60,6 @@ - (void)testTransactionPurchased { return YES; } updatedDownloads:nil]; - handler.testing = YES; [queue addTransactionObserver:handler]; SKPayment *payment = [SKPayment paymentWithProduct:[[SKProductStub alloc] initWithMap:self.productResponseMap]]; @@ -87,7 +87,6 @@ - (void)testTransactionFailed { return YES; } updatedDownloads:nil]; - handler.testing = YES; [queue addTransactionObserver:handler]; SKPayment *payment = [SKPayment paymentWithProduct:[[SKProductStub alloc] initWithMap:self.productResponseMap]]; @@ -115,7 +114,6 @@ - (void)testTransactionRestored { return YES; } updatedDownloads:nil]; - handler.testing = YES; [queue addTransactionObserver:handler]; SKPayment *payment = [SKPayment paymentWithProduct:[[SKProductStub alloc] initWithMap:self.productResponseMap]]; @@ -143,7 +141,6 @@ - (void)testTransactionPurchasing { return YES; } updatedDownloads:nil]; - handler.testing = YES; [queue addTransactionObserver:handler]; SKPayment *payment = [SKPayment paymentWithProduct:[[SKProductStub alloc] initWithMap:self.productResponseMap]]; @@ -171,7 +168,6 @@ - (void)testTransactionDeferred { return YES; } updatedDownloads:nil]; - handler.testing = YES; [queue addTransactionObserver:handler]; SKPayment *payment = [SKPayment paymentWithProduct:[[SKProductStub alloc] initWithMap:self.productResponseMap]]; diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/ProductRequestHandlerTest.m b/packages/in_app_purchase/ios/Tests/ProductRequestHandlerTest.m similarity index 99% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/ProductRequestHandlerTest.m rename to packages/in_app_purchase/ios/Tests/ProductRequestHandlerTest.m index 09228a3cd4e3..5e214e8c795e 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/ProductRequestHandlerTest.m +++ b/packages/in_app_purchase/ios/Tests/ProductRequestHandlerTest.m @@ -3,9 +3,10 @@ // found in the LICENSE file. #import -#import "FIAPRequestHandler.h" #import "Stubs.h" +@import in_app_purchase; + #pragma tests start here @interface RequestHandlerTest : XCTestCase diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.h b/packages/in_app_purchase/ios/Tests/Stubs.h similarity index 93% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.h rename to packages/in_app_purchase/ios/Tests/Stubs.h index 61d5fa36fa2f..a7d13958b347 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.h +++ b/packages/in_app_purchase/ios/Tests/Stubs.h @@ -4,15 +4,16 @@ #import #import -#import "FIAPReceiptManager.h" -#import "FIAPRequestHandler.h" -#import "InAppPurchasePlugin.h" + +@import in_app_purchase; NS_ASSUME_NONNULL_BEGIN +API_AVAILABLE(ios(11.2), macos(10.13.2)) @interface SKProductSubscriptionPeriodStub : SKProductSubscriptionPeriod - (instancetype)initWithMap:(NSDictionary *)map; @end +API_AVAILABLE(ios(11.2), macos(10.13.2)) @interface SKProductDiscountStub : SKProductDiscount - (instancetype)initWithMap:(NSDictionary *)map; @end diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.m b/packages/in_app_purchase/ios/Tests/Stubs.m similarity index 92% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.m rename to packages/in_app_purchase/ios/Tests/Stubs.m index dc4998831441..a2c65b88adbe 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/Stubs.m +++ b/packages/in_app_purchase/ios/Tests/Stubs.m @@ -51,14 +51,16 @@ - (instancetype)initWithMap:(NSDictionary *)map { NSLocale *locale = NSLocale.systemLocale; [self setValue:locale ?: [NSNull null] forKey:@"priceLocale"]; [self setValue:map[@"downloadContentLengths"] ?: @(0) forKey:@"downloadContentLengths"]; - SKProductSubscriptionPeriodStub *period = - [[SKProductSubscriptionPeriodStub alloc] initWithMap:map[@"subscriptionPeriod"]]; - [self setValue:period ?: [NSNull null] forKey:@"subscriptionPeriod"]; - SKProductDiscountStub *discount = - [[SKProductDiscountStub alloc] initWithMap:map[@"introductoryPrice"]]; - [self setValue:discount ?: [NSNull null] forKey:@"introductoryPrice"]; - [self setValue:map[@"subscriptionGroupIdentifier"] ?: [NSNull null] - forKey:@"subscriptionGroupIdentifier"]; + if (@available(iOS 11.2, *)) { + SKProductSubscriptionPeriodStub *period = + [[SKProductSubscriptionPeriodStub alloc] initWithMap:map[@"subscriptionPeriod"]]; + [self setValue:period ?: [NSNull null] forKey:@"subscriptionPeriod"]; + SKProductDiscountStub *discount = + [[SKProductDiscountStub alloc] initWithMap:map[@"introductoryPrice"]]; + [self setValue:discount ?: [NSNull null] forKey:@"introductoryPrice"]; + [self setValue:map[@"subscriptionGroupIdentifier"] ?: [NSNull null] + forKey:@"subscriptionGroupIdentifier"]; + } } return self; } diff --git a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/TranslatorTest.m b/packages/in_app_purchase/ios/Tests/TranslatorTest.m similarity index 77% rename from packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/TranslatorTest.m rename to packages/in_app_purchase/ios/Tests/TranslatorTest.m index 7d7fad5c2ce4..135c7f3616f4 100644 --- a/packages/in_app_purchase/example/ios/in_app_purchase_pluginTests/TranslatorTest.m +++ b/packages/in_app_purchase/ios/Tests/TranslatorTest.m @@ -3,14 +3,15 @@ // found in the LICENSE file. #import -#import "FIAObjectTranslator.h" #import "Stubs.h" +@import in_app_purchase; + @interface TranslatorTest : XCTestCase @property(strong, nonatomic) NSDictionary *periodMap; @property(strong, nonatomic) NSDictionary *discountMap; -@property(strong, nonatomic) NSDictionary *productMap; +@property(strong, nonatomic) NSMutableDictionary *productMap; @property(strong, nonatomic) NSDictionary *productResponseMap; @property(strong, nonatomic) NSDictionary *paymentMap; @property(strong, nonatomic) NSDictionary *transactionMap; @@ -30,16 +31,23 @@ - (void)setUp { @"subscriptionPeriod" : self.periodMap, @"paymentMode" : @1 }; - self.productMap = @{ + + self.productMap = [[NSMutableDictionary alloc] initWithDictionary:@{ @"price" : @"1", @"priceLocale" : [FIAObjectTranslator getMapFromNSLocale:NSLocale.systemLocale], @"productIdentifier" : @"123", @"localizedTitle" : @"title", @"localizedDescription" : @"des", - @"subscriptionPeriod" : self.periodMap, - @"introductoryPrice" : self.discountMap, - @"subscriptionGroupIdentifier" : @"com.group" - }; + }]; + if (@available(iOS 11.2, *)) { + self.productMap[@"subscriptionPeriod"] = self.periodMap; + self.productMap[@"introductoryPrice"] = self.discountMap; + } + + if (@available(iOS 12.0, *)) { + self.productMap[@"subscriptionGroupIdentifier"] = @"com.group"; + } + self.productResponseMap = @{@"products" : @[ self.productMap ], @"invalidProductIdentifiers" : @[]}; self.paymentMap = @{ @@ -79,16 +87,20 @@ - (void)setUp { } - (void)testSKProductSubscriptionPeriodStubToMap { - SKProductSubscriptionPeriodStub *period = - [[SKProductSubscriptionPeriodStub alloc] initWithMap:self.periodMap]; - NSDictionary *map = [FIAObjectTranslator getMapFromSKProductSubscriptionPeriod:period]; - XCTAssertEqualObjects(map, self.periodMap); + if (@available(iOS 11.2, *)) { + SKProductSubscriptionPeriodStub *period = + [[SKProductSubscriptionPeriodStub alloc] initWithMap:self.periodMap]; + NSDictionary *map = [FIAObjectTranslator getMapFromSKProductSubscriptionPeriod:period]; + XCTAssertEqualObjects(map, self.periodMap); + } } - (void)testSKProductDiscountStubToMap { - SKProductDiscountStub *discount = [[SKProductDiscountStub alloc] initWithMap:self.discountMap]; - NSDictionary *map = [FIAObjectTranslator getMapFromSKProductDiscount:discount]; - XCTAssertEqualObjects(map, self.discountMap); + if (@available(iOS 11.2, *)) { + SKProductDiscountStub *discount = [[SKProductDiscountStub alloc] initWithMap:self.discountMap]; + NSDictionary *map = [FIAObjectTranslator getMapFromSKProductDiscount:discount]; + XCTAssertEqualObjects(map, self.discountMap); + } } - (void)testProductToMap { @@ -125,9 +137,11 @@ - (void)testError { } - (void)testLocaleToMap { - NSLocale *system = NSLocale.systemLocale; - NSDictionary *map = [FIAObjectTranslator getMapFromNSLocale:system]; - XCTAssertEqualObjects(map[@"currencySymbol"], system.currencySymbol); + if (@available(iOS 10.0, *)) { + NSLocale *system = NSLocale.systemLocale; + NSDictionary *map = [FIAObjectTranslator getMapFromNSLocale:system]; + XCTAssertEqualObjects(map[@"currencySymbol"], system.currencySymbol); + } } @end diff --git a/packages/in_app_purchase/ios/in_app_purchase.podspec b/packages/in_app_purchase/ios/in_app_purchase.podspec index 1f30bb16949a..8b393d71a771 100644 --- a/packages/in_app_purchase/ios/in_app_purchase.podspec +++ b/packages/in_app_purchase/ios/in_app_purchase.podspec @@ -15,7 +15,10 @@ A new flutter plugin project. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - - s.ios.deployment_target = '8.0' -end + s.platform = :ios, '8.0' + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'armv7 arm64 x86_64' } + s.test_spec 'Tests' do |test_spec| + test_spec.source_files = 'Tests/**/*' + end +end diff --git a/packages/in_app_purchase/pubspec.yaml b/packages/in_app_purchase/pubspec.yaml index a53d74c0f2b9..cf59c4b4ef71 100644 --- a/packages/in_app_purchase/pubspec.yaml +++ b/packages/in_app_purchase/pubspec.yaml @@ -2,7 +2,7 @@ name: in_app_purchase description: A Flutter plugin for in-app purchases. Exposes APIs for making in-app purchases through the App Store and Google Play. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/in_app_purchase -version: 0.2.1+4 +version: 0.2.1+5 dependencies: diff --git a/script/lint_darwin_plugins.sh b/script/lint_darwin_plugins.sh index 5e5d018c391c..39794882ef4a 100755 --- a/script/lint_darwin_plugins.sh +++ b/script/lint_darwin_plugins.sh @@ -53,7 +53,6 @@ function lint_packages() { 'google_maps_flutter' 'google_sign_in' 'image_picker' - 'in_app_purchase' 'instrumentation_adapter' 'local_auth' 'package_info'