Skip to content
πŸ“Έ You can post feedback messages and screenshots to Slack from your iOS app! πŸŽ₯
Branch: master
Clone or download
Latest commit 700dac4 Mar 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
AppFeedback.xcodeproj Remove TTCategory Ext Jan 9, 2019
AppFeedback Merge pull request #19 from yahoojapan/add-sending-label Feb 27, 2019
AppFeedbackTests Initial commit Dec 26, 2018
SampleApp small fix: api error handlig Feb 21, 2019
assets Fix Mar 5, 2019
scripts Fix GitHub license detection Feb 7, 2019
.gitignore Initial commit Dec 26, 2018
.travis.yml TravisCI Dec 26, 2018
Dangerfile.hosted.rb Add dangerfile Feb 7, 2019
LICENSE Update LICENSE Feb 6, 2019 Update Feb 27, 2019

Carthage compatible License Platform Build Status


You can post feedback messages and screenshots to Slack from your iOS app!

It is very useful for internal test!

How to feedback

Introducing this SDK, a floating icon of feedback is displayed. Tapping it, a feedback dialog is displayed.


  • Show feedback button
  • Two fingers long press to show feedback dialog
  • Take a screenshot & Record screen


  • iOS 9+



1. Incorporate SDK with Carthage


github ""

If you do not want to include SDK framework binaries in your application, please remove it from Copy Frameworks by looking at the configuration for the following.

2. import header

import Bridging Header

#import <AppFeedback/AppFeedback.h>

3. Flag definition in configuration to enable SDK

Please control so that it applies only to internal distribution so that it will not be effective in production application

First define flags in target configuration

4. Describe SDK initialization process to didFinishLaunchingWithOptions

Describe initialization processing of SDK to "Describe SDK initialization process to didFinishLaunchingWithOptionsdidFinishLaunchingWithOptions"

Initialize the SDK when launching the application. Make sure it is enabled only when the flag you set above is defined.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // ……
        AppFeedback.configure(withSlackToken:"<your token>", slackChannel:"<slack channel id>")

    // ……

To hide the feedback icon, please support display with gesture.

        AppFeedback.readyFeedbackGesture()     // Display feedback dialog with two fingers long tap
        AppFeedback.readyScreenShot()          // Display feedback dialog when shooting screenshot

5. Add action to set SDK to Fastfile

Write setup_app_feedback_sdk in the fastlane build before build_app. Please specify project, scheme, configuration to use for build.

This action writes the slack api token and channel id to your Info.plist.

      project: 'MyApp.xcodeproj',
      scheme: 'MyApp',
      configuration: 'AppFeedback',
      slack_api_token: 'your-slack-token', # Preferably configure as ENV['SLACK_API_TOKEN']
      slack_channel: 'your-slack-channel-id'


6. Build with Screwdriver

The SDK is built in the application for internal distribution built with Screwdriver.



func readyFeedbackGesture()

Display a feedback dialog with two finger long press gestures.

func readyScreenShot()

Display a feedback dialog when shooting screenshots.

func startRecording()

Start screen recording (movie capture).

func endRecording()

End screen recording (movie capture).

var isHidden: Bool { get set }

Boolean value as to whether to display the feedback button. Default is true.

*It is always invisible because there is a problem with the display of buttons under iOS 9.

func showFeedbackDialog()

Display the feedback dialog immediately.

Please use this method when displaying feedback dialog by custom gesture etc created by yourself.

func yourLongPressedGesture(sender: UILongPressGestureRecognizer) {

func configure(withSlackToken:slackChannel:)

Set your slack token and channel.

func configure(withSlackChannel)

Set your slack channel. Please set the slack token with fastlane setup_app_feedback_sdk action.

var feedbackCategories: [String] { get set }

List of feedback categories.

The default is "Bug" "Request" "Question" "Design" "Others".

var slackApiUrl: String { get set }

Slack API URL (default:

You can’t perform that action at this time.