CocoaPods
Learn how to add Shake to your Android app using CocoaPods.
note
Not using CocoaPods yet? Follow their brief installation guide,
then run pod init
in the root of your project and you're done โ let's move on.
note
Shake SDK is distributed as a binary package, more specifically an XCFramework. CocoaPods added support for XCFrameworks in the 1.9 beta release, so make sure your CocoaPods installation is running with version no lower than 1.9.
Add Shake to your Podfile
- Objective-C
- Swift
pod 'Shake'
use_frameworks!pod 'Shake'
Then, run the pod install
command in your terminal.
After the installation also run pod update Shake
to be perfectly sure that you're using the latest Shake .
Initialize Shake
Initialize Shake in the didFinishLaunchingWithOptions
callback of your AppDelegate.
Replace your-api-client-id
and your-api-client-secret
with the actual values you have in your workspace settings:
- Objective-C
- Swift
#import "AppDelegate.h"@import Shake;@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[SHKShake startWithClientId:@"your-api-client-id" clientSecret:@"your-api-client-secret"];return YES;}@end
import UIKitimport Shake@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate {func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {Shake.start(clientId: "your-api-client-id", clientSecret: "your-api-client-secret")return true}}
note
Some of the Shake features use swizzling.
To avoid swizzling conflicts, call Shake.start()
before initializing other frameworks.
Now select Product โ Run in the menu bar. This first run will automatically add your app to your Shake Dashboard based on your app bundle ID.
Conditional initialization
We recommend initializing Shake in the entry point of your app. However, depending on your app, you'll want to initialize Shake just in a specific conditions, depending on your app data. You can do it as shown in the example below when your app data is available:
- Objective-C
- Swift
#import "Main.h"@import Shake;@implementation MainVC- (void)viewDidLoad {[super viewDidLoad];if ([User isTester]) {[SHKShake startWithClientId:@"_client_id_" clientSecret:@"_client_secret_"];}}
import UIKitimport Shakeclass MainVC: UIViewController {override func viewDidLoad() {super.viewDidLoad()title = "Main"if User.isTester() {Shake.start(clientId: "_client_id_", clientSecret: "_client_secret_")}}}
Visit your Shake dashboard
Follow the instructions there to send your first feedback with Shake and you're all set.
SDK customizations
Now that Shake SDK is in your app and you have sent the first feedback for fun, everything else is optional. As the next step, try the three most popular SDK customizations: