[ios] Added MobileAppTracker and Aarki sdks

This commit is contained in:
Igor Khmurets 2013-11-15 16:57:39 +03:00 committed by Alex Zolotarev
parent 2f7051635f
commit 427f1fc8cd
17 changed files with 953 additions and 26 deletions

View file

@ -4,3 +4,5 @@
#define isIPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define APP [UIApplication sharedApplication]
#define FIRST_LAUNCH_KEY @"FIRST_LAUNCH_KEY"

View file

@ -4,6 +4,9 @@
#import "Preferences.h"
#import "LocationManager.h"
#import "Statistics.h"
#import "AarkiContact.h"
#import <MobileAppTracker/MobileAppTracker.h>
#import "Config.h"
#include <sys/xattr.h>
@ -93,6 +96,12 @@ void InitLocalizedStrings()
[FBAppEvents activateApp];
m_didOpenedWithUrl = NO;
if ([[NSUserDefaults standardUserDefaults] boolForKey:FIRST_LAUNCH_KEY])
{
NSString * appId = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"AarkiClientSecurityKey"];
[AarkiContact registerApp:appId];
}
}
- (SettingsManager *)settingsManager
@ -193,6 +202,17 @@ void InitLocalizedStrings()
[self subscribeToStorage];
NSString * advertiserId = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MobileAppTrackerAdvertiserId"];
NSString * conversionKey = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MobileAppTrackerConversionKey"];
[[MobileAppTracker sharedManager] startTrackerWithMATAdvertiserId:advertiserId MATConversionKey:conversionKey];
#if DEBUG
[[MobileAppTracker sharedManager] setDebugMode:YES];
#endif
if ([[NSUserDefaults standardUserDefaults] boolForKey:FIRST_LAUNCH_KEY])
[[MobileAppTracker sharedManager] trackInstall];
else
[[MobileAppTracker sharedManager] trackUpdate];
return [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey] != nil;
}

View file

@ -27,6 +27,18 @@
5797B6D616C931EE00FFE6D2 /* resources-mdpi in Resources */ = {isa = PBXBuildFile; fileRef = 5797B6D316C931EE00FFE6D2 /* resources-mdpi */; };
5797B6D716C931EE00FFE6D2 /* resources-xhdpi in Resources */ = {isa = PBXBuildFile; fileRef = 5797B6D416C931EE00FFE6D2 /* resources-xhdpi */; };
5797B6D816C931EE00FFE6D2 /* resources-xhdpi in Resources */ = {isa = PBXBuildFile; fileRef = 5797B6D416C931EE00FFE6D2 /* resources-xhdpi */; };
97ECD871183620CE00F77A46 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD870183620CE00F77A46 /* AdSupport.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
97ECD872183625F900F77A46 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD870183620CE00F77A46 /* AdSupport.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
97ECD87518362AC600F77A46 /* MobileAppTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87418362AC600F77A46 /* MobileAppTracker.framework */; };
97ECD87618362AC700F77A46 /* MobileAppTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87418362AC600F77A46 /* MobileAppTracker.framework */; };
97ECD87818362B3D00F77A46 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87718362B3D00F77A46 /* CoreTelephony.framework */; };
97ECD87A18362B5400F77A46 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87918362B5400F77A46 /* MobileCoreServices.framework */; };
97ECD87C1836584B00F77A46 /* libAarkiSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87B1836584B00F77A46 /* libAarkiSDK.a */; };
97ECD87D1836584B00F77A46 /* libAarkiSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87B1836584B00F77A46 /* libAarkiSDK.a */; };
97ECD87F1836594400F77A46 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87E1836594400F77A46 /* StoreKit.framework */; };
97ECD8801836594A00F77A46 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87E1836594400F77A46 /* StoreKit.framework */; };
97ECD881183674CA00F77A46 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87718362B3D00F77A46 /* CoreTelephony.framework */; };
97ECD8821836751100F77A46 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97ECD87918362B5400F77A46 /* MobileCoreServices.framework */; };
CB252D6F16FF82C9001E41E9 /* Statistics.m in Sources */ = {isa = PBXBuildFile; fileRef = CB252D6C16FF82C8001E41E9 /* Statistics.m */; };
CB252D7016FF82C9001E41E9 /* Statistics.m in Sources */ = {isa = PBXBuildFile; fileRef = CB252D6C16FF82C8001E41E9 /* Statistics.m */; };
ED3B8DB4182CD96F001F124F /* libFlurry_4.3.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3B8DB3182CD96F001F124F /* libFlurry_4.3.0.a */; };
@ -1356,6 +1368,14 @@
5797B6D416C931EE00FFE6D2 /* resources-xhdpi */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-xhdpi"; path = "../../data/resources-xhdpi"; sourceTree = "<group>"; };
77DDA9A116D504F900804BDB /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* MapsWithMe-Pro.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "MapsWithMe-Pro.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
97ECD86D1836200A00F77A46 /* Aarki.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Aarki.h; sourceTree = "<group>"; };
97ECD86E1836200A00F77A46 /* AarkiContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AarkiContact.h; sourceTree = "<group>"; };
97ECD870183620CE00F77A46 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
97ECD87418362AC600F77A46 /* MobileAppTracker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MobileAppTracker.framework; sourceTree = "<group>"; };
97ECD87718362B3D00F77A46 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; };
97ECD87918362B5400F77A46 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
97ECD87B1836584B00F77A46 /* libAarkiSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAarkiSDK.a; sourceTree = "<group>"; };
97ECD87E1836594400F77A46 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
CB252D6916FF82C8001E41E9 /* Flurry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Flurry.h; sourceTree = "<group>"; };
CB252D6B16FF82C8001E41E9 /* Statistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Statistics.h; sourceTree = "<group>"; };
CB252D6C16FF82C8001E41E9 /* Statistics.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Statistics.m; sourceTree = "<group>"; };
@ -2079,6 +2099,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
97ECD87F1836594400F77A46 /* StoreKit.framework in Frameworks */,
97ECD87A18362B5400F77A46 /* MobileCoreServices.framework in Frameworks */,
97ECD87818362B3D00F77A46 /* CoreTelephony.framework in Frameworks */,
97ECD871183620CE00F77A46 /* AdSupport.framework in Frameworks */,
ED48BBC617C3C0F9003E7E92 /* Security.framework in Frameworks */,
EDBB18B816972B0600AF0742 /* libzlib.a in Frameworks */,
ED8B1A2116772AB4003CAD0A /* MessageUI.framework in Frameworks */,
@ -2094,6 +2118,7 @@
EE12020A11CD464100ABDD5D /* libcoding.a in Frameworks */,
EE12020C11CD464100ABDD5D /* libexpat.a in Frameworks */,
EE12020E11CD464100ABDD5D /* libgeometry.a in Frameworks */,
97ECD87C1836584B00F77A46 /* libAarkiSDK.a in Frameworks */,
EE12020F11CD464100ABDD5D /* libindexer.a in Frameworks */,
EE12021011CD464100ABDD5D /* libmap.a in Frameworks */,
EE12021211CD464100ABDD5D /* libgraphics.a in Frameworks */,
@ -2105,6 +2130,7 @@
49DE1CA413437D7A00A93417 /* libbzip2.a in Frameworks */,
FA2EF9C713630C3B00E3E484 /* libplatform.a in Frameworks */,
FAAFD699139D9C6B000AE70C /* libsearch.a in Frameworks */,
97ECD87518362AC600F77A46 /* MobileAppTracker.framework in Frameworks */,
FAEA8B2A1437CA80002A6737 /* libjansson.a in Frameworks */,
FAF29847146EEF4A00FF0057 /* libprotobuf.a in Frameworks */,
EE5A34E6156FCB9500E34FFE /* libgui.a in Frameworks */,
@ -2116,6 +2142,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
97ECD8821836751100F77A46 /* MobileCoreServices.framework in Frameworks */,
97ECD8801836594A00F77A46 /* StoreKit.framework in Frameworks */,
97ECD881183674CA00F77A46 /* CoreTelephony.framework in Frameworks */,
97ECD872183625F900F77A46 /* AdSupport.framework in Frameworks */,
ED48BBC717C3C105003E7E92 /* Security.framework in Frameworks */,
FAFCF64F169C9E8100BD77D2 /* MessageUI.framework in Frameworks */,
EDBB18B916972B3000AF0742 /* libzlib.a in Frameworks */,
@ -2142,8 +2172,10 @@
FAFB090D151215EE0041901D /* libbzip2.a in Frameworks */,
FAFB090E151215EE0041901D /* libplatform.a in Frameworks */,
FAFB090F151215EE0041901D /* libsearch.a in Frameworks */,
97ECD87618362AC700F77A46 /* MobileAppTracker.framework in Frameworks */,
FAFB0910151215EE0041901D /* libjansson.a in Frameworks */,
FAFB0911151215EE0041901D /* libprotobuf.a in Frameworks */,
97ECD87D1836584B00F77A46 /* libAarkiSDK.a in Frameworks */,
EE5A34E7156FCBD800E34FFE /* libgui.a in Frameworks */,
EEFFB4E915DCDD8A00BACE1C /* libanim.a in Frameworks */,
);
@ -2204,6 +2236,7 @@
29B97314FDCFA39411CA2CEA /* Maps */ = {
isa = PBXGroup;
children = (
ED48BBC517C3C0F9003E7E92 /* Security.framework */,
CB252D6816FF82C8001E41E9 /* Statistics */,
FA36B8011540388B004560CC /* Bookmarks */,
FA34BEC71338D6DB00FFB2A7 /* Common */,
@ -2305,6 +2338,10 @@
children = (
ED48BBC517C3C0F9003E7E92 /* Security.framework */,
EDF924DA183380CE00539672 /* FacebookSDK.framework */,
97ECD87E1836594400F77A46 /* StoreKit.framework */,
97ECD87918362B5400F77A46 /* MobileCoreServices.framework */,
97ECD87718362B3D00F77A46 /* CoreTelephony.framework */,
97ECD870183620CE00F77A46 /* AdSupport.framework */,
ED8B1A2016772AB4003CAD0A /* MessageUI.framework */,
ED8B1A2016772AB4003CAD0A /* MessageUI.framework */,
EEB7E22111E9079400080A68 /* CoreLocation.framework */,
@ -2325,6 +2362,10 @@
ED3B8DB3182CD96F001F124F /* libFlurry_4.3.0.a */,
CB252D6B16FF82C8001E41E9 /* Statistics.h */,
CB252D6C16FF82C8001E41E9 /* Statistics.m */,
97ECD87B1836584B00F77A46 /* libAarkiSDK.a */,
97ECD86D1836200A00F77A46 /* Aarki.h */,
97ECD86E1836200A00F77A46 /* AarkiContact.h */,
97ECD87418362AC600F77A46 /* MobileAppTracker.framework */,
);
path = Statistics;
sourceTree = "<group>";
@ -4464,8 +4505,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4473,6 +4515,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Lite";
@ -4569,8 +4613,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4578,6 +4623,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Production Lite";
@ -4629,8 +4676,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4638,6 +4686,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Debug Lite";
@ -4693,8 +4743,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4702,6 +4753,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "AdHoc Lite";
@ -4753,8 +4806,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4762,6 +4816,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Full";
@ -4813,8 +4869,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4822,6 +4879,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Debug Full";
@ -4877,8 +4936,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4886,6 +4946,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "AdHoc Full";
@ -4941,8 +5003,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -4950,6 +5013,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Production Full";
@ -5004,8 +5069,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5013,6 +5079,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Release Lite";
@ -5067,8 +5135,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5076,6 +5145,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Release Full";
@ -5130,8 +5201,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(SRCROOT)/FacebookSDK",
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5139,6 +5211,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Full Release";
@ -5150,7 +5224,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5158,6 +5233,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Full Release";
@ -5169,7 +5246,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5177,6 +5255,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Lite";
@ -5188,7 +5268,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5196,6 +5277,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Simulator Full";
@ -5207,7 +5290,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5215,6 +5299,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Debug Lite";
@ -5226,7 +5312,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5234,6 +5321,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Debug Full";
@ -5245,7 +5334,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5253,6 +5343,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "AdHoc Lite";
@ -5264,7 +5356,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5272,6 +5365,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Release Lite";
@ -5283,7 +5378,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5291,6 +5387,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "AdHoc Full";
@ -5302,7 +5400,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5310,6 +5409,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Release Full";
@ -5321,7 +5422,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5329,6 +5431,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Production Lite";
@ -5340,7 +5444,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/FacebookSDK",
"$(SRCROOT)/FacebookSDK",
"${SRCROOT}/Statistics",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Maps_Prefix.pch;
@ -5348,6 +5453,8 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/kirill/developer/projects/omim/iphone/Maps/Statistics,
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps",
"/Users/gogosapiens/Xcode\\ Projects/omim/iphone/Maps/Statistics",
);
};
name = "Production Full";

View file

@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FlurryKey</key>
<string>***REMOVED***</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
@ -54,6 +52,8 @@
</array>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>FlurryKey</key>
<string>***REMOVED***</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
@ -77,5 +77,11 @@
<string>MapsWithMe Lite, offline maps</string>
<key>FacebookAppID</key>
<string>272257082798521</string>
<key>AarkiClientSecurityKey</key>
<string>lN96dHHOKoi6mGD5NtsFx8NmuQqM</string>
<key>MobileAppTrackerConversionKey</key>
<string>***REMOVED***</string>
<key>MobileAppTrackerAdvertiserId</key>
<string>14130</string>
</dict>
</plist>

View file

@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FlurryKey</key>
<string>***REMOVED***</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
@ -87,6 +85,8 @@
</array>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>FlurryKey</key>
<string>***REMOVED***</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
@ -159,5 +159,11 @@
<string>MapsWithMe, offline maps</string>
<key>FacebookAppID</key>
<string>185237551520383</string>
<key>AarkiClientSecurityKey</key>
<string>2mWtcnLWDuXgdKEhYLmatwh3cby3</string>
<key>MobileAppTrackerConversionKey</key>
<string>***REMOVED***</string>
<key>MobileAppTrackerAdvertiserId</key>
<string>14130</string>
</dict>
</plist>

View file

@ -0,0 +1,107 @@
#import <UIKit/UIKit.h>
//! Protocol for customizing Aarki offers and providing offer request callbacks
/*!
The \a didExit callback is called whenever the user leaves the view controller.
This may happen when the user successfully completes, quits or abandons the offer.
*/
@class AarkiOffer;
@protocol AarkiDelegate<NSObject>
@optional
- (void)didExit;
@end
@protocol AarkiOfferDisplay<NSObject>
@required
//! Show the offer (as a full screen modal overlay)
/*!
\param viewController For example the controller of the view which contains the ad which user clicks to present this offer
This method is essentially equivalent to:
\code
[viewController presentModalViewController:self animated:animated];
\endcode
The offer will be dismissed with animation if it was presented with animation.
\sa dismiss
*/
- (void)presentWithParent:(UIViewController *)viewController animated:(BOOL)animated;
//! Hide the offer. You will not need to call this method explicitly.
- (void)dismiss;
//! Internal
- (void)setViewOptions:(NSDictionary *)dict;
@property (assign) id<AarkiDelegate> loaderDelegate;
@end
typedef enum {
AarkiStatusOK,
AarkiStatusNotAvailable,
AarkiStatusAppNotRegistered
} AarkiStatus;
typedef void(^AarkiLoaderCompletionBlock)(AarkiStatus);
//! Class to request Aarki offers
@interface Aarki : NSObject <AarkiDelegate>
{
@public
id<AarkiOfferDisplay> offerViewController;
id<AarkiDelegate> delegate;
}
@property (nonatomic, retain) id<AarkiOfferDisplay> offerViewController;
@property (nonatomic, assign) id<AarkiDelegate> delegate;
@property (nonatomic, copy) AarkiLoaderCompletionBlock completionBlock_;
//! Initialize
- (id)init;
// Engage-to-earn video and rich media ads
- (void)fetchFullScreenAd:(NSString *)placementId
options:(NSDictionary *)options
completion:(AarkiLoaderCompletionBlock)completion;
- (void)showFullScreenAd:(NSString *)placementId
withParent:(UIViewController *)parentViewController
options:(NSDictionary *)options;
- (void)showFullScreenAd:(NSString *)placementId
withParent:(UIViewController *)parentViewController
options:(NSDictionary *)options
completion:(AarkiLoaderCompletionBlock)completion;
// Interstitials
- (void)fetchInterstitialAd:(NSString *)placementId
options:(NSDictionary *)options
completion:(AarkiLoaderCompletionBlock)completion;
- (void)showInterstitialAd:(NSString *)placementId
withParent:(UIViewController *)parentViewController
options:(NSDictionary *)options
completion:(AarkiLoaderCompletionBlock)completion;
// Offer Deck
- (void)showAds:(NSString *)placementId
withParent:(UIViewController *)parentViewController
options:(NSDictionary *)options;
- (id<AarkiOfferDisplay>)nativeViewControllerForPlacement:(NSString *)placementId options:(NSDictionary *)options;
@end

View file

@ -0,0 +1,48 @@
#import <UIKit/UIKit.h>
typedef void(^AarkiRewards)(NSString *placementId, NSNumber *rewards);
@interface AarkiContact : NSObject
// Register Application in Aarki System
+ (void)registerApp:(NSString *)securityKey;
// Pass security configuration (DEPRECATED in SDK 4.3)
+ (void)registerAppWithClientSecurityKey:(NSString *)securityKey __attribute__ ((deprecated("Please use registerApp:(NSString *)securityKey")));
// Register Application (DEPRECATED in SDK 4.3)
+ (void)registerApp:(NSString *)installEventId withClientSecurityKey:(NSString *)securityKey __attribute__ ((deprecated("Please use registerApp:(NSString *)securityKey")));
// Register custom event
+ (void)registerEvent:(NSString *)eventId;
// Set reward callback
+ (void)setRewardCallback:(AarkiRewards)rewardCallback;
// Set custom user ID
+ (void)setUserId:(NSString *)userId;
// For extension developers, pass values to distinguish client type, e. g. "unity"
+ (void)setClientType:(NSString *)clientType;
// Per-app unique identifier
+ (NSString *)aarkiIdentifier;
// User ID
+ (NSString *)userId;
// OpenUDID
+ (NSString *)openUDID;
// Advertising Identifier
+ (NSString *)advertisingId;
+ (BOOL)advertisingTrackingEnabled;
// Aarki SDK version
+ (NSString *)libraryVersion;
// Collect standard request information
+ (void)setStandardRequestParameters:(NSMutableDictionary *)requestDict;
@end

View file

@ -0,0 +1 @@
Versions/Current/Headers

View file

@ -0,0 +1 @@
Versions/Current/MobileAppTracker

View file

@ -0,0 +1 @@
Versions/Current/Resources

View file

@ -0,0 +1,622 @@
//
// MobileAppTracker.h
// MobileAppTracker
//
// Created by HasOffers on 10/30/13.
// Copyright (c) 2013 HasOffers. All rights reserved.
//
#import <Foundation/Foundation.h>
#define MATVERSION @"2.6.1"
@protocol MobileAppTrackerDelegate;
/*!
MobileAppTracker provides the methods to send events and actions to the
HasOffers servers.
*/
@interface MobileAppTracker : NSObject
#pragma mark - MATGender
/** @name Gender type constants */
/*!
Gender type. An integer -- 0 or 1.
*/
typedef NSInteger MATGender;
/*!
Gender type MALE. Equals 0.
*/
extern const NSInteger MAT_GENDER_MALE;
/*!
Gender type FEMALE. Equals 1.
*/
extern const NSInteger MAT_GENDER_FEMALE;
#pragma mark - MobileAppTracker Shared Instance
/** @name MobileAppTracker Shared Instance */
/*!
A singleton of the MobileAppTracker class
*/
+ (MobileAppTracker *)sharedManager;
#pragma mark - Main Initializer
/** @name Intitializing MobileAppTracker With Advertiser Information */
/*!
Starts Mobile App Tracker with MAT Advertiser Id and MAT Conversion Key. Both values are required.
@param aid the MAT Advertiser Id provided in Mobile App Tracking.
@param key the MAT Conversion Key provided in Mobile App Tracking.
@return YES if error occurs, NO otherwise.
*/
- (BOOL)startTrackerWithMATAdvertiserId:(NSString *)aid MATConversionKey:(NSString *)key;
#pragma mark - Properties
/** @name MAT SDK Callback Delegate */
/*!
[MobileAppTrackerDelegate](MobileAppTrackerDelegate) : A Delegate used by MobileAppTracker to callback.
Set this to receive success and failure callbacks from the MAT SDK.
*/
@property (nonatomic, assign) id <MobileAppTrackerDelegate> delegate;
/** @name MAT Data Parameters */
/*!
Provides a view of the parameters used by the sdk at any time.
*/
@property (nonatomic, readonly) NSDictionary *sdkDataParameters;
#pragma mark - Debug And Test
/** @name Debug And Test */
/*!
Specifies that the server responses should include debug information.
@warning This is only for testing. You must turn this off for release builds.
@param yesorno defaults to NO.
*/
- (void)setDebugMode:(BOOL)yesorno;
/*!
Set to YES to allow duplicate requests to be registered with the MAT server.
@warning This is only for testing. You must turn this off for release builds.
@param yesorno defaults to NO.
*/
- (void)setAllowDuplicateRequests:(BOOL)yesorno;
#pragma mark - Data Parameters
/** @name Setter Methods */
/*!
Set the Apple Advertising Identifier available in iOS 6.
@param appleAdvertisingIdentifier - Apple Advertising Identifier
*/
- (void)setAppleAdvertisingIdentifier:(NSUUID *)appleAdvertisingIdentifier;
/*!
Set the Apple Vendor Identifier available in iOS 6.
@param appleVendorIdentifier - Apple Vendor Identifier
*/
- (void)setAppleVendorIdentifier:(NSUUID * )appleVendorIdentifier;
/*!
Sets the currency code.
Default: USD
@param currencyCode The string name for the currency code.
*/
- (void)setCurrencyCode:(NSString *)currencyCode;
/*!
Sets the jailbroken device flag.
@param yesorno The jailbroken device flag.
*/
- (void)setJailbroken:(BOOL)yesorno;
/*!
Sets the MAT advertiser id.
@param advertiserId The string id for the MAT advertiser id.
*/
- (void)setMATAdvertiserId:(NSString *)advertiserId;
/*!
Sets the MAT conversion key.
@param conversionKey The string value for the MAT conversion key.
*/
- (void)setMATConversionKey:(NSString *)conversionKey;
/*!
Sets the package name (bundle_id).
Defaults to the Bundle Id of the app that is running the sdk.
@param packageName The string name for the package.
*/
- (void)setPackageName:(NSString *)packageName;
/*!
Specifies if the sdk should auto detect if the iOS device is jailbroken.
YES/NO
@param yesorno YES will detect if the device is jailbroken, defaults to YES.
*/
- (void)setShouldAutoDetectJailbroken:(BOOL)yesorno;
/*!
Specifies if the sdk should pull the Apple Advertising Identifier from the device.
YES/NO
@param yesorno YES will set the Apple Advertising Identifier, defaults to NO.
*/
- (void)setShouldAutoGenerateAppleAdvertisingIdentifier:(BOOL)yesorno;
/*!
Specifies if the sdk should pull the Apple Vendor Identifier from the device.
YES/NO
@param yesorno YES will set the Apple Vendor Identifier, defaults to NO.
*/
- (void)setShouldAutoGenerateAppleVendorIdentifier:(BOOL)yesorno;
/*!
Sets the MAC address.
@param macAddress mac address, defaults to nil.
*/
- (void)setMACAddress:(NSString *)macAddress;
/*!
Sets the ODIN-1.
@param odin1 ODIN-1, defaults to nil.
*/
- (void)setODIN1:(NSString *)odin1;
/*!
Sets the OpenUDID.
@param openUDID OpenUDID, defaults to nil.
*/
- (void)setOpenUDID:(NSString *)openUDID;
/*!
Sets the site id.
@param siteId The string id for the site id.
*/
- (void)setSiteId:(NSString *)siteId;
/*!
Set the Trusted Preference Identifier (TPID).
@param trusteTPID - Trusted Preference Identifier (TPID)
*/
- (void)setTrusteTPID:(NSString *)trusteTPID;
/*!
Sets the user id.
@param userId The string name for the user id.
*/
- (void)setUserId:(NSString *)userId;
/*!
Sets the UIID. UIID is replacement of the deprecated UDID in iOS for Asia and Japan.
Ref: https://github.com/akisute/UIApplication-UIID
@param uiid UIID, defaults to nil.
*/
- (void)setUIID:(NSString *)uiid;
/*!
Sets the user's age.
@param userAge user's age
*/
- (void)setAge:(NSInteger)userAge;
/*!
Sets the user's gender.
@param userGender user's gender, possible values MAT_GENDER_MALE (0), MAT_GENDER_FEMALE (1).
*/
- (void)setGender:(MATGender)userGender;
/*!
Sets the user's location.
@param latitude user's latitude
@param longitude user's longitude
*/
- (void)setLatitude:(double)latitude longitude:(double)longitude;
/*!
Sets the user's location including altitude.
@param latitude user's latitude
@param longitude user's longitude
@param altitude user's altitude
*/
- (void)setLatitude:(double)latitude longitude:(double)longitude altitude:(double)altitude;
/*!
Set app-level ad-tracking.
YES/NO
@param enable YES means opt-in, NO means opt-out.
*/
- (void)setAppAdTracking:(BOOL)enable;
#pragma mark - Track Install/Update Methods
/** @name Track Installs and/or Updates */
/*!
Record an Install or an Update by determining if a previous
version of this app is already installed on the user's device.
To be used if this is the first version of the app
or the previous version also included MAT sdk.
To be called when an app opens; typically in the didFinishLaunching event.
Works only once per app version, does not have any effect if called again in the same app version.
*/
- (void)trackInstall;
/*!
Record an Install or an Update by determining if a previous
version of this app is already installed on the user's device.
To be used if this is the first version of the app
or the previous version also included MAT sdk.
To be called when an app opens; typically in the didFinishLaunching event.
Works only once per app version, does not have any effect if called again in the same app version.
@param refId A reference id used to track an install and/or update, corresponds to advertiser_ref_id on the website.
*/
- (void)trackInstallWithReferenceId:(NSString *)refId;
/*!
Instead of an Install, force an Update to be recorded.
To be used if MAT sdk was not integrated in the previous
version of this app. Only use this method if your app can distinguish
between an install and an update, else use trackInstall.
To be called when an app opens; typically in the didFinishLaunching event.
Works only once per app version, does not have any effect if called again in the same app version.
*/
- (void)trackUpdate;
/*!
Instead of an Install, force an Update to be recorded.
To be used if MAT sdk was not integrated in the previous
version of this app. Only use this method if your app can distinguish
between an install and an update, else use trackInstallWithReferenceId.
To be called when an app opens; typically in the didFinishLaunching event.
Works only once per app version, does not have any effect if called again in the same app version.
@param refId A reference id used to track an update, corresponds to advertiser_ref_id on the website.
*/
- (void)trackUpdateWithReferenceId:(NSString *)refId;
#pragma mark - Track Actions
/** @name Track Actions */
/*!
Record a Track Action for an Event Id or Name.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId;
/*!
Record a Track Action for an Event Id or Name and reference id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
referenceId:(NSString *)refId;
/*!
Record a Track Action for an Event Id or Name, revenue and currency.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode;
/*!
Record a Track Action for an Event Id or Name and reference id, revenue and currency.
@param eventIdOrName The event name or event id.
@param isId Yes if eventIdOrName is the event id for a pre-defined event on the MAT website, NO otherwise
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
referenceId:(NSString *)refId
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode;
#pragma mark - Track Actions With Event Items
/** @name Track Actions With Event Items */
/*!
Record a Track Action for an Event Id or Name and a list of event items.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems;
/*!
Record a Track Action for an Event Name or Id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems
referenceId:(NSString *)refId;
/*!
Record a Track Action for an Event Name or Id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode;
/*!
Record a Track Action for an Event Name or Id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems
referenceId:(NSString *)refId
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode;
/*!
Record a Track Action for an Event Name or Id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
@param transactionState The in-app purchase transaction SKPaymentTransactionState as received from the iTunes store.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems
referenceId:(NSString *)refId
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode
transactionState:(NSInteger)transactionState;
/*!
Record a Track Action for an Event Name or Id.
@param eventIdOrName The event name or event id.
@param isId Yes if the event is an Id otherwise No if the event is a name only.
@param eventItems An array of MATEventItem objects
@param refId The referencId for an event, corresponds to advertiser_ref_id on the website.
@param revenueAmount The revenue amount for the event.
@param currencyCode The currency code override for the event. Blank defaults to sdk setting.
@param transactionState The in-app purchase transaction SKPaymentTransactionState as received from the iTunes store.
@param receipt The in-app purchase transaction receipt as received from the iTunes store.
*/
- (void)trackActionForEventIdOrName:(NSString *)eventIdOrName
eventIsId:(BOOL)isId
eventItems:(NSArray *)eventItems
referenceId:(NSString *)refId
revenueAmount:(float)revenueAmount
currencyCode:(NSString *)currencyCode
transactionState:(NSInteger)transactionState
receipt:(NSData *)receipt;
#pragma mark - Cookie Tracking
/** @name Cookie Tracking */
/*!
Sets whether or not to user cookie based tracking.
Default: NO
@param yesorno YES/NO for cookie based tracking.
*/
- (void)setUseCookieTracking:(BOOL)yesorno;
#pragma mark - App-to-app Tracking
/** @name App-To-App Tracking */
/*!
Sets a url to be used with app-to-app tracking so that
the sdk can open the download (redirect) url. This is
used in conjunction with the setTracking:advertiserId:offerId:publisherId:redirect: method.
@param redirect_url The string name for the url.
*/
- (void)setRedirectUrl:(NSString *)redirectURL;
/*!
Start a Tracking Session on the MAT server.
@param targetAppPackageName The bundle identifier of the target app.
@param targetAppAdvertiserId The MAT advertiser id of the target app.
@param offerId The MAT offer id of the target app.
@param publisherId The MAT publisher id of the target app.
@param shouldRedirect Should redirect to the download url if the tracking session was successfully created. See setRedirectUrl:.
*/
- (void)setTracking:(NSString *)targetAppPackageName
advertiserId:(NSString *)targetAppAdvertiserId
offerId:(NSString *)targetAdvertiserOfferId
publisherId:(NSString *)targetAdvertiserPublisherId
redirect:(BOOL)shouldRedirect;
#pragma mark - Re-Engagement Method
/** @name Application Re-Engagement */
/*!
Record the URL and Source when an application is opened via a URL scheme.
This typically occurs during OAUTH or when an app exits and is returned
to via a URL. The data will be sent to the HasOffers server so that a
Re-Engagement can be recorded.
@param urlString the url string used to open your app.
@param sourceApplication the source used to open your app. For example, mobile safari.
*/
- (void)applicationDidOpenURL:(NSString *)urlString sourceApplication:(NSString *)sourceApplication;
@end
#pragma mark - MobileAppTrackerDelegate
/** @name MobileAppTrackerDelegate */
/*!
Protocol that allows for callbacks from the MobileAppTracker methods.
To use, set your class as the delegate for MAT and implement these methods.
*/
@protocol MobileAppTrackerDelegate <NSObject>
@optional
/*!
Delegate method called when a track action succeeds.
@param tracker The MobileAppTracker instance.
@param data The success data returned by the MobileAppTracker.
*/
- (void)mobileAppTracker:(MobileAppTracker *)tracker didSucceedWithData:(NSData *)data;
/*!
Delegate method called when a track action fails.
@param tracker The MobileAppTracker instance.
@param error Error object returned by the MobileAppTracker.
*/
- (void)mobileAppTracker:(MobileAppTracker *)tracker didFailWithError:(NSError *)error;
@end
#pragma mark - MATEventItem
/*!
MATEventItem represents event items for use with MAT events.
*/
@interface MATEventItem : NSObject
/** @name MATEventItem Properties */
/*!
name of the event item
*/
@property (nonatomic, copy) NSString *item;
/*!
unit price of the event item
*/
@property (nonatomic, assign) float unitPrice;
/*!
quantity of the event item
*/
@property (nonatomic, assign) int quantity;
/*!
revenue of the event item
*/
@property (nonatomic, assign) float revenue;
/*!
an extra parameter that corresponds to attribute_sub1 property of the event item
*/
@property (nonatomic, copy) NSString *attribute1;
/*!
an extra parameter that corresponds to attribute_sub2 property of the event item
*/
@property (nonatomic, copy) NSString *attribute2;
/*!
an extra parameter that corresponds to attribute_sub3 property of the event item
*/
@property (nonatomic, copy) NSString *attribute3;
/*!
an extra parameter that corresponds to attribute_sub4 property of the event item
*/
@property (nonatomic, copy) NSString *attribute4;
/*!
an extra parameter that corresponds to attribute_sub5 property of the event item
*/
@property (nonatomic, copy) NSString *attribute5;
/** @name Methods to create MATEventItem objects.*/
/*!
Method to create an event item. Revenue will be calculated using (quantity * unitPrice).
@param name name of the event item
@param unitPrice unit price of the event item
@param quantity quantity of the event item
*/
+ (MATEventItem *)eventItemWithName:(NSString *)name unitPrice:(float)unitPrice quantity:(int)quantity;
/*!
Method to create an event item.
@param name name of the event item
@param unitPrice unit price of the event item
@param quantity quantity of the event item
@param revenue revenue of the event item, to be used instead of (quantity * unitPrice)
*/
+ (MATEventItem *)eventItemWithName:(NSString *)name unitPrice:(float)unitPrice quantity:(int)quantity revenue:(float)revenue;
/*!
Method to create an event item.
@param name name of the event item
@param attribute1 an extra parameter that corresponds to attribute_sub1 property of the event item
@param attribute2 an extra parameter that corresponds to attribute_sub2 property of the event item
@param attribute3 an extra parameter that corresponds to attribute_sub3 property of the event item
@param attribute4 an extra parameter that corresponds to attribute_sub4 property of the event item
@param attribute5 an extra parameter that corresponds to attribute_sub5 property of the event item
*/
+ (MATEventItem *)eventItemWithName:(NSString *)name
attribute1:(NSString *)attribute1
attribute2:(NSString *)attribute2
attribute3:(NSString *)attribute3
attribute4:(NSString *)attribute4
attribute5:(NSString *)attribute5;
/*!
Method to create an event item.
@param name name of the event item
@param unitPrice unit price of the event item
@param quantity quantity of the event item
@param revenue revenue of the event item, to be used instead of (quantity * unitPrice)
@param attribute1 an extra parameter that corresponds to attribute_sub1 property of the event item
@param attribute2 an extra parameter that corresponds to attribute_sub2 property of the event item
@param attribute3 an extra parameter that corresponds to attribute_sub3 property of the event item
@param attribute4 an extra parameter that corresponds to attribute_sub4 property of the event item
@param attribute5 an extra parameter that corresponds to attribute_sub5 property of the event item
*/
+ (MATEventItem *)eventItemWithName:(NSString *)name unitPrice:(float)unitPrice quantity:(int)quantity revenue:(float)revenue
attribute1:(NSString *)attribute1
attribute2:(NSString *)attribute2
attribute3:(NSString *)attribute3
attribute4:(NSString *)attribute4
attribute5:(NSString *)attribute5;
@end

View file

@ -0,0 +1 @@
A

Binary file not shown.

View file

@ -1,7 +1,9 @@
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <Foundation/NSThread.h>
#import "Config.h"
#include "../../platform/settings.hpp"
#include "../../platform/platform.hpp"
#include "../../base/logging.hpp"
@ -38,6 +40,9 @@ int main(int argc, char * argv[])
NSThread * thread = [[[NSThread alloc] initWithTarget:dummy selector:@selector(dummyThread:) object:nil] autorelease];
[thread start];
[[NSUserDefaults standardUserDefaults] setBool:(Settings::IsFirstLaunch()) forKey:FIRST_LAUNCH_KEY];
[[NSUserDefaults standardUserDefaults] synchronize];
retVal = UIApplicationMain(argc, argv, nil, nil);
}
return retVal;