diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 563d0ce2..76f9a492 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ In order for us to provide optimal support, we would kindly ask you to submit an - [onInstallConversionData](#appsflyeroninstallconversiondatacallback-functionunregister) - [getAppsFlyerUID](#appsflyergetappsflyeruidcallback-void) - [trackLocation (ios only)](#appsflyertracklocationlongitude-latitude-callbackerror-coords-void-ios-only) + - [sendDeepLinkData (Android only)](#senddeeplinkdata-android-only) - [Demo](#demo) @@ -277,7 +278,7 @@ Read more about Uninstall register: [Appsflyer SDK support site](https://support #### Android - `setGCMProjectID(GCMProjectID): void` + `enableUninstallTracking(GCMProjectID): void` Set the GCM API key. AppsFlyer requires a Google Project Number and GCM API Key to enable uninstall tracking. @@ -289,14 +290,11 @@ Set the GCM API key. AppsFlyer requires a Google Project Number and GCM API Key ```javascript - setGCMProjectID(){ - const gcmProjectId = "987186475229"; - appsFlyer.setGCMProjectID(gcmProjectId, - (gcmProjectID) => { + enableUninstallTracking(){ + const gcmProjectNum = "987186475229"; + appsFlyer.enableUninstallTracking(gcmProjectNum, + (success) => { //... - }, - (error) => { - console.error(error); }) } @@ -415,6 +413,28 @@ appsFlyer.trackLocation(longitude, latitude, (error, coords) => { --- +#### **`appsFlyer.sendDeepLinkData(String url): void`** + +Report Deep Links for Re-Targeting Attribution (Android). +This method should be called when an app is opened using a deep link. + +*Example:* +```javascript +componentDidMount() { + Linking.getInitialURL().then((url) => { + if (appsFlyer) { + appsFlyer.sendDeepLinkData(url); // Report Deep Link to AppsFlyer + // Additional Deep Link Logic Here ... + } + }).catch(err => console.error('An error occurred', err)); +} +``` + +More about Deep Links in React-Native: [React-Native Linking](https://facebook.github.io/react-native/docs/linking.html) +More about Deep Links in Android: [Android Deep Linking , Adding Filters](https://developer.android.com/training/app-indexing/deep-linking.html#adding-filters) + +--- + ##### **`appsFlyer.setUserEmails(options, errorC, successC): void`** AppsFlyer enables you to report one or more of the device’s associated email addresses. You must collect the email addresses and report it to AppsFlyer according to your required encryption method. diff --git a/android/build.gradle b/android/build.gradle old mode 100644 new mode 100755 diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml old mode 100644 new mode 100755 diff --git a/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerConstants.java b/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerConstants.java old mode 100644 new mode 100755 diff --git a/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerModule.java b/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerModule.java old mode 100644 new mode 100755 index 03b0ea93..3757025d --- a/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerModule.java +++ b/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerModule.java @@ -22,6 +22,9 @@ import android.content.Context; import android.util.Log; +import android.content.Intent; +import android.net.Uri; + import org.json.JSONArray; import org.json.JSONException; @@ -223,6 +226,16 @@ public void trackEvent( } } + @ReactMethod + public void sendDeepLinkData(String url) { + if (url != null) { + Intent intent = getCurrentActivity().getIntent(); + Uri uri = Uri.parse(url); + intent.setData(uri); + AppsFlyerLib.getInstance().sendDeepLinkData(this.getCurrentActivity()); + } + } + @Deprecated @ReactMethod @@ -246,19 +259,19 @@ public void setGCMProjectNumber(final String gcmProjectNumber, successCallback.invoke(SUCCESS); } -// @ReactMethod -// public void enableUninstallTracking(final String gcmProjectNumber, -// Callback successCallback) -// { -// AppsFlyerLib.getInstance().enableUninstallTracking(gcmProjectNumber); -// successCallback.invoke(SUCCESS); -// } -// -// @ReactMethod -// public void updateServerUninstallToken(final String token,Callback callback){ -// AppsFlyerLib.getInstance().updateServerUninstallToken(getReactApplicationContext(), token); -// callback.invoke(SUCCESS); -// } + @ReactMethod + public void enableUninstallTracking(final String gcmProjectNumber, + Callback successCallback) + { + AppsFlyerLib.getInstance().enableUninstallTracking(gcmProjectNumber); + successCallback.invoke(SUCCESS); + } + + @ReactMethod + public void updateServerUninstallToken(final String token,Callback callback){ + AppsFlyerLib.getInstance().updateServerUninstallToken(getReactApplicationContext(), token); + callback.invoke(SUCCESS); + } @ReactMethod public void setCustomerUserId(final String userId,Callback callback){ diff --git a/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerPackage.java b/android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerPackage.java old mode 100644 new mode 100755 diff --git a/android/src/main/java/com/appsflyer/reactnative/RNUtil.java b/android/src/main/java/com/appsflyer/reactnative/RNUtil.java old mode 100644 new mode 100755 diff --git a/android/src/main/libs/AF-Android-SDK.jar b/android/src/main/libs/AF-Android-SDK.jar index cf16f832..67a31056 100644 Binary files a/android/src/main/libs/AF-Android-SDK.jar and b/android/src/main/libs/AF-Android-SDK.jar differ diff --git a/demo/.babelrc b/demo/.babelrc old mode 100644 new mode 100755 diff --git a/demo/.buckconfig b/demo/.buckconfig old mode 100644 new mode 100755 diff --git a/demo/.flowconfig b/demo/.flowconfig old mode 100644 new mode 100755 diff --git a/demo/.gitattributes b/demo/.gitattributes old mode 100644 new mode 100755 diff --git a/demo/.gitignore b/demo/.gitignore old mode 100644 new mode 100755 diff --git a/demo/.watchmanconfig b/demo/.watchmanconfig old mode 100644 new mode 100755 diff --git a/demo/__tests__/index.android.js b/demo/__tests__/index.android.js old mode 100644 new mode 100755 diff --git a/demo/__tests__/index.ios.js b/demo/__tests__/index.ios.js old mode 100644 new mode 100755 diff --git a/demo/android/app/BUCK b/demo/android/app/BUCK old mode 100644 new mode 100755 diff --git a/demo/android/app/build.gradle b/demo/android/app/build.gradle old mode 100644 new mode 100755 diff --git a/demo/android/app/proguard-rules.pro b/demo/android/app/proguard-rules.pro old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/AndroidManifest.xml b/demo/android/app/src/main/AndroidManifest.xml old mode 100644 new mode 100755 index 53552e33..fd5459e0 --- a/demo/android/app/src/main/AndroidManifest.xml +++ b/demo/android/app/src/main/AndroidManifest.xml @@ -23,6 +23,10 @@ + + + + diff --git a/demo/android/app/src/main/java/com/demo/MainActivity.java b/demo/android/app/src/main/java/com/demo/MainActivity.java old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/java/com/demo/MainApplication.java b/demo/android/app/src/main/java/com/demo/MainApplication.java old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/values/strings.xml b/demo/android/app/src/main/res/values/strings.xml old mode 100644 new mode 100755 diff --git a/demo/android/app/src/main/res/values/styles.xml b/demo/android/app/src/main/res/values/styles.xml old mode 100644 new mode 100755 diff --git a/demo/android/build.gradle b/demo/android/build.gradle old mode 100644 new mode 100755 diff --git a/demo/android/gradle.properties b/demo/android/gradle.properties old mode 100644 new mode 100755 diff --git a/demo/android/gradle/wrapper/gradle-wrapper.jar b/demo/android/gradle/wrapper/gradle-wrapper.jar old mode 100644 new mode 100755 diff --git a/demo/android/gradle/wrapper/gradle-wrapper.properties b/demo/android/gradle/wrapper/gradle-wrapper.properties old mode 100644 new mode 100755 diff --git a/demo/android/gradlew.bat b/demo/android/gradlew.bat old mode 100644 new mode 100755 diff --git a/demo/android/keystores/BUCK b/demo/android/keystores/BUCK old mode 100644 new mode 100755 diff --git a/demo/android/keystores/debug.keystore.properties b/demo/android/keystores/debug.keystore.properties old mode 100644 new mode 100755 diff --git a/demo/android/settings.gradle b/demo/android/settings.gradle old mode 100644 new mode 100755 diff --git a/demo/demo_example.png b/demo/demo_example.png old mode 100644 new mode 100755 diff --git a/demo/index.android.js b/demo/index.android.js old mode 100644 new mode 100755 index bfd655ef..0f8b1f39 --- a/demo/index.android.js +++ b/demo/index.android.js @@ -16,7 +16,8 @@ import { AppRegistry, StyleSheet, Text, - View + View, + Linking } from 'react-native'; export default class demo extends Component { @@ -36,7 +37,14 @@ export default class demo extends Component { } - + // Handle DeepLink URL + componentDidMount() { + Linking.getInitialURL().then((url) => { + if (appsFlyer) { + appsFlyer.sendDeepLinkData(url); // Report Deep Link to AppsFlyer + } + }).catch(err => console.error('An error occurred', err)); + } initSdk(){ @@ -61,7 +69,7 @@ export default class demo extends Component { appsFlyer.enableUninstallTracking(gcmProjectNumber, (gcmProjectID) => { - this.setState( { ...this.state, gcmProjectNumberResponse: gcmProjectID }); + this.setState( { ...this.state, gcmProjectNumberResponse: gcmProjectID }); }) } diff --git a/demo/index.base.js b/demo/index.base.js old mode 100644 new mode 100755 diff --git a/demo/index.ios.js b/demo/index.ios.js old mode 100644 new mode 100755 diff --git a/demo/ios/Podfile b/demo/ios/Podfile old mode 100644 new mode 100755 diff --git a/demo/ios/Podfile.lock b/demo/ios/Podfile.lock new file mode 100644 index 00000000..9aa5f57f --- /dev/null +++ b/demo/ios/Podfile.lock @@ -0,0 +1,12 @@ +PODS: + - AppsFlyerFramework (4.7.11) + +DEPENDENCIES: + - AppsFlyerFramework + +SPEC CHECKSUMS: + AppsFlyerFramework: ece902d4233177d4e9db1429c7a5df5fad8e9f07 + +PODFILE CHECKSUM: b3e1d386f200061ce24cf0d60bca964b593d5588 + +COCOAPODS: 1.2.0 diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/AppsFlyerLib b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/AppsFlyerLib new file mode 120000 index 00000000..fd96586f --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/AppsFlyerLib @@ -0,0 +1 @@ +Versions/Current/AppsFlyerLib \ No newline at end of file diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Headers b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Headers new file mode 120000 index 00000000..a177d2a6 --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Modules/module.modulemap b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Modules/module.modulemap new file mode 100644 index 00000000..047c0b9d --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AppsFlyerLib { + umbrella header "AppsFlyerTracker.h" + + export * + module * { export * } +} \ No newline at end of file diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/AppsFlyerLib b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/AppsFlyerLib new file mode 100644 index 00000000..34f60c59 Binary files /dev/null and b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/AppsFlyerLib differ diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/Headers/AppsFlyerTracker.h b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/Headers/AppsFlyerTracker.h new file mode 100644 index 00000000..45058d02 --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/A/Headers/AppsFlyerTracker.h @@ -0,0 +1,314 @@ +// +// AppsFlyerTracker.h +// AppsFlyerLib +// +// AppsFlyer iOS SDK 4.7.11 +// Copyright (c) 2013 AppsFlyer Ltd. All rights reserved. +// + +#import + +// In app event names constants +#define AFEventLevelAchieved @"af_level_achieved" +#define AFEventAddPaymentInfo @"af_add_payment_info" +#define AFEventAddToCart @"af_add_to_cart" +#define AFEventAddToWishlist @"af_add_to_wishlist" +#define AFEventCompleteRegistration @"af_complete_registration" +#define AFEventTutorial_completion @"af_tutorial_completion" +#define AFEventInitiatedCheckout @"af_initiated_checkout" +#define AFEventPurchase @"af_purchase" +#define AFEventRate @"af_rate" +#define AFEventSearch @"af_search" +#define AFEventSpentCredits @"af_spent_credits" +#define AFEventAchievementUnlocked @"af_achievement_unlocked" +#define AFEventContentView @"af_content_view" +#define AFEventListView @"af_list_view" +#define AFEventTravelBooking @"af_travel_booking" +#define AFEventShare @"af_share" +#define AFEventInvite @"af_invite" +#define AFEventLogin @"af_login" +#define AFEventReEngage @"af_re_engage" +#define AFEventUpdate @"af_update" +#define AFEventOpenedFromPushNotification @"af_opened_from_push_notification" +#define AFEventLocation @"af_location_coordinates" +#define AFEventOrderId @"af_order_id" +#define AFEventCustomerSegment @"af_customer_segment" + + + +// In app event parameter names +#define AFEventParamAchievenmentId @"af_achievement_id" +#define AFEventParamLevel @"af_level" +#define AFEventParamScore @"af_score" +#define AFEventParamSuccess @"af_success" +#define AFEventParamPrice @"af_price" +#define AFEventParamContentType @"af_content_type" +#define AFEventParamContentId @"af_content_id" +#define AFEventParamContentList @"ad_content_list" +#define AFEventParamCurrency @"af_currency" +#define AFEventParamQuantity @"af_quantity" +#define AFEventParamRegistrationMethod @"af_registration_method" +#define AFEventParamPaymentInfoAvailable @"af_payment_info_available" +#define AFEventParamMaxRatingValue @"af_max_rating_value" +#define AFEventParamRatingValue @"af_rating_value" +#define AFEventParamSearchString @"af_search_string" +#define AFEventParamDateA @"af_date_a" +#define AFEventParamDateB @"af_date_b" +#define AFEventParamDestinationA @"af_destination_a" +#define AFEventParamDestinationB @"af_destination_b" +#define AFEventParamDescription @"af_description" +#define AFEventParamClass @"af_class" +#define AFEventParamEventStart @"af_event_start" +#define AFEventParamEventEnd @"af_event_end" +#define AFEventParamLat @"af_lat" +#define AFEventParamLong @"af_long" +#define AFEventParamCustomerUserId @"af_customer_user_id" +#define AFEventParamValidated @"af_validated" +#define AFEventParamRevenue @"af_revenue" +#define AFEventParamReceiptId @"af_receipt_id" +#define AFEventParamTutorialId @"af_tutorial_id" +#define AFEventParamAchievenmentId @"af_achievement_id" +#define AFEventParamVirtualCurrencyName @"af_virtual_currency_name" +#define AFEventParamDeepLink @"af_deep_link" +#define AFEventParamOldVersion @"af_old_version" +#define AFEventParamNewVersion @"af_new_version" +#define AFEventParamReviewText @"af_review_text" +#define AFEventParamCouponCode @"af_coupon_code" +#define AFEventParam1 @"af_param_1" +#define AFEventParam2 @"af_param_2" +#define AFEventParam3 @"af_param_3" +#define AFEventParam4 @"af_param_4" +#define AFEventParam5 @"af_param_5" +#define AFEventParam6 @"af_param_6" +#define AFEventParam7 @"af_param_7" +#define AFEventParam8 @"af_param_8" +#define AFEventParam9 @"af_param_9" +#define AFEventParam10 @"af_param_10" + +#define AFEventParamDepartingDepartureDate @"af_departing_departure_date" +#define AFEventParamReturningDepartureDate @"af_returning_departure_date" +#define AFEventParamDestinationList @"af_destination_list" //array of string +#define AFEventParamCity @"af_city" +#define AFEventParamRegion @"af_region" +#define AFEventParamCountry @"af_country" + + +#define AFEventParamDepartingArrivalDate @"af_departing_arrival_date" +#define AFEventParamReturningArrivalDate @"af_returning_arrival_date" +#define AFEventParamSuggestedDestinations @"af_suggested_destinations" //array of string +#define AFEventParamTravelStart @"af_travel_start" +#define AFEventParamTravelEnd @"af_travel_end" +#define AFEventParamNumAdults @"af_num_adults" +#define AFEventParamNumChildren @"af_num_children" +#define AFEventParamNumInfants @"af_num_infants" +#define AFEventParamSuggestedHotels @"af_suggested_hotels" //array of string + +#define AFEventParamUserScore @"af_user_score" +#define AFEventParamHotelScore @"af_hotel_score" +#define AFEventParamPurchaseCurrency @"af_purchase_currency" + +#define AFEventParamPreferredStarRatings @"af_preferred_star_ratings" //array of int (basically a tupple (min,max) but we'll use array of int and instruct the developer to use two values) + +#define AFEventParamPreferredPriceRange @"af_preferred_price_range" //array of int (basically a tupple (min,max) but we'll use array of int and instruct the developer to use two values) +#define AFEventParamPreferredNeighborhoods @"af_preferred_neighborhoods" //array of string +#define AFEventParamPreferredNumStops @"af_preferred_num_stops" + + + + +typedef enum { + EmailCryptTypeNone = 0, + EmailCryptTypeSHA1 = 1, + EmailCryptTypeMD5 = 2, + EmailCryptTypeSHA256 = 3 +} EmailCryptType; + +/* + * This delegate should be use if you want to use AppsFlyer conversion data. See AppsFlyer iOS + */ +@protocol AppsFlyerTrackerDelegate + +@optional +- (void) onConversionDataReceived:(NSDictionary*) installData; +- (void) onConversionDataRequestFailure:(NSError *)error; +- (void) onAppOpenAttribution:(NSDictionary*) attributionData; +- (void) onAppOpenAttributionFailure:(NSError *)error; + +@end + +@interface AppsFlyerTracker : NSObject { + + BOOL _isDebug; + BOOL didCollectIAdData; + BOOL _useReceiptValidationSandbox; + BOOL _useUninstallSandbox; + EmailCryptType emailCryptType; + NSArray *userEmails; +} + ++(AppsFlyerTracker*) sharedTracker; + +/* In case you use your own user ID in your app, you can set this property to that ID. */ +@property (nonatomic, strong, setter=setCustomerUserID:) NSString *customerUserID; + + +/* In case you use Custom data and you want to receive it in the raw reports.*/ +@property (nonatomic, strong, setter=setAdditionalData:) NSDictionary *customData; + +/* Use this property to set your AppsFlyer's dev key. */ +@property (nonatomic, strong, setter=setAppsFlyerDevKey:) NSString *appsFlyerDevKey; + +/* Use this property to set your app's Apple ID (taken from the app's page on iTunes Connect) */ +@property (nonatomic, strong, setter=setAppleAppID:) NSString *appleAppID; + +/* + * In case of in app purchase events, you can set the currency code your user has purchased with. + * The currency code is a 3 letter code according to ISO standards. Example: "USD" + */ +@property (nonatomic, strong) NSString *currencyCode; + + +/* AppsFlyer's SDK send the data to AppsFlyer's servers over HTTPS. You can set the isHTTPS property to NO in order to use regular HTTP. */ +//@property BOOL isHTTPS; + +/* + * AppsFLyer SDK collect Apple's advertisingIdentifier if the AdSupport framework included in the SDK. + * You can disable this behavior by setting the following property to YES. + */ +@property BOOL disableAppleAdSupportTracking; + +/* + * Prints our messages to the log. This property should only be used in DEBUG mode. The default value + * is NO. + */ +@property (nonatomic, setter = setIsDebug:) BOOL isDebug; + + +/* + * Set this flag to NO, to not collect the device name. + */ +@property (nonatomic, setter = setShouldCollectDeviceName:) BOOL shouldCollectDeviceName; + + +/* + * Opt-out tracking for specific user + */ +@property BOOL deviceTrackingDisabled; + +/* + * Opt-out tracking for iAd attributions + */ +@property BOOL disableIAdTracking; + +/* + * AppsFlyer delegate. See AppsFlyerTrackerDelegate abvoe + */ +//@property (unsafe_unretained, nonatomic) id delegate; //RD-5419 +@property (weak, nonatomic) id delegate; + +/* + * In app purchase receipt validation Apple environment (production or sandbox). The default value + * is NO. + */ +@property (nonatomic, setter = setUseReceiptValidationSandbox:) BOOL useReceiptValidationSandbox; + + +/* + * Set this flag to test uninstall on Apple environment (production or sandbox). The default value + * is NO. + */ +@property (nonatomic, setter = setUseUninstallSandbox:) BOOL useUninstallSandbox; + +/* + * Advertising Id (exposed for RemoteDebug) + */ +@property (nonatomic, strong) NSString *advertiserId; + +/* + * Use this to send the User's emails + */ +-(void) setUserEmails:(NSArray *) userEmails withCryptType:(EmailCryptType) type; + + +/* Track application launch*/ +- (void) trackAppLaunch; + +/* + * Use this method to track events in your app like purchases or user actions. + * Example : + * [[AppsFlyer sharedTracker] trackEvent:@"hotel-booked" withValue:"200"]; + */ +- (void) trackEvent:(NSString*)eventName withValue:(NSString*)value __attribute__((deprecated)); + +/* + * Use this method to track an events with mulitple values. See AppsFlyer's documentation for details. + * + */ +- (void) trackEvent:(NSString *)eventName withValues:(NSDictionary*)values; + +/* + * To track in app purchases you can call this method from the completeTransaction: method on + * your SKPaymentTransactionObserver. + */ +- (void) validateAndTrackInAppPurchase:(NSString *)productIdentifier + price:(NSString *)price + currency:(NSString *)currency + transactionId:(NSString *) tranactionId + additionalParameters:(NSDictionary *)params + success:(void (^)(NSDictionary *response))successBlock + failure:(void (^)(NSError *error, id reponse)) failedBlock NS_AVAILABLE(10_7, 7_0); + + + +/* +* To Track location for geo-fencing. +*/ +- (void) trackLocation:(double) longitude latitude:(double) latitude; + +/* + * This method returns AppsFLyer's internal user ID (unique for your app) + */ +- (NSString *) getAppsFlyerUID; + +/* + * In case you want to use AppsFlyer tracking data in your app you can use the following method set a + * delegate with callback buttons for the tracking data. See AppsFlyerTrackerDelegate above. + */ +- (void) loadConversionDataWithDelegate:(id) delegate __attribute__((deprecated)); + +/* + * In case you want to track deep linking, call this method from your delegate's openURL method. + */ +- (void) handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication __attribute__((deprecated)); + +/* + * In case you want to track deep linking, call this method from your delegate's openURL method with refferer. + */ +- (void) handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication withAnnotation:(id) annotation __attribute__((deprecated)); + + +- (void) handleOpenUrl:(NSURL *) url options:(NSDictionary *)options; +/* + * For Universal links iOS 9 + */ + +- (BOOL) continueUserActivity:(NSUserActivity *) userActivity restorationHandler:(void (^)(NSArray *))restorationHandler NS_AVAILABLE_IOS(9_0); +- (void) didUpdateUserActivity:(NSUserActivity *)userActivity NS_AVAILABLE_IOS(9_0); +- (void) handlePushNotification:(NSDictionary *) pushPayload; + + +/* + Register uninstall - you should register for remote notification and provide Appsflyer the push device token. +*/ +- (void) registerUninstall:(NSData *) deviceToken; + +/* + Get SDK version. +*/ +- (NSString *) getSDKVersion; + + + +- (void) remoteDebuggingCallWithData:(NSString *) data; + +@end diff --git a/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/Current b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/Current new file mode 120000 index 00000000..8c7e5a66 --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/AppsFlyerLib.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/demo/ios/Pods/AppsFlyerFramework/README.md b/demo/ios/Pods/AppsFlyerFramework/README.md new file mode 100644 index 00000000..684c0f07 --- /dev/null +++ b/demo/ios/Pods/AppsFlyerFramework/README.md @@ -0,0 +1,27 @@ +

+ +

+----------- + +[AppsFlyer](https://www.appsflyer.com/) helps mobile marketers measure and improve their performance through amazing tools, really big data and over 2,000 integrations. + +- Supports iOS 8+ + +Installation +------------ + +### CocoaPods + +Just add `pod 'AppsFlyerFramework'` into your [Podfile](https://guides.cocoapods.org/syntax/podfile.html). + +Then run `pod install`. + +Finally add `import AppsFlyerLib` in your Swift implementation. + +Or `#import ` if you're using Objective-C.
+For version 4.5.12 `#import ` + +Changelog +------------ + +You can find the release changelog [here](https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS). diff --git a/demo/ios/Pods/Manifest.lock b/demo/ios/Pods/Manifest.lock new file mode 100644 index 00000000..9aa5f57f --- /dev/null +++ b/demo/ios/Pods/Manifest.lock @@ -0,0 +1,12 @@ +PODS: + - AppsFlyerFramework (4.7.11) + +DEPENDENCIES: + - AppsFlyerFramework + +SPEC CHECKSUMS: + AppsFlyerFramework: ece902d4233177d4e9db1429c7a5df5fad8e9f07 + +PODFILE CHECKSUM: b3e1d386f200061ce24cf0d60bca964b593d5588 + +COCOAPODS: 1.2.0 diff --git a/demo/ios/Pods/Pods.xcodeproj/project.pbxproj b/demo/ios/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 00000000..56d72c56 --- /dev/null +++ b/demo/ios/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,377 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 49E3147808C4C0A98CF486D3AD1597DE /* Pods-demo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CCC80A7881995B1832DD7FBD6BC36E /* Pods-demo-dummy.m */; }; + 5744E77AEF0C5584FF3B1C153AC7DF2A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; + B8034F6EFDA53E8DB0D4568C4C585973 /* Pods-demo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FC0ADAC7A0694925AD35861177D0758 /* Pods-demo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1CD2FC4789CD6409F11214401E806BC5 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 471FB89902972AC5243C9DDA6FD9D82E /* Pods-demo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-demo-frameworks.sh"; sourceTree = ""; }; + 4AFA2667B1D934921B4463642EC5B44F /* Pods-demo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-demo-acknowledgements.plist"; sourceTree = ""; }; + 4B957CE32225B562A7E5935357E93D16 /* AppsFlyerLib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AppsFlyerLib.framework; sourceTree = ""; }; + 8232625E1F4BE86F59BB5317EEFD481D /* Pods-demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-demo.release.xcconfig"; sourceTree = ""; }; + 86DEEE40B89A4A9A455C006171D413A5 /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-demo.debug.xcconfig"; sourceTree = ""; }; + 8FC0ADAC7A0694925AD35861177D0758 /* Pods-demo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-demo-umbrella.h"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A541BD334459676FFA48480AB75BF5CC /* Pods-demo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-demo-resources.sh"; sourceTree = ""; }; + B0E7BA861FAB0E892816763C58F752DC /* Pods_demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_demo.framework; path = "Pods-demo.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D0CCC80A7881995B1832DD7FBD6BC36E /* Pods-demo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-demo-dummy.m"; sourceTree = ""; }; + E67E6AEF674AE286E0B7475C204ECE83 /* Pods-demo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-demo.modulemap"; sourceTree = ""; }; + F95BD80D4A43FD43733350B8907295FA /* Pods-demo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-demo-acknowledgements.markdown"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BECB21AD50C1FCCB66DE9ECD3E063158 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5744E77AEF0C5584FF3B1C153AC7DF2A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 257A58BFDF96F4288D3B6C46C0F59131 /* Pods */ = { + isa = PBXGroup; + children = ( + 677D82CBC131C24B4D13C1D96CCD2DD6 /* AppsFlyerFramework */, + ); + name = Pods; + sourceTree = ""; + }; + 677D82CBC131C24B4D13C1D96CCD2DD6 /* AppsFlyerFramework */ = { + isa = PBXGroup; + children = ( + 97ECE7DF11AEFC08A19251D09FB2338A /* Frameworks */, + ); + name = AppsFlyerFramework; + path = AppsFlyerFramework; + sourceTree = ""; + }; + 6CA45C545C516D40D75FBAE92425C9D4 /* Pods-demo */ = { + isa = PBXGroup; + children = ( + 1CD2FC4789CD6409F11214401E806BC5 /* Info.plist */, + E67E6AEF674AE286E0B7475C204ECE83 /* Pods-demo.modulemap */, + F95BD80D4A43FD43733350B8907295FA /* Pods-demo-acknowledgements.markdown */, + 4AFA2667B1D934921B4463642EC5B44F /* Pods-demo-acknowledgements.plist */, + D0CCC80A7881995B1832DD7FBD6BC36E /* Pods-demo-dummy.m */, + 471FB89902972AC5243C9DDA6FD9D82E /* Pods-demo-frameworks.sh */, + A541BD334459676FFA48480AB75BF5CC /* Pods-demo-resources.sh */, + 8FC0ADAC7A0694925AD35861177D0758 /* Pods-demo-umbrella.h */, + 86DEEE40B89A4A9A455C006171D413A5 /* Pods-demo.debug.xcconfig */, + 8232625E1F4BE86F59BB5317EEFD481D /* Pods-demo.release.xcconfig */, + ); + name = "Pods-demo"; + path = "Target Support Files/Pods-demo"; + sourceTree = ""; + }; + 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = { + isa = PBXGroup; + children = ( + CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + 257A58BFDF96F4288D3B6C46C0F59131 /* Pods */, + BC1809450E41FA5DFBF59989240C8228 /* Products */, + 85B8EB544857CCAF9FD9669CBDD18DBD /* Targets Support Files */, + ); + sourceTree = ""; + }; + 85B8EB544857CCAF9FD9669CBDD18DBD /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 6CA45C545C516D40D75FBAE92425C9D4 /* Pods-demo */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 97ECE7DF11AEFC08A19251D09FB2338A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4B957CE32225B562A7E5935357E93D16 /* AppsFlyerLib.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + BC1809450E41FA5DFBF59989240C8228 /* Products */ = { + isa = PBXGroup; + children = ( + B0E7BA861FAB0E892816763C58F752DC /* Pods_demo.framework */, + ); + name = Products; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 28EDDD718F4CF382AB80CE40658A72C7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B8034F6EFDA53E8DB0D4568C4C585973 /* Pods-demo-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + B4F74C2D7EB0230A59EB9CCEF35D4C5F /* Pods-demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = F7C87DE3280430BC347C15CFC10CB6E2 /* Build configuration list for PBXNativeTarget "Pods-demo" */; + buildPhases = ( + 2FEAB977CCA3A1C8DD420F8F24FA150D /* Sources */, + BECB21AD50C1FCCB66DE9ECD3E063158 /* Frameworks */, + 28EDDD718F4CF382AB80CE40658A72C7 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-demo"; + productName = "Pods-demo"; + productReference = B0E7BA861FAB0E892816763C58F752DC /* Pods_demo.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = BC1809450E41FA5DFBF59989240C8228 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B4F74C2D7EB0230A59EB9CCEF35D4C5F /* Pods-demo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 2FEAB977CCA3A1C8DD420F8F24FA150D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49E3147808C4C0A98CF486D3AD1597DE /* Pods-demo-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 015A368F878AC3E2CEAE21DDE8026304 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 358351B4EB855F65699849DCC4D8A5FC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8232625E1F4BE86F59BB5317EEFD481D /* Pods-demo.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-demo/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-demo/Pods-demo.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_demo; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 44CDBB6D11DE06DB64D6268622BDC47E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 8C3556FDEC3A7FDBC72DE4CCC40B9BFC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 86DEEE40B89A4A9A455C006171D413A5 /* Pods-demo.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-demo/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-demo/Pods-demo.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_demo; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 015A368F878AC3E2CEAE21DDE8026304 /* Debug */, + 44CDBB6D11DE06DB64D6268622BDC47E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F7C87DE3280430BC347C15CFC10CB6E2 /* Build configuration list for PBXNativeTarget "Pods-demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8C3556FDEC3A7FDBC72DE4CCC40B9BFC /* Debug */, + 358351B4EB855F65699849DCC4D8A5FC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Info.plist b/demo/ios/Pods/Target Support Files/Pods-demo/Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.markdown b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.markdown new file mode 100644 index 00000000..31a7de24 --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.markdown @@ -0,0 +1,7 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## AppsFlyerFramework + +Copyright 2014 AppsFlyer Ltd. All rights reserved. +Generated by CocoaPods - https://cocoapods.org diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.plist b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.plist new file mode 100644 index 00000000..3aae17f8 --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-acknowledgements.plist @@ -0,0 +1,39 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright 2014 AppsFlyer Ltd. All rights reserved. + License + Proprietary + Title + AppsFlyerFramework + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-dummy.m b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-dummy.m new file mode 100644 index 00000000..b630723e --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_demo : NSObject +@end +@implementation PodsDummy_Pods_demo +@end diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-frameworks.sh b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-frameworks.sh new file mode 100755 index 00000000..0f29f13c --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-frameworks.sh @@ -0,0 +1,92 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-resources.sh b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-resources.sh new file mode 100755 index 00000000..4602c68a --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-resources.sh @@ -0,0 +1,99 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-umbrella.h b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-umbrella.h new file mode 100644 index 00000000..0373802b --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_demoVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_demoVersionString[]; + diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.debug.xcconfig b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.debug.xcconfig new file mode 100644 index 00000000..a69a6f91 --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.debug.xcconfig @@ -0,0 +1,9 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AppsFlyerFramework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AppsFlyerFramework" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AppsFlyerFramework" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "AdSupport" -framework "AppsFlyerLib" -framework "Security" -framework "SystemConfiguration" -framework "iAd" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.modulemap b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.modulemap new file mode 100644 index 00000000..e464542f --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.modulemap @@ -0,0 +1,6 @@ +framework module Pods_demo { + umbrella header "Pods-demo-umbrella.h" + + export * + module * { export * } +} diff --git a/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.release.xcconfig b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.release.xcconfig new file mode 100644 index 00000000..a69a6f91 --- /dev/null +++ b/demo/ios/Pods/Target Support Files/Pods-demo/Pods-demo.release.xcconfig @@ -0,0 +1,9 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AppsFlyerFramework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AppsFlyerFramework" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AppsFlyerFramework" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "AdSupport" -framework "AppsFlyerLib" -framework "Security" -framework "SystemConfiguration" -framework "iAd" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/demo/ios/demo.xcodeproj/project.pbxproj b/demo/ios/demo.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index b927aaee..3870a7d3 --- a/demo/ios/demo.xcodeproj/project.pbxproj +++ b/demo/ios/demo.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; + 85DB5E951276EEF89F3B6B8D /* Pods_demo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09ACF2174834F48307AAFC7C /* Pods_demo.framework */; }; 94B8A4DD1E38970A0054411D /* libRNAppsFlyer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 94B8A4DC1E3896A90054411D /* libRNAppsFlyer.a */; }; /* End PBXBuildFile section */ @@ -230,6 +231,7 @@ 00E356EE1AD99517003FC87E /* demoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = demoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* demoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = demoTests.m; sourceTree = ""; }; + 09ACF2174834F48307AAFC7C /* Pods_demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_demo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -272,6 +274,7 @@ 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, + 85DB5E951276EEF89F3B6B8D /* Pods_demo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -473,6 +476,7 @@ FBB845D035F27A895F0F08F5 /* Frameworks */ = { isa = PBXGroup; children = ( + 09ACF2174834F48307AAFC7C /* Pods_demo.framework */, ); name = Frameworks; sourceTree = ""; @@ -533,7 +537,7 @@ TestTargetID = 13B07F861A680F5B00A75B9A; }; 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = 7HUAHY9BHT; + DevelopmentTeam = 6UQAD4B3U2; }; }; }; @@ -949,7 +953,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; - DEVELOPMENT_TEAM = 7HUAHY9BHT; + DEVELOPMENT_TEAM = 6UQAD4B3U2; INFOPLIST_FILE = demo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( @@ -969,7 +973,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7HUAHY9BHT; + DEVELOPMENT_TEAM = 6UQAD4B3U2; INFOPLIST_FILE = demo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( diff --git a/demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo.xcscheme b/demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo.xcscheme old mode 100644 new mode 100755 diff --git a/demo/ios/demo.xcworkspace/contents.xcworkspacedata b/demo/ios/demo.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/demo/ios/demo/AppDelegate.h b/demo/ios/demo/AppDelegate.h old mode 100644 new mode 100755 diff --git a/demo/ios/demo/AppDelegate.m b/demo/ios/demo/AppDelegate.m old mode 100644 new mode 100755 diff --git a/demo/ios/demo/Base.lproj/LaunchScreen.xib b/demo/ios/demo/Base.lproj/LaunchScreen.xib old mode 100644 new mode 100755 diff --git a/demo/ios/demo/Images.xcassets/AppIcon.appiconset/Contents.json b/demo/ios/demo/Images.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 diff --git a/demo/ios/demo/Info.plist b/demo/ios/demo/Info.plist old mode 100644 new mode 100755 diff --git a/demo/ios/demo/main.m b/demo/ios/demo/main.m old mode 100644 new mode 100755 diff --git a/demo/ios/demoTests/Info.plist b/demo/ios/demoTests/Info.plist old mode 100644 new mode 100755 diff --git a/demo/ios/demoTests/demoTests.m b/demo/ios/demoTests/demoTests.m old mode 100644 new mode 100755 diff --git a/demo/package.json b/demo/package.json old mode 100644 new mode 100755 index 3ed528c5..86108f15 --- a/demo/package.json +++ b/demo/package.json @@ -9,7 +9,7 @@ "dependencies": { "react": "15.4.2", "react-native": "0.40.0", - "react-native-appsflyer": "file:///Users/maxim/Appsflyer/projects/react-native-appsflyer", + "react-native-appsflyer": "file:///Users/benjamin/AppsFlyerSDKs/React-Native", "react-native-button": "^1.7.1", "react-native-lock": "^0.4.0", "react-native-popup": "^0.6.1" diff --git a/index.js b/index.js old mode 100644 new mode 100755 index acf484fa..c1cdf078 --- a/index.js +++ b/index.js @@ -38,6 +38,10 @@ appsFlyer.getAppsFlyerUID = (callback) => { return RNAppsFlyer.getAppsFlyerUID(callback); }; +appsFlyer.sendDeepLinkData = (callback) => { + return RNAppsFlyer.sendDeepLinkData(callback); +}; + /** Deprecated */ diff --git a/ios/AppsFlyerTracker.h b/ios/AppsFlyerTracker.h old mode 100644 new mode 100755 index 7984ff9f..3742f339 --- a/ios/AppsFlyerTracker.h +++ b/ios/AppsFlyerTracker.h @@ -2,12 +2,15 @@ // AppsFlyerTracker.h // AppsFlyerLib // -// AppsFlyer iOS SDK v4.5.12 +// AppsFlyer iOS SDK v4.7.11 // Copyright (c) 2013 AppsFlyer Ltd. All rights reserved. // #import +//#define kAppsFlyerSDKBuildNumber @"4.7.8" +//#define kJenkinsBuildNumber @"565" + // In app event names constants #define AFEventLevelAchieved @"af_level_achieved" #define AFEventAddPaymentInfo @"af_add_payment_info" @@ -37,6 +40,7 @@ // In app event parameter names +#define AFEventParamAchievenmentId @"af_achievement_id" #define AFEventParamLevel @"af_level" #define AFEventParamScore @"af_score" #define AFEventParamSuccess @"af_success" @@ -65,6 +69,14 @@ #define AFEventParamValidated @"af_validated" #define AFEventParamRevenue @"af_revenue" #define AFEventParamReceiptId @"af_receipt_id" +#define AFEventParamTutorialId @"af_tutorial_id" +#define AFEventParamAchievenmentId @"af_achievement_id" +#define AFEventParamVirtualCurrencyName @"af_virtual_currency_name" +#define AFEventParamDeepLink @"af_deep_link" +#define AFEventParamOldVersion @"af_old_version" +#define AFEventParamNewVersion @"af_new_version" +#define AFEventParamReviewText @"af_review_text" +#define AFEventParamCouponCode @"af_coupon_code" #define AFEventParam1 @"af_param_1" #define AFEventParam2 @"af_param_2" #define AFEventParam3 @"af_param_3" @@ -76,11 +88,42 @@ #define AFEventParam9 @"af_param_9" #define AFEventParam10 @"af_param_10" +#define AFEventParamDepartingDepartureDate @"af_departing_departure_date" +#define AFEventParamReturningDepartureDate @"af_returning_departure_date" +#define AFEventParamDestinationList @"af_destination_list" //array of string +#define AFEventParamCity @"af_city" +#define AFEventParamRegion @"af_region" +#define AFEventParamCountry @"af_country" + + +#define AFEventParamDepartingArrivalDate @"af_departing_arrival_date" +#define AFEventParamReturningArrivalDate @"af_returning_arrival_date" +#define AFEventParamSuggestedDestinations @"af_suggested_destinations" //array of string +#define AFEventParamTravelStart @"af_travel_start" +#define AFEventParamTravelEnd @"af_travel_end" +#define AFEventParamNumAdults @"af_num_adults" +#define AFEventParamNumChildren @"af_num_children" +#define AFEventParamNumInfants @"af_num_infants" +#define AFEventParamSuggestedHotels @"af_suggested_hotels" //array of string + +#define AFEventParamUserScore @"af_user_score" +#define AFEventParamHotelScore @"af_hotel_score" +#define AFEventParamPurchaseCurrency @"af_purchase_currency" + +#define AFEventParamPreferredStarRatings @"af_preferred_star_ratings" //array of int (basically a tupple (min,max) but we'll use array of int and instruct the developer to use two values) + +#define AFEventParamPreferredPriceRange @"af_preferred_price_range" //array of int (basically a tupple (min,max) but we'll use array of int and instruct the developer to use two values) +#define AFEventParamPreferredNeighborhoods @"af_preferred_neighborhoods" //array of string +#define AFEventParamPreferredNumStops @"af_preferred_num_stops" + + + typedef enum { EmailCryptTypeNone = 0, EmailCryptTypeSHA1 = 1, - EmailCryptTypeMD5 = 2 + EmailCryptTypeMD5 = 2, + EmailCryptTypeSHA256 = 3 } EmailCryptType; /* @@ -163,7 +206,8 @@ typedef enum { /* * AppsFlyer delegate. See AppsFlyerTrackerDelegate abvoe */ -@property (unsafe_unretained, nonatomic) id delegate; +//@property (unsafe_unretained, nonatomic) id delegate; //RD-5419 +@property (weak, nonatomic) id delegate; /* * In app purchase receipt validation Apple environment (production or sandbox). The default value @@ -178,6 +222,11 @@ typedef enum { */ @property (nonatomic, setter = setUseUninstallSandbox:) BOOL useUninstallSandbox; +/* + * Advertising Id (exposed for RemoteDebug) + */ +@property (nonatomic, strong) NSString *advertiserId; + /* * Use this to send the User's emails */ @@ -192,7 +241,7 @@ typedef enum { * Example : * [[AppsFlyer sharedTracker] trackEvent:@"hotel-booked" withValue:"200"]; */ -- (void) trackEvent:(NSString*)eventName withValue:(NSString*)value; +- (void) trackEvent:(NSString*)eventName withValue:(NSString*)value __attribute__((deprecated)); /* * Use this method to track an events with mulitple values. See AppsFlyer's documentation for details. @@ -213,6 +262,7 @@ typedef enum { failure:(void (^)(NSError *error, id reponse)) failedBlock NS_AVAILABLE(10_7, 7_0); + /* * To Track location for geo-fencing. */ @@ -261,4 +311,7 @@ typedef enum { - (NSString *) getSDKVersion; + +- (void) remoteDebuggingCallWithData:(NSString *) data; + @end diff --git a/ios/RNAppsFlyer.h b/ios/RNAppsFlyer.h old mode 100644 new mode 100755 diff --git a/ios/RNAppsFlyer.m b/ios/RNAppsFlyer.m old mode 100644 new mode 100755 diff --git a/ios/RNAppsFlyer.xcodeproj/project.pbxproj b/ios/RNAppsFlyer.xcodeproj/project.pbxproj old mode 100644 new mode 100755 diff --git a/ios/RNAppsFlyer.xcodeproj/xcuserdata/ppsreejith.xcuserdatad/xcschemes/RNAppsFlyer.xcscheme b/ios/RNAppsFlyer.xcodeproj/xcuserdata/ppsreejith.xcuserdatad/xcschemes/RNAppsFlyer.xcscheme old mode 100644 new mode 100755 diff --git a/ios/RNAppsFlyer.xcodeproj/xcuserdata/ppsreejith.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/RNAppsFlyer.xcodeproj/xcuserdata/ppsreejith.xcuserdatad/xcschemes/xcschememanagement.plist old mode 100644 new mode 100755 diff --git a/package.json b/package.json old mode 100644 new mode 100755