[in_app_purchase]remove SKDownloadWrapper and related code. (#1474)

Since the decision to have Apple hosted content related features has not been made yet. We remove the SKDownloadWrapper and related code for now. 
diff --git a/packages/in_app_purchase/lib/src/billing_client_wrappers/purchase_wrapper.g.dart b/packages/in_app_purchase/lib/src/billing_client_wrappers/purchase_wrapper.g.dart
index 4af4b69..5504083 100644
--- a/packages/in_app_purchase/lib/src/billing_client_wrappers/purchase_wrapper.g.dart
+++ b/packages/in_app_purchase/lib/src/billing_client_wrappers/purchase_wrapper.g.dart
@@ -32,8 +32,8 @@
 
 PurchasesResultWrapper _$PurchasesResultWrapperFromJson(Map json) {
   return PurchasesResultWrapper(
-      responseCode: const BillingResponseConverter()
-          .fromJson(json['responseCode'] as int),
+      responseCode:
+          _$enumDecode(_$BillingResponseEnumMap, json['responseCode']),
       purchasesList: (json['purchasesList'] as List)
           .map((e) => PurchaseWrapper.fromJson(e as Map))
           .toList());
@@ -42,7 +42,33 @@
 Map<String, dynamic> _$PurchasesResultWrapperToJson(
         PurchasesResultWrapper instance) =>
     <String, dynamic>{
-      'responseCode':
-          const BillingResponseConverter().toJson(instance.responseCode),
+      'responseCode': _$BillingResponseEnumMap[instance.responseCode],
       'purchasesList': instance.purchasesList
     };
+
+T _$enumDecode<T>(Map<T, dynamic> enumValues, dynamic source) {
+  if (source == null) {
+    throw ArgumentError('A value must be provided. Supported values: '
+        '${enumValues.values.join(', ')}');
+  }
+  return enumValues.entries
+      .singleWhere((e) => e.value == source,
+          orElse: () => throw ArgumentError(
+              '`$source` is not one of the supported values: '
+              '${enumValues.values.join(', ')}'))
+      .key;
+}
+
+const _$BillingResponseEnumMap = <BillingResponse, dynamic>{
+  BillingResponse.featureNotSupported: -2,
+  BillingResponse.serviceDisconnected: -1,
+  BillingResponse.ok: 0,
+  BillingResponse.userCanceled: 1,
+  BillingResponse.serviceUnavailable: 2,
+  BillingResponse.billingUnavailable: 3,
+  BillingResponse.itemUnavailable: 4,
+  BillingResponse.developerError: 5,
+  BillingResponse.error: 6,
+  BillingResponse.itemAlreadyOwned: 7,
+  BillingResponse.itemNotOwned: 8
+};
diff --git a/packages/in_app_purchase/lib/src/billing_client_wrappers/sku_details_wrapper.g.dart b/packages/in_app_purchase/lib/src/billing_client_wrappers/sku_details_wrapper.g.dart
index 3d05983..087818d 100644
--- a/packages/in_app_purchase/lib/src/billing_client_wrappers/sku_details_wrapper.g.dart
+++ b/packages/in_app_purchase/lib/src/billing_client_wrappers/sku_details_wrapper.g.dart
@@ -20,7 +20,7 @@
       sku: json['sku'] as String,
       subscriptionPeriod: json['subscriptionPeriod'] as String,
       title: json['title'] as String,
-      type: const SkuTypeConverter().fromJson(json['type'] as String),
+      type: _$enumDecode(_$SkuTypeEnumMap, json['type']),
       isRewarded: json['isRewarded'] as bool);
 }
 
@@ -38,14 +38,32 @@
       'sku': instance.sku,
       'subscriptionPeriod': instance.subscriptionPeriod,
       'title': instance.title,
-      'type': const SkuTypeConverter().toJson(instance.type),
+      'type': _$SkuTypeEnumMap[instance.type],
       'isRewarded': instance.isRewarded
     };
 
+T _$enumDecode<T>(Map<T, dynamic> enumValues, dynamic source) {
+  if (source == null) {
+    throw ArgumentError('A value must be provided. Supported values: '
+        '${enumValues.values.join(', ')}');
+  }
+  return enumValues.entries
+      .singleWhere((e) => e.value == source,
+          orElse: () => throw ArgumentError(
+              '`$source` is not one of the supported values: '
+              '${enumValues.values.join(', ')}'))
+      .key;
+}
+
+const _$SkuTypeEnumMap = <SkuType, dynamic>{
+  SkuType.inapp: 'inapp',
+  SkuType.subs: 'subs'
+};
+
 SkuDetailsResponseWrapper _$SkuDetailsResponseWrapperFromJson(Map json) {
   return SkuDetailsResponseWrapper(
-      responseCode: const BillingResponseConverter()
-          .fromJson(json['responseCode'] as int),
+      responseCode:
+          _$enumDecode(_$BillingResponseEnumMap, json['responseCode']),
       skuDetailsList: (json['skuDetailsList'] as List)
           .map((e) => SkuDetailsWrapper.fromJson(e as Map))
           .toList());
@@ -54,7 +72,20 @@
 Map<String, dynamic> _$SkuDetailsResponseWrapperToJson(
         SkuDetailsResponseWrapper instance) =>
     <String, dynamic>{
-      'responseCode':
-          const BillingResponseConverter().toJson(instance.responseCode),
+      'responseCode': _$BillingResponseEnumMap[instance.responseCode],
       'skuDetailsList': instance.skuDetailsList
     };
+
+const _$BillingResponseEnumMap = <BillingResponse, dynamic>{
+  BillingResponse.featureNotSupported: -2,
+  BillingResponse.serviceDisconnected: -1,
+  BillingResponse.ok: 0,
+  BillingResponse.userCanceled: 1,
+  BillingResponse.serviceUnavailable: 2,
+  BillingResponse.billingUnavailable: 3,
+  BillingResponse.itemUnavailable: 4,
+  BillingResponse.developerError: 5,
+  BillingResponse.error: 6,
+  BillingResponse.itemAlreadyOwned: 7,
+  BillingResponse.itemNotOwned: 8
+};
diff --git a/packages/in_app_purchase/lib/src/in_app_purchase_connection/app_store_connection.dart b/packages/in_app_purchase/lib/src/in_app_purchase_connection/app_store_connection.dart
index 03f551d..962ed3d 100644
--- a/packages/in_app_purchase/lib/src/in_app_purchase_connection/app_store_connection.dart
+++ b/packages/in_app_purchase/lib/src/in_app_purchase_connection/app_store_connection.dart
@@ -206,8 +206,6 @@
     _restoreCompleter.complete(_restoredTransactions ?? []);
   }
 
-  void updatedDownloads({List<SKDownloadWrapper> downloads}) {}
-
   bool shouldAddStorePayment(
       {SKPaymentWrapper payment, SKProductWrapper product}) {
     // In this unified API, we always return true to keep it consistent with the behavior on Google Play.
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.dart
deleted file mode 100644
index 356e0c9..0000000
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.dart
+++ /dev/null
@@ -1,127 +0,0 @@
-import 'package:flutter/foundation.dart';
-import 'package:json_annotation/json_annotation.dart';
-import 'sk_payment_transaction_wrappers.dart';
-import 'sk_payment_queue_wrapper.dart';
-
-part 'sk_download_wrapper.g.dart';
-
-/// Dart wrapper around StoreKit's [SKDownload](https://developer.apple.com/documentation/storekit/skdownload?language=objc).
-///
-/// When a product is created in the App Store Connect, one or more download contents can be associated with it.
-/// When the product is purchased, a List of [SKDownloadWrapper] object will be present in an [SKPaymentTransactionWrapper] object.
-/// To download the content, add the [SKDownloadWrapper] objects to the payment queue and wait for the content to be downloaded.
-/// You can also read the [contentURL] to get the URL of the downloaded content after the download completes.
-/// Note that all downloaded files must be processed before the completion of the [SKPaymentTransactionWrapper]([SKPaymentQueueWrapper.finishTransaction] is called).
-/// After the transaction is complete, any [SKDownloadWrapper] object in the transaction will not be able to be added to the payment queue
-/// and the [contentURL ]of the [SKDownloadWrapper] object will be invalid.
-@JsonSerializable(nullable: true)
-class SKDownloadWrapper {
-  SKDownloadWrapper({
-    @required this.contentIdentifier,
-    @required this.state,
-    @required this.contentLength,
-    @required this.contentURL,
-    @required this.contentVersion,
-    @required this.transactionID,
-    @required this.progress,
-    @required this.timeRemaining,
-    @required this.downloadTimeUnknown,
-    @required this.error,
-  });
-
-  /// Constructs an instance of this from a key value map of data.
-  ///
-  /// The map needs to have named string keys with values matching the names and
-  /// types of all of the members on this class.
-  /// The `map` parameter must not be null.
-  factory SKDownloadWrapper.fromJson(Map map) {
-    assert(map != null);
-    return _$SKDownloadWrapperFromJson(map);
-  }
-
-  /// Identifies the downloadable content.
-  ///
-  /// It is specified in the App Store Connect when the downloadable content is created.
-  final String contentIdentifier;
-
-  /// The current download state.
-  ///
-  /// When the state changes, one of the [SKTransactionObserverWrapper] subclasses' observing methods should be triggered.
-  /// The developer should properly handle the downloadable content based on the state.
-  final SKDownloadState state;
-
-  /// Length of the content in bytes.
-  final int contentLength;
-
-  /// The URL string of the content.
-  final String contentURL;
-
-  /// Version of the content formatted as a series of dot-separated integers.
-  final String contentVersion;
-
-  /// The transaction ID of the transaction that is associated with the downloadable content.
-  final String transactionID;
-
-  /// The download progress, between 0.0 to 1.0.
-  final double progress;
-
-  /// The estimated time remaining for the download; if no good estimate is able to be made,
-  /// [downloadTimeUnknown] will be set to true.
-  final double timeRemaining;
-
-  /// true if [timeRemaining] cannot be estimated.
-  final bool downloadTimeUnknown;
-
-  /// The error that prevented the downloading; only available if the [transactionState] is [SKPaymentTransactionStateWrapper.failed].
-  final SKError error;
-
-  @override
-  bool operator ==(Object other) {
-    if (identical(other, this)) {
-      return true;
-    }
-    if (other.runtimeType != runtimeType) {
-      return false;
-    }
-    final SKDownloadWrapper typedOther = other;
-    return typedOther.contentIdentifier == contentIdentifier &&
-        typedOther.state == state &&
-        typedOther.contentLength == contentLength &&
-        typedOther.contentURL == contentURL &&
-        typedOther.contentVersion == contentVersion &&
-        typedOther.transactionID == transactionID &&
-        typedOther.progress == progress &&
-        typedOther.timeRemaining == timeRemaining &&
-        typedOther.downloadTimeUnknown == downloadTimeUnknown &&
-        typedOther.error == error;
-  }
-}
-
-/// Dart wrapper around StoreKit's [SKDownloadState](https://developer.apple.com/documentation/storekit/skdownloadstate?language=objc).
-///
-/// The state a download operation that can be in.
-enum SKDownloadState {
-  /// Indicates that downloadable content is waiting to start.
-  @JsonValue(0)
-  waiting,
-
-  /// The downloadable content is currently being downloaded
-  @JsonValue(1)
-  active,
-
-  /// The app paused the download.
-  @JsonValue(2)
-  pause,
-
-  /// The content is successfully downloaded.
-  @JsonValue(3)
-  finished,
-
-  /// Indicates that some error occurred while the content was being downloaded.
-  @JsonValue(4)
-  failed,
-
-  /// The app canceled the download.
-  @JsonValue(5)
-  cancelled,
-}
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.g.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.g.dart
deleted file mode 100644
index cc61e49..0000000
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_download_wrapper.g.dart
+++ /dev/null
@@ -1,66 +0,0 @@
-// GENERATED CODE - DO NOT MODIFY BY HAND
-
-part of 'sk_download_wrapper.dart';
-
-// **************************************************************************
-// JsonSerializableGenerator
-// **************************************************************************
-
-SKDownloadWrapper _$SKDownloadWrapperFromJson(Map json) {
-  return SKDownloadWrapper(
-      contentIdentifier: json['contentIdentifier'] as String,
-      state: _$enumDecodeNullable(_$SKDownloadStateEnumMap, json['state']),
-      contentLength: json['contentLength'] as int,
-      contentURL: json['contentURL'] as String,
-      contentVersion: json['contentVersion'] as String,
-      transactionID: json['transactionID'] as String,
-      progress: (json['progress'] as num)?.toDouble(),
-      timeRemaining: (json['timeRemaining'] as num)?.toDouble(),
-      downloadTimeUnknown: json['downloadTimeUnknown'] as bool,
-      error: json['error'] == null
-          ? null
-          : SKError.fromJson(json['error'] as Map));
-}
-
-Map<String, dynamic> _$SKDownloadWrapperToJson(SKDownloadWrapper instance) =>
-    <String, dynamic>{
-      'contentIdentifier': instance.contentIdentifier,
-      'state': _$SKDownloadStateEnumMap[instance.state],
-      'contentLength': instance.contentLength,
-      'contentURL': instance.contentURL,
-      'contentVersion': instance.contentVersion,
-      'transactionID': instance.transactionID,
-      'progress': instance.progress,
-      'timeRemaining': instance.timeRemaining,
-      'downloadTimeUnknown': instance.downloadTimeUnknown,
-      'error': instance.error
-    };
-
-T _$enumDecode<T>(Map<T, dynamic> enumValues, dynamic source) {
-  if (source == null) {
-    throw ArgumentError('A value must be provided. Supported values: '
-        '${enumValues.values.join(', ')}');
-  }
-  return enumValues.entries
-      .singleWhere((e) => e.value == source,
-          orElse: () => throw ArgumentError(
-              '`$source` is not one of the supported values: '
-              '${enumValues.values.join(', ')}'))
-      .key;
-}
-
-T _$enumDecodeNullable<T>(Map<T, dynamic> enumValues, dynamic source) {
-  if (source == null) {
-    return null;
-  }
-  return _$enumDecode<T>(enumValues, source);
-}
-
-const _$SKDownloadStateEnumMap = <SKDownloadState, dynamic>{
-  SKDownloadState.waiting: 0,
-  SKDownloadState.active: 1,
-  SKDownloadState.pause: 2,
-  SKDownloadState.finished: 3,
-  SKDownloadState.failed: 4,
-  SKDownloadState.cancelled: 5
-};
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.dart
index 89f4210..ea0caab 100644
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.dart
+++ b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.dart
@@ -10,7 +10,6 @@
 import 'package:flutter/services.dart';
 import 'sk_payment_transaction_wrappers.dart';
 import 'sk_product_wrapper.dart';
-import 'sk_download_wrapper.dart';
 
 part 'sk_payment_queue_wrapper.g.dart';
 
@@ -132,14 +131,6 @@
             _observer.paymentQueueRestoreCompletedTransactionsFinished();
           });
         }
-      case 'updatedDownloads':
-        {
-          final List<SKDownloadWrapper> downloads =
-              _getDownloadList(call.arguments);
-          return Future<void>(() {
-            _observer.updatedDownloads(downloads: downloads);
-          });
-        }
       case 'shouldAddStorePayment':
         {
           SKPaymentWrapper payment =
@@ -168,15 +159,6 @@
         .toList();
     return transactions;
   }
-
-  // Get download wrapper object list from arguments.
-  List<SKDownloadWrapper> _getDownloadList(dynamic arguments) {
-    final List<SKDownloadWrapper> downloads = arguments
-        .map<SKDownloadWrapper>(
-            (dynamic map) => SKDownloadWrapper.fromJson(map))
-        .toList();
-    return downloads;
-  }
 }
 
 /// Dart wrapper around StoreKit's [NSError](https://developer.apple.com/documentation/foundation/nserror?language=objc).
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.g.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.g.dart
index 3452a5b..d2a9d51 100644
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.g.dart
+++ b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_queue_wrapper.g.dart
@@ -10,9 +10,8 @@
   return SKError(
       code: json['code'] as int,
       domain: json['domain'] as String,
-      userInfo: (json['userInfo'] as Map)?.map(
-        (k, e) => MapEntry(k as String, e),
-      ));
+      userInfo:
+          (json['userInfo'] as Map)?.map((k, e) => MapEntry(k as String, e)));
 }
 
 Map<String, dynamic> _$SKErrorToJson(SKError instance) => <String, dynamic>{
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.dart
index 105d7f4..08c7724 100644
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.dart
+++ b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.dart
@@ -2,12 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:collection/collection.dart';
 import 'package:flutter/foundation.dart';
 import 'package:in_app_purchase/src/in_app_purchase_connection/purchase_details.dart';
 import 'package:json_annotation/json_annotation.dart';
 import 'sk_product_wrapper.dart';
-import 'sk_download_wrapper.dart';
 import 'sk_payment_queue_wrapper.dart';
 import 'enum_converters.dart';
 
@@ -29,9 +27,6 @@
   /// Triggered when payment queue has finished sending restored transactions.
   void paymentQueueRestoreCompletedTransactionsFinished();
 
-  /// Triggered when any download objects are updated.
-  void updatedDownloads({List<SKDownloadWrapper> downloads});
-
   /// Triggered when a user initiated an in-app purchase from App Store.
   ///
   /// Return `true` to continue the transaction in your app. If you have multiple [SKTransactionObserverWrapper]s, the transaction
@@ -87,7 +82,6 @@
     @required this.originalTransaction,
     @required this.transactionTimeStamp,
     @required this.transactionIdentifier,
-    @required this.downloads,
     @required this.error,
   });
 
@@ -147,14 +141,6 @@
   /// The value of this string corresponds to the same property in the receipt.
   final String transactionIdentifier;
 
-  /// An array of the [SKDownloadWrapper] object of this transaction.
-  ///
-  /// Only available if the transaction contains downloadable contents.
-  ///
-  /// It is only defined when the [transactionState] is [SKPaymentTransactionStateWrapper.purchased].
-  /// Must be used to download the transaction's content before the transaction is finished.
-  final List<SKDownloadWrapper> downloads;
-
   /// The error object, only available if the [transactionState] is [SKPaymentTransactionStateWrapper.failed].
   final SKError error;
 
@@ -172,7 +158,6 @@
         typedOther.originalTransaction == originalTransaction &&
         typedOther.transactionTimeStamp == transactionTimeStamp &&
         typedOther.transactionIdentifier == transactionIdentifier &&
-        DeepCollectionEquality().equals(typedOther.downloads, downloads) &&
         typedOther.error == error;
   }
 
diff --git a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.g.dart b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.g.dart
index cbd72da..c2d859c 100644
--- a/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.g.dart
+++ b/packages/in_app_purchase/lib/src/store_kit_wrappers/sk_payment_transaction_wrappers.g.dart
@@ -19,9 +19,6 @@
               json['originalTransaction'] as Map),
       transactionTimeStamp: (json['transactionTimeStamp'] as num)?.toDouble(),
       transactionIdentifier: json['transactionIdentifier'] as String,
-      downloads: (json['downloads'] as List)
-          ?.map((e) => e == null ? null : SKDownloadWrapper.fromJson(e as Map))
-          ?.toList(),
       error: json['error'] == null
           ? null
           : SKError.fromJson(json['error'] as Map));
@@ -36,7 +33,6 @@
       'originalTransaction': instance.originalTransaction,
       'transactionTimeStamp': instance.transactionTimeStamp,
       'transactionIdentifier': instance.transactionIdentifier,
-      'downloads': instance.downloads,
       'error': instance.error
     };
 
diff --git a/packages/in_app_purchase/lib/store_kit_wrappers.dart b/packages/in_app_purchase/lib/store_kit_wrappers.dart
index b5a21b5..12af4ba 100644
--- a/packages/in_app_purchase/lib/store_kit_wrappers.dart
+++ b/packages/in_app_purchase/lib/store_kit_wrappers.dart
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-export 'src/store_kit_wrappers/sk_download_wrapper.dart';
 export 'src/store_kit_wrappers/sk_payment_queue_wrapper.dart';
 export 'src/store_kit_wrappers/sk_payment_transaction_wrappers.dart';
 export 'src/store_kit_wrappers/sk_product_wrapper.dart';
diff --git a/packages/in_app_purchase/test/in_app_purchase_connection/app_store_connection_test.dart b/packages/in_app_purchase/test/in_app_purchase_connection/app_store_connection_test.dart
index 2dc32f7..4f44712 100644
--- a/packages/in_app_purchase/test/in_app_purchase_connection/app_store_connection_test.dart
+++ b/packages/in_app_purchase/test/in_app_purchase_connection/app_store_connection_test.dart
@@ -287,7 +287,6 @@
       originalTransaction: dummyTransaction,
       transactionTimeStamp: 123123123.022,
       transactionState: SKPaymentTransactionStateWrapper.restored,
-      downloads: null,
       error: null,
     );
     SKPaymentTransactionWrapper tran2 = SKPaymentTransactionWrapper(
@@ -296,7 +295,6 @@
       originalTransaction: dummyTransaction,
       transactionTimeStamp: 123123123.022,
       transactionState: SKPaymentTransactionStateWrapper.restored,
-      downloads: null,
       error: null,
     );
 
@@ -314,7 +312,6 @@
         transactionTimeStamp: 123123.121,
         transactionIdentifier: id,
         error: null,
-        downloads: null,
         originalTransaction: null);
   }
 
@@ -326,7 +323,6 @@
         transactionTimeStamp: 123123.121,
         transactionIdentifier: id,
         error: null,
-        downloads: null,
         originalTransaction: null);
   }
 
@@ -340,7 +336,6 @@
             code: 0,
             domain: 'ios_domain',
             userInfo: {'message': 'an error message'}),
-        downloads: null,
         originalTransaction: null);
   }
 
diff --git a/packages/in_app_purchase/test/store_kit_wrappers/sk_methodchannel_apis_test.dart b/packages/in_app_purchase/test/store_kit_wrappers/sk_methodchannel_apis_test.dart
index e908c5a..cc259f9 100644
--- a/packages/in_app_purchase/test/store_kit_wrappers/sk_methodchannel_apis_test.dart
+++ b/packages/in_app_purchase/test/store_kit_wrappers/sk_methodchannel_apis_test.dart
@@ -177,8 +177,6 @@
 
   void paymentQueueRestoreCompletedTransactionsFinished() {}
 
-  void updatedDownloads({List<SKDownloadWrapper> downloads}) {}
-
   bool shouldAddStorePayment(
       {SKPaymentWrapper payment, SKProductWrapper product}) {
     return true;
diff --git a/packages/in_app_purchase/test/store_kit_wrappers/sk_product_test.dart b/packages/in_app_purchase/test/store_kit_wrappers/sk_product_test.dart
index a426b94..6ed5e84 100644
--- a/packages/in_app_purchase/test/store_kit_wrappers/sk_product_test.dart
+++ b/packages/in_app_purchase/test/store_kit_wrappers/sk_product_test.dart
@@ -121,12 +121,6 @@
       expect(error, equals(dummyError));
     });
 
-    test('Should construct correct SKDownloadWrapper from json', () {
-      SKDownloadWrapper download =
-          SKDownloadWrapper.fromJson(buildDownloadMap(dummyDownload));
-      expect(download, equals(dummyDownload));
-    });
-
     test('Should construct correct SKTransactionWrapper from json', () {
       SKPaymentTransactionWrapper transaction =
           SKPaymentTransactionWrapper.fromJson(
diff --git a/packages/in_app_purchase/test/store_kit_wrappers/sk_test_stub_objects.dart b/packages/in_app_purchase/test/store_kit_wrappers/sk_test_stub_objects.dart
index 7fc8363..af2a881 100644
--- a/packages/in_app_purchase/test/store_kit_wrappers/sk_test_stub_objects.dart
+++ b/packages/in_app_purchase/test/store_kit_wrappers/sk_test_stub_objects.dart
@@ -12,18 +12,7 @@
     simulatesAskToBuyInSandbox: true);
 final SKError dummyError =
     SKError(code: 111, domain: 'dummy-domain', userInfo: {'key': 'value'});
-final SKDownloadWrapper dummyDownload = SKDownloadWrapper(
-  contentIdentifier: 'id',
-  state: SKDownloadState.failed,
-  contentLength: 32,
-  contentURL: 'https://download.com',
-  contentVersion: '0.0.1',
-  transactionID: 'tranID',
-  progress: 0.6,
-  timeRemaining: 1231231,
-  downloadTimeUnknown: false,
-  error: dummyError,
-);
+
 final SKPaymentTransactionWrapper dummyOriginalTransaction =
     SKPaymentTransactionWrapper(
   transactionState: SKPaymentTransactionStateWrapper.purchased,
@@ -31,7 +20,6 @@
   originalTransaction: null,
   transactionTimeStamp: 1231231231.00,
   transactionIdentifier: '123123',
-  downloads: [dummyDownload],
   error: dummyError,
 );
 final SKPaymentTransactionWrapper dummyTransaction =
@@ -41,7 +29,6 @@
   originalTransaction: dummyOriginalTransaction,
   transactionTimeStamp: 1231231231.00,
   transactionIdentifier: '123123',
-  downloads: [dummyDownload],
   error: dummyError,
 );
 
@@ -142,21 +129,6 @@
   };
 }
 
-Map<String, dynamic> buildDownloadMap(SKDownloadWrapper download) {
-  return {
-    'contentIdentifier': download.contentIdentifier,
-    'state': SKDownloadState.values.indexOf(download.state),
-    'contentLength': download.contentLength,
-    'contentURL': download.contentURL,
-    'contentVersion': download.contentVersion,
-    'transactionID': download.transactionID,
-    'progress': download.progress,
-    'timeRemaining': download.timeRemaining,
-    'downloadTimeUnknown': download.downloadTimeUnknown,
-    'error': buildErrorMap(download.error)
-  };
-}
-
 Map<String, dynamic> buildTransactionMap(
     SKPaymentTransactionWrapper transaction) {
   if (transaction == null) {
@@ -171,9 +143,5 @@
     'transactionIdentifier': transaction.transactionIdentifier,
     'error': buildErrorMap(transaction.error),
   };
-  List downloadList = transaction.downloads.map((SKDownloadWrapper download) {
-    return buildDownloadMap(download);
-  }).toList();
-  map['downloads'] = downloadList;
   return map;
 }