hunk.code_window: ### If you choose to build for Android
   The first time you build the project you will be asked whether you'd like to upload a keystore or have us handle it for you. If you don't know what a keystore is, just leave it to us. Otherwise, feel free to upload your own.
   ```javascript
   [exp] No currently active or previous builds for this project.
   Would you like to upload a keystore or have us generate one for you?
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit: ```bash
  
hunk.file_path: docs/versions/v18.0.0/guides/building-standalone-apps.md
hunk.type: replace
file: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  #import <Foundation/Foundation.h>
  
  typedef void (^ABI30_0_0RCTMultipartCallback)(NSDictionary *headers, NSData *content, BOOL done);
  typedef void (^ABI30_0_0RCTMultipartProgressCallback)(NSDictionary *headers, NSNumber *loaded, NSNumber *total);
  
  
  // ABI30_0_0RCTMultipartStreamReader can be used to parse responses with Content-Type: multipart/mixed
  // See https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
  @interface ABI30_0_0RCTMultipartStreamReader : NSObject
  
  - (instancetype)initWithInputStream:(NSInputStream *)stream boundary:(NSString *)boundary;
  - (BOOL)readAllPartsWithCompletionCallback:(ABI30_0_0RCTMultipartCallback)callback
                            progressCallback:(ABI30_0_0RCTMultipartProgressCallback)progressCallback;
  
  @end
  