In iOS, you can use sockets for real-time communication. However, when the app moves to the background, the socket connection is terminated (according to the socket-io official documentation).
In such cases, you can add data to the push notification to receive data in the background.
Unlike Android, in iOS, you must format the payload for APNs by specifying values to send push notifications, which must be properly formatted for delivery to the device. You can handle push notifications separately for background and foreground processing in the AppDelegate.
To implement Custom Push, I tested how to send images using attachments in the push notification and how to modify values, referring to Kim Jong-kwonβs iOS Blog - Push Section.
While implementing the Notification Service Extension, I encountered an issue: Command ValidateEmbeddedBinary failed with a nonzero exit code. This error occurred because the Bundle Versions of the Notification Service Extension target were different from those of the host target, and aligning the versions resolved the issue.
The reason for the reject was Guideline 2.1 - Performance - App Completeness; the reviewer faced an issue with a white screen on their iPad Air.
While using fastlane for TestFlight distribution, it seems that some errors occurred during the archiving process. After updating fastlane and redistributing, I tested it in the same environment as the reviewer and confirmed that the issue was resolved.
In the past, there had been related issues where different computers were used for distribution with fastlane. In some versions, certain iOS versions built correctly, while in others, specific iOS versions crashed when distributed from a different computer.