Effortless iOS App Feedback & Bug Tracking

By Vishal Zaveri
Dot
October 10, 2025
Effortless iOS App Feedback & Bug Tracking

Collecting user feedback and tracking bugs are essential for building high-quality iOS apps. Without a clear system, issues can go unnoticed, affecting user satisfaction. AppsOnAir's AppRemark offers a simple and efficient way to manage feedback and report bugs directly from your iOS app, helping developers identify problems faster and deliver a better user experience.

What is AppRemark?

AppRemark is an in-app feedback collection service that allows users to report bugs, issues, and suggestions by simply shaking their device or tapping a button. It's designed to streamline communication between testers, clients, and development teams and users.

How Does It Work?

When a user encounters an issue or wants to provide feedback, they can:

  1. Shake their device or tap the feedback button
  2. Automatic screenshot capture of the current screen
  3. Add annotations by highlighting problem areas directly on the screenshot
  4. Write descriptions explaining the bug or suggestion
  5. Submit instantly to the AppsOnAir dashboard

Key Benefits

Visual Context: 

Automatic screenshots eliminate confusion about what users are reporting.

Precise Annotations:

Users can highlight, circle, or point to exact problem areas on the screen.

Zero Friction: 

No need to leave the app or use external tools to report issues. Easy integration and supporting customization options for feedback collection. 

Rich Metadata

Every report includes device information, app version, and system logs automatically

Perfect For

  • QA Teams testing beta builds and identifying bugs
  • Clients / Product team  providing feedback on work-in-progress features
  • Internal Teams collaborating on app improvements
  • End Users submitting feedback, reporting bugs, and sharing suggestions

Installation & Integration 

To integrate the AppsOnAir AppRemark iOS SDK into your native iOS app using Swift, SwiftUI, or Objective-C, follow these steps:

Here is the complete installation guide. First add the AppsOnAir-AppRemark CocoaPods, add this to your
Podfile:

pod 'AppsOnAir-AppRemark'

in your terminal, Run the following commands on the terminal window of your project's directory.

pod repo update
pod install

The service requires NSPhotoLibraryUsageDescription permission to upload screenshots from the iOS device gallery. Make sure to add NSPhotoLibraryUsageDescription to your project's Info.plist file.

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) need permission to choose image from gallery for App Remark feature.</string>

You can call the initialization whenever you prefer, but it’s recommended to add the initialization code in the AppDelegate’s didFinishLaunchingWithOptions method, as shown below:

Swift

Add below code in your AppDelegate.swift file

import AppsOnAir_AppRemark
  import UIKit

  @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {

      // AppRemark Class instance create
      let appsOnAirRemarkServices = AppRemarkService.shared

      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

      // help to initialize remark services and customized the screen also using optional
      appsOnAirRemarkServices.initialize(shakeGestureEnable: false,options: ["appBarBackgroundColor":"DAF7A6"])
      return true
    }
    // Remaining contents of your AppDelegate Class...
  }

Objective-C

Add below code in your AppDelegate.m file

import AppsOnAir_AppRemark
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

      // AppRemark Class instance create
      let appsOnAirRemarkServices = AppRemarkService.shared

      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

      // help to initialize remark services and customized the screen also using optional
      appsOnAirRemarkServices.initialize(shakeGestureEnable: false,options: ["appBarBackgroundColor":"DAF7A6"])
      return true
    }
    // Remaining contents of your AppDelegate Class...
}

SwiftUI

Add below code in your App_Name.swift

import SwiftUI
import AppsOnAir_AppRemark

@main
struct YOUR_APP_NAME: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate {
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

    // Help to create App Remark Class instance
    let appsOnAirRemarkService = AppRemarkService.shared

   // help to initialize remark services and customized the screen also using optional
    appsOnAirRemarkService.initialize(shakeGestureEnable: false,options: ["appBarBackgroundColor":"DAF7A6"])

    return true
  }
  // Remaining contents of your AppDelegate Class...
}

This method sets up the Remark service.

  • shakeGestureEnable: Enables or disables the shake gesture to trigger the Remark screen.
  • options: A dictionary for customizing the Remark screen’s UI, such as changing the app bar background color or other visual elements.

Available keys in options for customization:

Key DataType Value Description
pageBackgroundColor String "#E8F1FF" Set page background color
appBarBackgroundColor String "#E8F1FF" Set appbar background color
appBarTitleText String "Add Remark" Set appbar title text
appBarTitleColor String #000000 Set appbar title color
remarkTypeLabelText String "Remark Type" Set remark type label text
descriptionLabelText String "Description" Set description label text
descriptionHintText String "Add description here..." Set description hint text
descriptionMaxLength int 255 Set description max length
buttonText String "Submit" Set button text
buttonTextColor String "#FFFFFF" Set button text color
buttonBackgroundColor String "#007AFF" Set button background color
labelColor String "#000000" Set text field label color
hintColor String "#B1B1B3" Set text field hint color
inputTextColor String "#000000" Set text field input text color

Open the AppRemark Screen Manually

Below code you can use to manually open the AppRemark screen within your app.

Swift / SwiftUI

// Help to Create App Remark Service Class
let appsOnAirRemarkServices = AppRemarkService.shared

//Help to open remark screen manually and add extra data about app
appsOnAirRemarkServices.addRemark(extraPayload: ["XX":"XX"])

Objective-C

// Help to Create App Remark Service Class
@property (nonatomic, strong) AppRemarkService *appRemarkService;
  
//Help to open remark screen manually and add extra data about app
[self.appRemarkService addRemarkWithExtraPayload:@{@"XX":@"XX"}];

The optional extraPayload lets you send additional metadata like app version or flavors along with feedback for better tracking and analysis

For more details, visit the official GitHub repository.

AppRemark Dashboard

After submitting feedback, bugs, or suggestions, you can easily track them in the AppsOnAir AppRemark section via the web portal.

You can manage feedback release-wise and also edit or delete any feedback, suggestion, or bug. Additionally, you can filter feedback by platform, type (suggestion or bug), and status (open, rejected, hold, or resolved) for easier tracking and management.

Here’s a description for the status field:

  • Open – The feedback, bug, or suggestion has been received and is pending review or action.
  • Rejected – The feedback or bug is not considered valid or actionable.
  • On Hold – The feedback or bug requires further information or is postponed for future review.
  • Resolved – The issue has been addressed or the suggestion has been implemented.

You can view detailed feedback and also manage comments for each specific bug, suggestion, or feedback.

By following the guidelines above, you can effectively manage user experience by fixing bugs and making improvements, which enhances user satisfaction and boosts your app’s performance.

For more information visit the official documentation

Start Pushing Real-Time App Updates Today
Try AppsOnAir for Free
Stay Uptodate