Requirements
Platform | Minimum Deployment Target | Language | Supported Orientations | Supported Destinations |
---|---|---|---|---|
iOS | 13.0 | Swift | Portrait | iPhone |
Permissions (Optional)
Permissions to be added ininfo.plist
file of your application
Permission | Usage | Used Where |
---|---|---|
Camera (NSCameraUsageDescription) | Genuin needs permissions to open your camera and microphone. This allows Genuin to record videos that can be shared with other people. | Post, Video Comment |
Microphone (NSMicrophoneUsageDescription) | Genuin needs permissions to open your camera and microphone. This allows Genuin to record videos that can be shared with other people. | Post, Voice Comment |
Photos (NSPhotoLibraryUsageDescription) | Genuin needs permissions to access your photo library. This allows Genuin to download videos to your phone and save it to your library. | Post, Profile, Banner |
Speech Recognition (NSSpeechRecognitionUsageDescription) | The transcript of your recording will be displayed to you in the end for you to overlay it on the audio message. | To generate transcript from recorded audio |
Contacts (NSContactsUsageDescription) | Genuin requires to sync with your contacts and provide a better experience when you wish to share your posts with them. | Add Members in Communities and Groups |
Location (NSLocationWhenInUseUsageDescription) | Your precise location will help us suggest your community details more accurately. | AI Powered Communities based on the User Location |
Tracking (NSUserTrackingUsageDescription) | Your data will be used to analyse ads we run! | Monetization |
If any permission is not given then that particular feature will not be accessible in your app.
Installation
Standard CocoaPods Install
If your project doesn’t have the CocoaPods setup then start withpod init
which will create the Podfile, else do following changes in the pod file to install GenuinSDK.
SceneDelegate/AppDelegate
.
To load your lottie animation accross the Genuin SDK, you can add it here
configuration.setCustomLoader("YOUR_LOADER", bundle: .main)
Instructions for SceneDelegate
:
- Ensure you are using the
UISceneDelegate
in your app. - In your
SceneDelegate.swift
file, implement thescene(_:willConnectTo:options:)
method. - Use the shared configuration and set up any custom loaders or additional parameters.
- Call
GenuinSDK.shared.initialize(apiKey: "YOUR_API_KEY", configuration: configuration)
with your API key and the configured options. - Ensure that
GenuinSDK.shared.scene(scene, willConnectTo: session, options: connectionOptions)
is called to notify the SDK of the scene connection.
Instructions for AppDelegate
:
- In your
AppDelegate.swift
, implement theapplication(_:didFinishLaunchingWithOptions:)
method. - Set up the shared configuration and initialize the SDK with your API key.
- Call
GenuinSDK.shared.initialize(apiKey: "YOUR_API_KEY", configuration: configuration)
with your API key and the configured options. - Return
true
to indicate successful launch configuration.
UITabBarController
:
ViewController.swift
Note: Our SDK is well optimized for
iOS version 15.0
and above, but if you are using iOS version 13
or 14
then put this if #available(iOS 15.0, *)
condition while importing the GenuinSDK. Refer to the below code block Monetization
To enable Monetization use following code snippet to get advertisingIdentifier by AppTrackingTranspancy. You need to addNSUserTrackingUsageDescription
in Info.plist
as described here.
Need to declare in App Store Connect that your app is using Advertising DataSteps:
- Log in to your App Store Connect.
- Select the app you are working on.
- Go to App Privacy > Data Collection.
- Find the Usage Data section and select the Advertising Data.
- Click on Save/Publish.
- Now Setup Advertising Data by selecting (Third-Party Advertising, Analytics, Product Personalization, App Functionality, Other Purposes)
- Click on Next and give the answers as asked.
- Click on save.
Embed
Note: Make sure you have followed the installation steps in order to implement the Carousel Embed.
Carousel Embed
Refer to Carousel View in Mobile
Note: To fetch the Embed you need to add
YOUR_EMBED_ID
, YOUR_CONTAINER_VIEW
in which you want the embed, and YOUR_VIEW_CONTROLLER
containing your container view, while calling the below function. For auto login in the SDK, you shall pass “YOUR_SSO_TOKEN” in order to implement Embed with SSO in your app. Vertical Carousel Embed
InEmbedConfiguration
there is new option called genuinCarouselConfiguration
by using it we can change the configs of carousel design.
Full Screen Embed
Note: To fetch the Embed you need to add
YOUR_EMBED_ID
, YOUR_CONTAINER_VIEW
in which you want the embed, and YOUR_VIEW_CONTROLLER
containing your container view, while calling the above function. For auto login in the SDK, you shall pass “YOUR_SSO_TOKEN” in order to implement Embed with SSO in your app.Standard Wall Embed
Note: To fetch the Embed you need to add
YOUR_EMBED_ID
while calling the above function.Additional Information
To configure theEmbedConfiguration
based on your need you can change the below values.
- isShowProfileEnabled = This is an optional boolean parameter. Default value is false. If this parameter is true and also if user is logged in than Profile picture will be visible in full screen view (right side top corner). On clicking the profile picture user will see the account settings and logout options.
- isDirectDeepLinkEnabled = This is an optional boolean parameter. Default value is false. If this parameter is true then all the interaction/clicks in the full screen view will redirect to the specific video in white labelled app associated with video and also value of this parameter “interactionDeepLink” will be ignored. If not passed then the regular flow will work.
- interactionDeepLink = This is an optional parameter. You can pass a deeplink URL in this parameter. If a deeplink URL is given then all the interaction/clicks in the full screen view will redirect to the deeplink URL given. If not passed then the regular flow will work. It should be a correct URL else user will not be redirected.
-
genuinCarouselConfiguration = This is an optional parameter. You can pass
GenuinCarouselConfiguration
object in this parameter. IfGenuinCarouselConfiguration
is provided then the carousel design will change accordingly. The default values are listed below, which you can pass inGenuinCarouselConfiguration
object.interTileSpacing
- spacing between the carousel’s collection view items. It’s default value is8.0
carouselInset
- edge insets for carousel’s collection view. It’s default value isUIEdgeInsets(top: 8.0, left: 16.0, bottom: 0.0, right: 16.0)
scrollDirection
- direction of carousel scroll. It’s default value is.horizontal
aspectRatio
- define aspect ratio of carousel’s collection view items. It’s default value is.ratio9x16
tileCornerRadius
- cornerRadius for the carousel’s collection view items. It’s default value is8.0

params
key:
-
name - This is an optional string parameter. Pass this parameter for ‘
signup/login
’. -
mobile - This is an optional string parameter. Pass this parameter for
signup/login
. -
email - This is an optional string parameter. Pass this parameter for
signup/login
. - nickname - This is an optional string parameter. If nickname is available in genuin ecosystem it will be used, else genuin will generate of its own.
-
profile_image: This is an optional string parameter. Pass the
profile_image
parameter if you want to show the profile image in the SDK.
contextualParams
key:
-
page_context - This is an optional string parameter. Pass this parameter for ‘
context
’, so that feed could load based on that context. -
lat - This is an optional float parameter. Pass this parameter in
geo
so that the feed could load based on the latitude and context. -
long - This is an optional float parameter. Pass this parameter in
geo
so that the feed could load based on the longitude and context.
Note:
lat
and long
both parameters shall be passed in order to implement the contextual feed based on the location.Handle Login : via AutoLogin Approach
To Auto Login in the SDK, You need to call below method, whenever user is log in to your application. Note: You don’t need to call the below method if you have implemented the Embed With SSO already.
Custom Login
If you want to handle login process as per your requirement then follow the below steps: Step 1: Assign Delegate while initializing Genuin SDKHandle Logout : via AutoLogin Approach
Whenever user logs out from your application call the below method.Handling Deep Link
Note: Make sure you have followed the installation steps in order to handle the deep links.
- Make sure you have white labelled your community by following these steps
- Enable Associated Domains in Certificates, Identifiers & Profiles using your Apple Developer account at https://developer.apple.com/account/resources/identifiers/list
- Create apple-app-site-association (without extension) file with following settings:
https://YOUR_WHITE-LABELLED_DOMAIN/.well-known/apple-app-site-association
- Add Associated Domains in capabilities if not already,

YOUR_WHITE-LABELLED_DOMAIN
applinks: www.YOUR_WHITE-LABELLED_DOMAIN
To handle deep links in your app use the following methods.
Note:
GenuinSDK.shared.willHandleDeepLink(url: dlURL)
function will check whether GenuinSDK
will handle the given deeplink or not. You can use it according to your deeplink redirection flow.Instructions for SceneDelegate
:
- In
SceneDelegate.swift
, implement thescene(_:continue:)
method. - Notify the SDK of the continued scene via
GenuinSDK.initDeeplinkWith(url: dlURL)
. - Handle deep links using the root view controller by calling
GenuinSDK.shared.handleDeeplink(viewController: rootVC)
.
NOTE: To handle redirection of the deeplink , it is mandatory to call
GenuinSDK.initDeeplinkWith(url: dlURL)
Instructions for AppDelegate
:
- In
AppDelegate.swift
, implement theapplication(_:continue:restorationHandler:)
method. - Notify the SDK of the continued scene via
GenuinSDK.initDeeplinkWith(url: dlURL)
. - Use
GenuinSDK.shared.handleDeeplink(viewController: rootVC)
to manage the deep link using the app’s root view controller.
Note:
-
To handle the Deeplink from another controller call the
GenuinSDK.shared.handleDeeplink(viewController: vc)
function from specific controller -
If you are following the
SceneDelegate
method then calling thisGenuinSDK.shared.handleDeeplink(viewController: self)
function is mandatory
Handling Push Notifications
Using Firebase
- Create an app in your firebase console by following these steps
-
Download the
GoogleService-Info.plist
file and add it in xcode project - Add pod in pod file
-
To enable the push notifications functionality then enable the Push Notifications in your target. To do so,
Select the target > Signing & Capabilities > Add Capability of Push Notification
- Import
Note: Pass
true
value in isFCMIntegrated
parameter, as we are using the Firebase. - Initialize
- Place this code to take the user permission for Push Notification
- Extend
MessagingDelegate
and Add follwing method:
- To Handle the Push Notification Redirection whenever the user taps, follow the below code
Note:
GenuinSDK.shared.willHandleNotification(userInfo: userInfo)
function will check whether GenuinSDK
will handle the given notification or not. You can use it according to your notification redirection flow. - To configure notification UI
- If you want to handle the notification when app is opened then follow the below code
Note: To handle the notification from another controller call the
GenuinSDK.shared.handleNotifications(viewController: YOUR_VIEW_CONTROLLER)
functionUsing APNS
-
To enable the push notifications functionality then enable the Push Notifications in your target. To do so,
Select the target > Signing & Capabilities > Add Capability of Push Notification
- Import
Note: Pass
false
value in isFCMIntegrated
parameter, as we are not using the Firebase. - Place this code to take the user permission for Push Notification
- To Handle the Push Notification Redirection whenever the user taps, follow the below code
Note:
GenuinSDK.shared.willHandleNotification(userInfo: userInfo)
function will check whether GenuinSDK
will handle the given notification or not. You can use it according to your notification redirection flow. - To configure notification UI
- If you want to handle the notification when app is opened then follow the below code
Note: To handle the notification from another controller call the
GenuinSDK.shared.handleNotifications(viewController: YOUR_VIEW_CONTROLLER)
function. What’s next?
Android SDK
Integrate Android SDK in Your ecosystem.
Web SDK
Integrate Web SDK in your ecosystem.
React Native SDK
Integrate React Native SDK in your ecosystem.