Number: 009, Date: 2024-03-04

2024.02.27 ~ 2024.03.03

πŸ”₯ Adding New Cases for Push and Custom Push


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.

πŸ›« App Store Reject


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.

πŸ™‹πŸ»β€β™‚οΈ Other Notes


  1. Installing Firestore via CocoaPods significantly increases the project build time (about 2x). To calculate build time, activate the option to measure Xcode build time and use warnings for code blocks likely to perform heavy tasks to identify the cause.
  2. Organized profiles, certificates, and devices in App Store Connect.
  3. When using fastlane to upload to Sentry, changing the plugin was expected to provide more detailed source code, but it remained the same, so I need to investigate further.