The first step would be to debug this issue on the remote device to find out why the connection is dropping.
While environmental factors and signal power could be a cause, especially if things are running at the edge of availability, this could also be due to the connection parameters and how these would differ in iOS vs other devices.
To begin with, make sure you have referred to the Accessory Design
Guidelines for Apple
Devices Section 52: Bluetooth Low Energy (BLE)
Apple devices have a certain set of connection parameters they will work with (Section 52.6 Connection Parameters). When the peripheral wants to connect with a set of parameters that don't match the requirements, the Apple device may reject the connection, or offer an alternate set of parameters. If your device is not able to perform adequately with these set of parameters, it could be causing timeouts, or if it is attempting to write to the channel with a set timing assuming the connection parameters, it could be causing issues. Or one of many many other possible issues.
Like I said, you will need to start finding out what is happening before the connection drops. If you test this with your app CoreBluetooth will return some error codes explaining why the connection has dropped. And you will be able to see and debug more in detail on the device, if you are able to do that.
Argun Tekant /
DTS Engineer /
Core Technologies