
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:
- Shake their device or tap the feedback button
- Automatic screenshot capture of the current screen
- Add annotations by highlighting problem areas directly on the screenshot
- Write descriptions explaining the bug or suggestion
- 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:
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
