     /**
         Returns App Store Receipt data as NSData if present or nil
     */
+    @objc
     public func appStoreReceiptData() -> Data? {
         if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL, let receiptData = try? Data(contentsOf: appStoreReceiptURL) {
             return receiptData

        - parameter completion:     Called when the product request succeed
        - parameter failure:        Called when the product request fail, if provided
    */
    public func fetchProductsWithIdentifiers(_ identifiers: Set<String>, completion: @escaping ProductsResult, failure: Failure? = nil) {
        guard self.productsRequest == nil else {
            return

    /**
        Handles transaction updates
    */
    @objc
    public var transactionsUpdateHandler: TransactionsUpdateCompletion?
    /**
        Handles transaction removals
