This sounds like an issue with how LightBlue for iOS is handling notifications and write responses. Do read operations work correctly in the app? Can you post your project?
After a lot of experiments, I found the problem is caused by setting notification (which is "setNotifyValue: forCharateristic:" in IOS). No matter you use LightBlue IOS or CySmart IOS, once you have clicked on "Notify" button or "Subscribe" button, you won't be able to write anymore data to corresponding characteristic, and the connection will be ended in about 30 secs.
To discover the reason of above problem, I have done some tests, and I found setting notification action is failed on app side. After I have notified an characteristic by using "setNotifyValue:YES forCharacteristic:C", i found "C.isNotifying" always return "NO", which means the setting notification action is never completed on app side, and this could be reason why connection is ended after 30 secs.
With the same tests and experiments, all Andorid apps works fine on Psoc 4BLE. With the same tests and experiements, all apps (including ios apps and andorid apps) works fine on another BLE device.
Finally, I think this problem could be caused by the bad compatibility between IOS to Psoc 4BLE.
Do you have any idea with it? BTW, I will post my code on later.
Don't know why it always be error when tried to post my code on, hope my last reply has described my problem clear.