Bluetooth File Transfer

Bluetooth File Transfer

Released 6 years ago , Last update 6 years ago

File transfer between two iOS devices via Bluetooth

BTFileTransfer is a subclass of NSObject that lets you transfer any kind of data (from simple text to complex files) via Bluetooth.

Great for "bumping" a vCard or settings between two devices.

The demo app included with your purchase lets you send photos from one iOS device to another (tested and confirmed working on iPhone, iPad and iPod Touch).

Video of the demo app running on iPhone 4 and iPad 2

Deployment target: Tested with iOS 5 and later

ARC compatible

Bonus 1: Buyers of the developer license can request features that might be implemented later

Bonus 2: Demo app "BTChat" available to everyone soon after release (like Messages app but Bluetooth) [Screenshot]

  • 5 1
  • 4 0
  • 3 0
  • 2 0
  • 1 0
1 Reviews Read Reviews


14 day 14-day money-back guarantee


Application License

  • Perpetual license

  • unlimited applications

  • Can distribute binary products only

  • Commercial use

  • 6 months support


Drag both files – BTFileTransfer.h and BTFileTransfer.m into your project and link against GameKit.framework.


Create a new instance of BTFileTransfer like this

_fileTransfer = [[BTFileTransfer alloc] init];

and assign "self" as the delegate of BTFileTransfer like this

_fileTransfer.delegate = self;

Implement at least the required delegate method of the BTFileTransferDelegate protocol. According to the header it is

- (void)fileReceived:(NSData *)data {


"Pair" by calling

[_fileTransfer pair];

After the delegate method

- (void)peerConnected:(NSString *)displayName {


got called you can send data or a file using one of the two available methods:

UIImage *image;
NSError *error;

[_fileTransfer sendData:UIImageJPEGRepresentation(image, 0.8) error:&error];

Like that you can also send strings, arrays or a dictionary.

To send a file from the local filesystem:

NSString *path;
NSError *error;

[_fileTransfer sendFile:path error:&error];

Advanced properties

@property (strong) NSString *displayName;

Human-readable name identifying the current device

Device name is used if not set

Advanced delegate methods

- (void)fileTransferInProgress:(unsigned int)expectedLength;

Called when receiving a file on the device receiving it.

You can present the user with an alert telling him the size of the file.

2 licenses, starting from From » $19.99 View Licenses

Get A Quote

What do you need?
  • Custom development
  • Integration
  • Customization / Reskinning
  • Consultation
When do you need it?
  • Soon
  • Next week
  • Next month
  • Anytime

Thanks for getting in touch!

Your quote details have been received and we'll get back to you soon.

Or enter your name and Email
  • P Pierre License holderApplication License
    6 month support
    Purchased on Sep 15, 2014
    4 years ago
    It works with iOS 8?
  • M Mahendra 4 years ago
    Does this work with iOS7?
  • J Jon License holderApplication License
    6 month support
    Purchased on Nov 1, 2013
    4 years ago
    Are you still in business? I ask because there seems to be no activity on this site for over a year. Also, what exactly do I get? Do I get source files to be included in my apps to share files?
    • MB Max Bäumle Publisher 4 years ago
      Yes & yes!
    • J Jon 4 years ago
      Awesome! Thank you - Max! So I want to transfer sqlite database between my iPhone app to my iPad app. The files might be large. Do think this is a good solution for me?
    • MB Max Bäumle Publisher 4 years ago
      It is definitely a solution worth trying. Remember, Binpress offers a limited money back guarantee you can always use if you feel unsatisfied with the product.
    • J Jon 4 years ago
      Sounds Great! I will give it a try and if works I will provide you with an outstanding review. You fast replies to this has been great - Very Good Customer Service. Thank You!
    • J Jon 4 years ago
      Just sent a support ticket. You may not know this, but iOS 7 has deprecated the GKPeerPickerController, GKSession, and other GameKit items. Any work arounds?