diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..9a60352 Binary files /dev/null and b/.DS_Store differ diff --git a/DevnagriSdkObjc.xcframework/.DS_Store b/DevnagriSdkObjc.xcframework/.DS_Store new file mode 100644 index 0000000..6490983 Binary files /dev/null and b/DevnagriSdkObjc.xcframework/.DS_Store differ diff --git a/DevnagriSdkObjc.xcframework/Info.plist b/DevnagriSdkObjc.xcframework/Info.plist new file mode 100644 index 0000000..70a832c --- /dev/null +++ b/DevnagriSdkObjc.xcframework/Info.plist @@ -0,0 +1,40 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + DevnagriSdkObjc.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + LibraryIdentifier + ios-arm64 + LibraryPath + DevnagriSdkObjc.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc new file mode 100755 index 0000000..ed0a517 Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom new file mode 100644 index 0000000..97a83eb Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist new file mode 100644 index 0000000..cf4f94e Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h new file mode 100644 index 0000000..86b5831 --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h @@ -0,0 +1,31 @@ +// +// DevnagriSdk.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import "NSBundle+DevnagriSDK.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface DevnagriSdk : NSObject +{ + +} + + ++ (nonnull instancetype)shared; +-(void)initSdk:(NSString *)apiKey updateStringsTime:(int)inMinutes; +-(NSString *)getCurrentApplicationLanguageCode; +-(NSDictionary *)getEnglishStrings; +-(void)updateAppLocale:(NSString *)code; +-(void)updateTranslations; +-(void)getAllSupportableLanguagesCallback:(void (^)(NSArray *arrAllSupportingLang))callback; +-(void)getTranslationOfStringWithSentence:(NSString *)sentence callback:(void (^)(NSString *strTranslation))callback; +-(void)getTranslationOfStringsWithSentences:(NSArray *)sentences callback:(void (^)(NSArray *arrTranslations))callback; +-(void)getTranslationsOfDictionary:(NSDictionary *)dictionary callback:(void (^)(NSDictionary *dictTranslation))callback; +@end + +NS_ASSUME_NONNULL_END diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h new file mode 100644 index 0000000..ddc904a --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h @@ -0,0 +1,20 @@ +// +// DevnagriSdkObjc.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import +#import + +//! Project version number for DevnagriSdkObjc. +FOUNDATION_EXPORT double DevnagriSdkObjcVersionNumber; + +//! Project version string for DevnagriSdkObjc. +FOUNDATION_EXPORT const unsigned char DevnagriSdkObjcVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h new file mode 100644 index 0000000..98cb1b0 --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h @@ -0,0 +1,17 @@ +// +// NSBundle+DevnagriSDK.h +// iLikeIt +// +// Created by Sohan Seervi on 12/05/22. +// Copyright © 2022 Raywenderlich. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (DevnagriSDK) + +@end + +NS_ASSUME_NONNULL_END diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist new file mode 100644 index 0000000..60f0b21 Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap new file mode 100644 index 0000000..925bb9e --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DevnagriSdkObjc { + umbrella header "DevnagriSdkObjc.h" + + export * + module * { export * } +} diff --git a/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf new file mode 100644 index 0000000..7278aae --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf @@ -0,0 +1,24 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2580 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 -How to create xcframework\ +1. Build Settings / Build Libraries for Distribution set YES\ +2. Build Settings / Skip Install set NO\ +3. Open termnial\ +\ +*Remove exist xcframework\ + rm -rf /tmp/xcf/\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS Simulator" -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO\ +\ +\ +xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -output DevnagriSdkObjc.xcframework\ +} \ No newline at end of file diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc new file mode 100755 index 0000000..b7675bb Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom new file mode 100644 index 0000000..97a83eb Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist new file mode 100644 index 0000000..cf4f94e Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h new file mode 100644 index 0000000..86b5831 --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h @@ -0,0 +1,31 @@ +// +// DevnagriSdk.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import "NSBundle+DevnagriSDK.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface DevnagriSdk : NSObject +{ + +} + + ++ (nonnull instancetype)shared; +-(void)initSdk:(NSString *)apiKey updateStringsTime:(int)inMinutes; +-(NSString *)getCurrentApplicationLanguageCode; +-(NSDictionary *)getEnglishStrings; +-(void)updateAppLocale:(NSString *)code; +-(void)updateTranslations; +-(void)getAllSupportableLanguagesCallback:(void (^)(NSArray *arrAllSupportingLang))callback; +-(void)getTranslationOfStringWithSentence:(NSString *)sentence callback:(void (^)(NSString *strTranslation))callback; +-(void)getTranslationOfStringsWithSentences:(NSArray *)sentences callback:(void (^)(NSArray *arrTranslations))callback; +-(void)getTranslationsOfDictionary:(NSDictionary *)dictionary callback:(void (^)(NSDictionary *dictTranslation))callback; +@end + +NS_ASSUME_NONNULL_END diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h new file mode 100644 index 0000000..ddc904a --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h @@ -0,0 +1,20 @@ +// +// DevnagriSdkObjc.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import +#import + +//! Project version number for DevnagriSdkObjc. +FOUNDATION_EXPORT double DevnagriSdkObjcVersionNumber; + +//! Project version string for DevnagriSdkObjc. +FOUNDATION_EXPORT const unsigned char DevnagriSdkObjcVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h new file mode 100644 index 0000000..98cb1b0 --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h @@ -0,0 +1,17 @@ +// +// NSBundle+DevnagriSDK.h +// iLikeIt +// +// Created by Sohan Seervi on 12/05/22. +// Copyright © 2022 Raywenderlich. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (DevnagriSDK) + +@end + +NS_ASSUME_NONNULL_END diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist new file mode 100644 index 0000000..0f822b5 Binary files /dev/null and b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist differ diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap new file mode 100644 index 0000000..925bb9e --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DevnagriSdkObjc { + umbrella header "DevnagriSdkObjc.h" + + export * + module * { export * } +} diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf new file mode 100644 index 0000000..7278aae --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf @@ -0,0 +1,24 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2580 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 -How to create xcframework\ +1. Build Settings / Build Libraries for Distribution set YES\ +2. Build Settings / Skip Install set NO\ +3. Open termnial\ +\ +*Remove exist xcframework\ + rm -rf /tmp/xcf/\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS Simulator" -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO\ +\ +\ +xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -output DevnagriSdkObjc.xcframework\ +} \ No newline at end of file diff --git a/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..6358e07 --- /dev/null +++ b/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources @@ -0,0 +1,179 @@ + + + + + files + + DevnagriSdk_db.momd/DevnagriSdk_db.mom + + bjQuCasEmK9vvPlDyN+FSSu8auE= + + DevnagriSdk_db.momd/VersionInfo.plist + + jlp3Q/BlWwFEsBGRIO3IPNZWbzk= + + Headers/DevnagriSdk.h + + NIqaXeZgG0By5rdu/FNHlMViMC0= + + Headers/DevnagriSdkObjc.h + + A7/IWr7AM/5DPNWJnnfSdycNv4o= + + Headers/NSBundle+DevnagriSDK.h + + d4VKsrNC4d+4nni3t414ZP9NEPQ= + + Info.plist + + bUhw2Ci8BlQt+ObSpea4PlJlpa8= + + Modules/module.modulemap + + ZV+Hma5mYb0Ph8oqxMvIpNnzOyU= + + Notes.rtf + + jrB0o38QPS2TMHg3VXqPyutBxc0= + + + files2 + + DevnagriSdk_db.momd/DevnagriSdk_db.mom + + hash2 + + eIQK7zcjV/zOTbfLCzw5W58HKHLCSMnBL0cyUHUPBdI= + + + DevnagriSdk_db.momd/VersionInfo.plist + + hash2 + + SOcR5yVeTObEWVuDZSWKrs6BwWCE7Fi1DkXp7PGLl3A= + + + Headers/DevnagriSdk.h + + hash2 + + RtwEC39WjJvqeODRocuqlhMB+v1Qx+HfyZABFaX52Qs= + + + Headers/DevnagriSdkObjc.h + + hash2 + + mGWc5bReqndSAwincyec5cdecUc8Qr39ACwVi339yBI= + + + Headers/NSBundle+DevnagriSDK.h + + hash2 + + cKOBXT3PaGx4ZIhmLWjrLj+QejfVyfyCngiyyIP2vCg= + + + Modules/module.modulemap + + hash2 + + b8wWy1h6IHBq46PI04n1sInIJ/AFIjYYS9q0B2wsxvM= + + + Notes.rtf + + hash2 + + CdAnw8sDGfw9NQ+HAC+bkrIqeijXkz+lVpsrk39U+pk= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/README.md b/README.md index 5a7a484..e5cdb8a 100644 --- a/README.md +++ b/README.md @@ -1 +1,112 @@ -# ios-objc-sdk \ No newline at end of file +# iOS SDK Installation Instructions +Learn how to install the Devnagri SDK for iOS. + +# Introduction +Devnagri Over the Air for iOS lets you update translations in your iOS app without having to release it every single time. + +By including our SDK, your app will check for updated translations in Devnagri regularly and download them in the background. + +You can install the SDK manually. + +# Manual Installation +Download the latest release from https://github.com/DevnagriAI/dota-sdk-ios/releases +Add DevnagriSdkObjc.xcframework in Xcode as linked binary to your target. + +**Optional for development** + +The Apple store will reject your app if it includes simulator binaries. Therefore, a script to strip the extra binaries needs to be run before you upload the app. To do this, go to Build Phases and add a Run Script section by clicking the + symbol. Copy and paste the following script: + + FRAMEWORK="DevnagriSDK" + FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK" + EXTRACTED_ARCHS=() + for ARCH in $ARCHS + do + lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" + EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") + done + lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" + rm "${EXTRACTED_ARCHS[@]}" + rm "$FRAMEWORK_EXECUTABLE_PATH" + mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" + +# Compatibility +We support latest Xcode 13+ and Objective - C. This SDK requires base language as english. Other base language will not supported by this SDK + +# Configuration + + @import DevnagriSdkObjc; + + +Initialize the SDK by calling the following code in your didFinishLaunchingWithOptions Method and you can get API_KEY from devnagri + +*updateStringTime* is an optional parameter +For auto update strings translations you can set time in minutes. + + - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [[DevnagriSdk shared] initSdk:@"API-KEY" updateStringsTime:10]; + return YES; + } + +# Default Localisation Override + The SDK override the functionality of NSLocalisedString by default. You just need to import the DevnagriSdk to the file where you want NSLocalisedString to be override by the SDK. + +# Change Language +In case you don't want to use the system language, you can set a different language in the updateAppLocale method. The language code (locale) needs to be present in a release from Devnagri. + + [[DevnagriSdk shared] updateAppLocale:@"hi"]; + + Please note that you will see the english text back if your device language is english and you have not set any specific language for the SDK. To get the translation in Hindi, Please update app locale to Hindi as per above method. + +# Get Current language code +In case you want to know which language code currently used by application. + + NSString *currentLanguageCode = [[DevnagriSdk shared] getCurrentApplicationLanguageCode]; + +# Update Translations +In case you want to update english localisation strings translations according to selected application locale. + + [[DevnagriSdk shared] updateTranslations]; + + +# Get Supported Languages +You can get supported languages for the SDK using this method. This will return hashmap of language name and language code + + [[DevnagriSdk shared] getAllSupportableLanguagesCallback:^(NSArray * _Nonnull arrAllSupportingLang) { + // Do your stuff here + + }]; + +# Translate String, List and Dictionary on runtime +You can use these methods anywhere in your project and these will provide translation for current active locale in callback method. + + Get Translation of a Specific String + + NSString *strSentence = @"My Home"; + [[DevnagriSdk shared] getTranslationOfStringWithSentence:strSentence callback:^(NSString * _Nonnull strTranslation) { + NSLog(@"Translation of Sentence %@ is %@",strSentence, strTranslation); + }]; + +Get Translations of an Array of Strings. + + NSArray *arrSentences = [NSArray arrayWithObjects:@"My Home",@"Hello World", nil]; + [[DevnagriSdk shared] getTranslationOfStringsWithSentences:arrSentences callback:^(NSArray * _Nonnull arrTranslations) { + for (int i = 0; i < arrTranslations.count; i ++) + { + NSLog(@"Translation of array Sentences %@ is %@",[arrSentences objectAtIndex:i], [arrTranslations objectAtIndex:i]); + } + }]; + +Get Translations Of Dictionary + + NSDictionary *dictSentences = [NSDictionary dictionaryWithObjectsAndKeys:@"My Home",@"my_home", @"Hello World",@"hello_world", nil]; + [[DevnagriSdk shared] getTranslationsOfDictionary:dictSentences callback:^(NSDictionary * _Nonnull dictTranslation) { + for (NSString *strKey in dictTranslation) { + NSLog(@"Translation of dict Sentences key = %@ resp = %@",strKey, [dictTranslation objectForKey:strKey]); + } + }]; + +# Usage + +Select project target and click general select in framework,libraries,and Embedded Content and select *DevnagriSdkObjc.xcframework* if not selected +than choose **Embed -> Embed & Sign.** + diff --git a/SampleDevngriObjcSDK/.DS_Store b/SampleDevngriObjcSDK/.DS_Store new file mode 100644 index 0000000..063de8a Binary files /dev/null and b/SampleDevngriObjcSDK/.DS_Store differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.pbxproj b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c677153 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.pbxproj @@ -0,0 +1,417 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + ACE0E24A283E406E00591011 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = ACE0E24C283E406E00591011 /* Localizable.strings */; }; + EA0ECA20283E3192004E8F22 /* DevnagriSdkObjc.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA0ECA1E283E3185004E8F22 /* DevnagriSdkObjc.xcframework */; }; + EA0ECA21283E3192004E8F22 /* DevnagriSdkObjc.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA0ECA1E283E3185004E8F22 /* DevnagriSdkObjc.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + EA59F211283E189A000897CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EA59F210283E189A000897CC /* AppDelegate.m */; }; + EA59F214283E189A000897CC /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EA59F213283E189A000897CC /* SceneDelegate.m */; }; + EA59F217283E189A000897CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EA59F216283E189A000897CC /* ViewController.m */; }; + EA59F21A283E189A000897CC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EA59F218283E189A000897CC /* Main.storyboard */; }; + EA59F21C283E189C000897CC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EA59F21B283E189C000897CC /* Assets.xcassets */; }; + EA59F21F283E189C000897CC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EA59F21D283E189C000897CC /* LaunchScreen.storyboard */; }; + EA59F222283E189C000897CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EA59F221283E189C000897CC /* main.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + EA59F22C283E18B1000897CC /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + EA0ECA21283E3192004E8F22 /* DevnagriSdkObjc.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + ACE0E24B283E406E00591011 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + ACE0E24D283E408700591011 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Main.strings; sourceTree = ""; }; + ACE0E24E283E408700591011 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/LaunchScreen.strings; sourceTree = ""; }; + EA0ECA1E283E3185004E8F22 /* DevnagriSdkObjc.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = DevnagriSdkObjc.xcframework; sourceTree = ""; }; + EA59F20C283E189A000897CC /* SampleDevngriObjcSDK.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleDevngriObjcSDK.app; sourceTree = BUILT_PRODUCTS_DIR; }; + EA59F20F283E189A000897CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + EA59F210283E189A000897CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + EA59F212283E189A000897CC /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; + EA59F213283E189A000897CC /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; + EA59F215283E189A000897CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + EA59F216283E189A000897CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + EA59F219283E189A000897CC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + EA59F21B283E189C000897CC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + EA59F21E283E189C000897CC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + EA59F220283E189C000897CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + EA59F221283E189C000897CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + EA59F209283E189A000897CC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EA0ECA20283E3192004E8F22 /* DevnagriSdkObjc.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + EA59F203283E189A000897CC = { + isa = PBXGroup; + children = ( + EA59F20E283E189A000897CC /* SampleDevngriObjcSDK */, + EA59F20D283E189A000897CC /* Products */, + ); + sourceTree = ""; + }; + EA59F20D283E189A000897CC /* Products */ = { + isa = PBXGroup; + children = ( + EA59F20C283E189A000897CC /* SampleDevngriObjcSDK.app */, + ); + name = Products; + sourceTree = ""; + }; + EA59F20E283E189A000897CC /* SampleDevngriObjcSDK */ = { + isa = PBXGroup; + children = ( + EA0ECA1E283E3185004E8F22 /* DevnagriSdkObjc.xcframework */, + EA59F20F283E189A000897CC /* AppDelegate.h */, + EA59F210283E189A000897CC /* AppDelegate.m */, + EA59F212283E189A000897CC /* SceneDelegate.h */, + EA59F213283E189A000897CC /* SceneDelegate.m */, + EA59F215283E189A000897CC /* ViewController.h */, + EA59F216283E189A000897CC /* ViewController.m */, + EA59F218283E189A000897CC /* Main.storyboard */, + EA59F21B283E189C000897CC /* Assets.xcassets */, + EA59F21D283E189C000897CC /* LaunchScreen.storyboard */, + EA59F220283E189C000897CC /* Info.plist */, + EA59F221283E189C000897CC /* main.m */, + ACE0E24C283E406E00591011 /* Localizable.strings */, + ); + path = SampleDevngriObjcSDK; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + EA59F20B283E189A000897CC /* SampleDevngriObjcSDK */ = { + isa = PBXNativeTarget; + buildConfigurationList = EA59F225283E189C000897CC /* Build configuration list for PBXNativeTarget "SampleDevngriObjcSDK" */; + buildPhases = ( + EA59F208283E189A000897CC /* Sources */, + EA59F209283E189A000897CC /* Frameworks */, + EA59F20A283E189A000897CC /* Resources */, + EA59F22C283E18B1000897CC /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SampleDevngriObjcSDK; + productName = SampleDevngriObjcSDK; + productReference = EA59F20C283E189A000897CC /* SampleDevngriObjcSDK.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + EA59F204283E189A000897CC /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastUpgradeCheck = 1320; + TargetAttributes = { + EA59F20B283E189A000897CC = { + CreatedOnToolsVersion = 13.2.1; + }; + }; + }; + buildConfigurationList = EA59F207283E189A000897CC /* Build configuration list for PBXProject "SampleDevngriObjcSDK" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + hi, + ); + mainGroup = EA59F203283E189A000897CC; + productRefGroup = EA59F20D283E189A000897CC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + EA59F20B283E189A000897CC /* SampleDevngriObjcSDK */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + EA59F20A283E189A000897CC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EA59F21F283E189C000897CC /* LaunchScreen.storyboard in Resources */, + ACE0E24A283E406E00591011 /* Localizable.strings in Resources */, + EA59F21C283E189C000897CC /* Assets.xcassets in Resources */, + EA59F21A283E189A000897CC /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + EA59F208283E189A000897CC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EA59F217283E189A000897CC /* ViewController.m in Sources */, + EA59F211283E189A000897CC /* AppDelegate.m in Sources */, + EA59F222283E189C000897CC /* main.m in Sources */, + EA59F214283E189A000897CC /* SceneDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + ACE0E24C283E406E00591011 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + ACE0E24B283E406E00591011 /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + EA59F218283E189A000897CC /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + EA59F219283E189A000897CC /* Base */, + ACE0E24D283E408700591011 /* hi */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + EA59F21D283E189C000897CC /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + EA59F21E283E189C000897CC /* Base */, + ACE0E24E283E408700591011 /* hi */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + EA59F223283E189C000897CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + EA59F224283E189C000897CC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + EA59F226283E189C000897CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = KTU699AJZH; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/SampleDevngriObjcSDK", + ); + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SampleDevngriObjcSDK/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devnagriteam; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + EA59F227283E189C000897CC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = KTU699AJZH; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/SampleDevngriObjcSDK", + ); + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SampleDevngriObjcSDK/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.devnagriteam; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + EA59F207283E189A000897CC /* Build configuration list for PBXProject "SampleDevngriObjcSDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EA59F223283E189C000897CC /* Debug */, + EA59F224283E189C000897CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EA59F225283E189C000897CC /* Build configuration list for PBXNativeTarget "SampleDevngriObjcSDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EA59F226283E189C000897CC /* Debug */, + EA59F227283E189C000897CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = EA59F204283E189A000897CC /* Project object */; +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/dineshgautam.xcuserdatad/UserInterfaceState.xcuserstate b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/dineshgautam.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..35f5781 Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/dineshgautam.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/vikram.xcuserdatad/UserInterfaceState.xcuserstate b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/vikram.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..901b7c9 Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/project.xcworkspace/xcuserdata/vikram.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..6e13bae --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcschemes/xcschememanagement.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..570b920 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/dineshgautam.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SampleDevngriObjcSDK.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..f91f212 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcschemes/xcschememanagement.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..570b920 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK.xcodeproj/xcuserdata/vikram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SampleDevngriObjcSDK.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/.DS_Store b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/.DS_Store new file mode 100644 index 0000000..cf9895b Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/.DS_Store differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.h new file mode 100644 index 0000000..9611e03 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.h @@ -0,0 +1,14 @@ +// +// AppDelegate.h +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import + +@interface AppDelegate : UIResponder + + +@end + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.m b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.m new file mode 100644 index 0000000..e283818 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/AppDelegate.m @@ -0,0 +1,40 @@ +// +// AppDelegate.m +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +#pragma mark - UISceneSession lifecycle + + +- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; +} + + +- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. +} + + +@end diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AccentColor.colorset/Contents.json b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AppIcon.appiconset/Contents.json b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/Contents.json b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/LaunchScreen.storyboard b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/Main.storyboard b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/Main.storyboard new file mode 100644 index 0000000..808a21c --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/Info.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/Info.plist new file mode 100644 index 0000000..70a832c --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/Info.plist @@ -0,0 +1,40 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + DevnagriSdkObjc.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + LibraryIdentifier + ios-arm64 + LibraryPath + DevnagriSdkObjc.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc new file mode 100755 index 0000000..ed0a517 Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdkObjc differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom new file mode 100644 index 0000000..97a83eb Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist new file mode 100644 index 0000000..cf4f94e Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h new file mode 100644 index 0000000..86b5831 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h @@ -0,0 +1,31 @@ +// +// DevnagriSdk.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import "NSBundle+DevnagriSDK.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface DevnagriSdk : NSObject +{ + +} + + ++ (nonnull instancetype)shared; +-(void)initSdk:(NSString *)apiKey updateStringsTime:(int)inMinutes; +-(NSString *)getCurrentApplicationLanguageCode; +-(NSDictionary *)getEnglishStrings; +-(void)updateAppLocale:(NSString *)code; +-(void)updateTranslations; +-(void)getAllSupportableLanguagesCallback:(void (^)(NSArray *arrAllSupportingLang))callback; +-(void)getTranslationOfStringWithSentence:(NSString *)sentence callback:(void (^)(NSString *strTranslation))callback; +-(void)getTranslationOfStringsWithSentences:(NSArray *)sentences callback:(void (^)(NSArray *arrTranslations))callback; +-(void)getTranslationsOfDictionary:(NSDictionary *)dictionary callback:(void (^)(NSDictionary *dictTranslation))callback; +@end + +NS_ASSUME_NONNULL_END diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h new file mode 100644 index 0000000..ddc904a --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h @@ -0,0 +1,20 @@ +// +// DevnagriSdkObjc.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import +#import + +//! Project version number for DevnagriSdkObjc. +FOUNDATION_EXPORT double DevnagriSdkObjcVersionNumber; + +//! Project version string for DevnagriSdkObjc. +FOUNDATION_EXPORT const unsigned char DevnagriSdkObjcVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h new file mode 100644 index 0000000..98cb1b0 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h @@ -0,0 +1,17 @@ +// +// NSBundle+DevnagriSDK.h +// iLikeIt +// +// Created by Sohan Seervi on 12/05/22. +// Copyright © 2022 Raywenderlich. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (DevnagriSDK) + +@end + +NS_ASSUME_NONNULL_END diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist new file mode 100644 index 0000000..60f0b21 Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Info.plist differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap new file mode 100644 index 0000000..925bb9e --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DevnagriSdkObjc { + umbrella header "DevnagriSdkObjc.h" + + export * + module * { export * } +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf new file mode 100644 index 0000000..7278aae --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64/DevnagriSdkObjc.framework/Notes.rtf @@ -0,0 +1,24 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2580 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 -How to create xcframework\ +1. Build Settings / Build Libraries for Distribution set YES\ +2. Build Settings / Skip Install set NO\ +3. Open termnial\ +\ +*Remove exist xcframework\ + rm -rf /tmp/xcf/\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS Simulator" -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO\ +\ +\ +xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -output DevnagriSdkObjc.xcframework\ +} \ No newline at end of file diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc new file mode 100755 index 0000000..b7675bb Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdkObjc differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom new file mode 100644 index 0000000..97a83eb Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/DevnagriSdk_db.mom differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist new file mode 100644 index 0000000..cf4f94e Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/DevnagriSdk_db.momd/VersionInfo.plist differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h new file mode 100644 index 0000000..86b5831 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdk.h @@ -0,0 +1,31 @@ +// +// DevnagriSdk.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import "NSBundle+DevnagriSDK.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface DevnagriSdk : NSObject +{ + +} + + ++ (nonnull instancetype)shared; +-(void)initSdk:(NSString *)apiKey updateStringsTime:(int)inMinutes; +-(NSString *)getCurrentApplicationLanguageCode; +-(NSDictionary *)getEnglishStrings; +-(void)updateAppLocale:(NSString *)code; +-(void)updateTranslations; +-(void)getAllSupportableLanguagesCallback:(void (^)(NSArray *arrAllSupportingLang))callback; +-(void)getTranslationOfStringWithSentence:(NSString *)sentence callback:(void (^)(NSString *strTranslation))callback; +-(void)getTranslationOfStringsWithSentences:(NSArray *)sentences callback:(void (^)(NSArray *arrTranslations))callback; +-(void)getTranslationsOfDictionary:(NSDictionary *)dictionary callback:(void (^)(NSDictionary *dictTranslation))callback; +@end + +NS_ASSUME_NONNULL_END diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h new file mode 100644 index 0000000..ddc904a --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/DevnagriSdkObjc.h @@ -0,0 +1,20 @@ +// +// DevnagriSdkObjc.h +// DevnagriSdkObjc +// +// Created by Dinesh Gautam on 27/04/22. +// + +#import +#import +#import + +//! Project version number for DevnagriSdkObjc. +FOUNDATION_EXPORT double DevnagriSdkObjcVersionNumber; + +//! Project version string for DevnagriSdkObjc. +FOUNDATION_EXPORT const unsigned char DevnagriSdkObjcVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h new file mode 100644 index 0000000..98cb1b0 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Headers/NSBundle+DevnagriSDK.h @@ -0,0 +1,17 @@ +// +// NSBundle+DevnagriSDK.h +// iLikeIt +// +// Created by Sohan Seervi on 12/05/22. +// Copyright © 2022 Raywenderlich. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (DevnagriSDK) + +@end + +NS_ASSUME_NONNULL_END diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist new file mode 100644 index 0000000..0f822b5 Binary files /dev/null and b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Info.plist differ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap new file mode 100644 index 0000000..925bb9e --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DevnagriSdkObjc { + umbrella header "DevnagriSdkObjc.h" + + export * + module * { export * } +} diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf new file mode 100644 index 0000000..7278aae --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/Notes.rtf @@ -0,0 +1,24 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2580 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 -How to create xcframework\ +1. Build Settings / Build Libraries for Distribution set YES\ +2. Build Settings / Skip Install set NO\ +3. Open termnial\ +\ +*Remove exist xcframework\ + rm -rf /tmp/xcf/\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO\ +\ +\ +xcodebuild archive -scheme DevnagriSdkObjc -destination="iOS Simulator" -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO\ +\ +\ +xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/DevnagriSdkObjc.framework -output DevnagriSdkObjc.xcframework\ +} \ No newline at end of file diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..6358e07 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/DevnagriSdkObjc.xcframework/ios-arm64_x86_64-simulator/DevnagriSdkObjc.framework/_CodeSignature/CodeResources @@ -0,0 +1,179 @@ + + + + + files + + DevnagriSdk_db.momd/DevnagriSdk_db.mom + + bjQuCasEmK9vvPlDyN+FSSu8auE= + + DevnagriSdk_db.momd/VersionInfo.plist + + jlp3Q/BlWwFEsBGRIO3IPNZWbzk= + + Headers/DevnagriSdk.h + + NIqaXeZgG0By5rdu/FNHlMViMC0= + + Headers/DevnagriSdkObjc.h + + A7/IWr7AM/5DPNWJnnfSdycNv4o= + + Headers/NSBundle+DevnagriSDK.h + + d4VKsrNC4d+4nni3t414ZP9NEPQ= + + Info.plist + + bUhw2Ci8BlQt+ObSpea4PlJlpa8= + + Modules/module.modulemap + + ZV+Hma5mYb0Ph8oqxMvIpNnzOyU= + + Notes.rtf + + jrB0o38QPS2TMHg3VXqPyutBxc0= + + + files2 + + DevnagriSdk_db.momd/DevnagriSdk_db.mom + + hash2 + + eIQK7zcjV/zOTbfLCzw5W58HKHLCSMnBL0cyUHUPBdI= + + + DevnagriSdk_db.momd/VersionInfo.plist + + hash2 + + SOcR5yVeTObEWVuDZSWKrs6BwWCE7Fi1DkXp7PGLl3A= + + + Headers/DevnagriSdk.h + + hash2 + + RtwEC39WjJvqeODRocuqlhMB+v1Qx+HfyZABFaX52Qs= + + + Headers/DevnagriSdkObjc.h + + hash2 + + mGWc5bReqndSAwincyec5cdecUc8Qr39ACwVi339yBI= + + + Headers/NSBundle+DevnagriSDK.h + + hash2 + + cKOBXT3PaGx4ZIhmLWjrLj+QejfVyfyCngiyyIP2vCg= + + + Modules/module.modulemap + + hash2 + + b8wWy1h6IHBq46PI04n1sInIJ/AFIjYYS9q0B2wsxvM= + + + Notes.rtf + + hash2 + + CdAnw8sDGfw9NQ+HAC+bkrIqeijXkz+lVpsrk39U+pk= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Info.plist b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Info.plist new file mode 100644 index 0000000..81ed29b --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.h new file mode 100644 index 0000000..1c76384 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.h @@ -0,0 +1,15 @@ +// +// SceneDelegate.h +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import + +@interface SceneDelegate : UIResponder + +@property (strong, nonatomic) UIWindow * window; + +@end + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.m b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.m new file mode 100644 index 0000000..0bc54ca --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/SceneDelegate.m @@ -0,0 +1,57 @@ +// +// SceneDelegate.m +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import "SceneDelegate.h" + +@interface SceneDelegate () + +@end + +@implementation SceneDelegate + + +- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). +} + + +- (void)sceneDidDisconnect:(UIScene *)scene { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). +} + + +- (void)sceneDidBecomeActive:(UIScene *)scene { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. +} + + +- (void)sceneWillResignActive:(UIScene *)scene { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). +} + + +- (void)sceneWillEnterForeground:(UIScene *)scene { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. +} + + +- (void)sceneDidEnterBackground:(UIScene *)scene { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. +} + + +@end diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.h b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.h new file mode 100644 index 0000000..bd85adf --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.h @@ -0,0 +1,14 @@ +// +// ViewController.h +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import + +@interface ViewController : UIViewController + + +@end + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.m b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.m new file mode 100644 index 0000000..65c96e7 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/ViewController.m @@ -0,0 +1,62 @@ +// +// ViewController.m +// SampleSDKDevNagri +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import "ViewController.h" +@import DevnagriSdkObjc; + +@interface ViewController () +{ + } +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Initiaise the SDK + [[DevnagriSdk shared] initSdk:@"devnagri_083d95d4b71411eca510021b05a03360" updateStringsTime:10]; + + // Update locale to hindi + [[DevnagriSdk shared] updateAppLocale:@"hi"]; + + // get all supported languages + [[DevnagriSdk shared] getAllSupportableLanguagesCallback:^(NSArray * _Nonnull arrAllSupportingLang) { + // Do your stuff here + NSLog(@"All languages %@",arrAllSupportingLang); + }]; + +// // Translation of String + NSString *strSentence = @"My Home"; + [[DevnagriSdk shared] getTranslationOfStringWithSentence:strSentence callback:^(NSString * _Nonnull strTranslation) { + NSLog(@"Translation of Sentence %@ is %@",strSentence, strTranslation); + }]; + + // get translation of array + NSArray *arrSentences = [NSArray arrayWithObjects:@"My Home",@"Hello World", nil]; + [[DevnagriSdk shared] getTranslationOfStringsWithSentences:arrSentences callback:^(NSArray * _Nonnull arrTranslations) { + for (int i = 0; i < arrTranslations.count; i ++) + { + NSLog(@"Translation of array Sentences %@ is %@",[arrSentences objectAtIndex:i], [arrTranslations objectAtIndex:i]); + } + + }]; + + //get translation of dictionary + NSDictionary *dictSentences = [NSDictionary dictionaryWithObjectsAndKeys:@"My Home",@"my_home", @"Hello World",@"hello_world", nil]; + [[DevnagriSdk shared] getTranslationsOfDictionary:dictSentences callback:^(NSDictionary * _Nonnull dictTranslation) { + for (NSString *strKey in dictTranslation) { + NSLog(@"Translation of dict Sentences key = %@ resp = %@",strKey, [dictTranslation objectForKey:strKey]); + } + }]; + + NSLog(NSLocalizedString(@"what_is_your_name", "")); + + // Do any additional setup after loading the view. +} + + +@end diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/en.lproj/Localizable.strings b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/en.lproj/Localizable.strings new file mode 100644 index 0000000..74dbb75 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/en.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* + Localizable.strings + SampleDevngriObjcSDK + + Created by Vijay Jangid on 25/05/22. + +*/ +"what_is_your_name" = "What is your country name?"; +"my_name_is_vijay" = "My country name is india"; diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/LaunchScreen.strings b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Localizable.strings b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Localizable.strings new file mode 100644 index 0000000..63bb9be --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* + Localizable.strings + SampleDevngriObjcSDK + + Created by Vijay Jangid on 25/05/22. + +*/ diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Main.strings b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/hi.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/SampleDevngriObjcSDK/SampleDevngriObjcSDK/main.m b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/main.m new file mode 100644 index 0000000..c85fcbe --- /dev/null +++ b/SampleDevngriObjcSDK/SampleDevngriObjcSDK/main.m @@ -0,0 +1,18 @@ +// +// main.m +// SampleDevngriObjcSDK +// +// Created by Dinesh Gautam on 25/05/22. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + NSString * appDelegateClassName; + @autoreleasepool { + // Setup code that might create autoreleased objects goes here. + appDelegateClassName = NSStringFromClass([AppDelegate class]); + } + return UIApplicationMain(argc, argv, nil, appDelegateClassName); +}