Makemoji Keyboard Extension

The Makemoji Keyboard Extension allows for quick development of a iOS custom keyboard that is powered by the Makemoji CMS.

You will first need to create a keyboard extension target in your Xcode project.

Xcode will autogenerate a bundle id using this method. Typically its com.yourapp.keyboard

You will need to enable request open access in your keyboard extensions Info.plist to allow for network access. This is found in the NSExtensionAttributes dictionary.


Then add the following to your Podfile for your new target and run pod update

    pod "MakemojiSDK-KeyboardExtension"

Once the pod is installed, we can modify the auto-generated controller Xcode created to use Makemoji's controller.

In KeyboardViewController.h:

#import <UIKit/UIKit.h>
#import "MEKeyboardViewController.h"

@interface KeyboardViewController : MEKeyboardViewController

In KeyboardViewController.m, you'll want to include the following:

#import "KeyboardViewController.h"
#import "MEKeyboardAPIManager.h"

@interface KeyboardViewController ()


@implementation KeyboardViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [[MEKeyboardAPIManager client] setSdkKey:@"YOUR_SDK_KEY"];
        self.shareText = @"Change this text to a link to your app";
    return self;

When getting ready to submit your app, you will need to remove the Embed Frameworks step under build phases as this causes a false positive with Apple Submission.