diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 2c6e65884..a3f5d1d86 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -28,6 +28,7 @@ #import #import +#import "UIDevice+IdentifierAddition.h" #import "LinphoneManager.h" #include "linphonecore_utils.h" @@ -1522,6 +1523,9 @@ static void audioRouteChangeListenerCallback ( } linphone_proxy_config_set_dial_escape_plus(proxyCfg,substitute_plus_by_00); + NSString *instance = [NSString stringWithFormat:@"instance=%@", [[UIDevice currentDevice] uniqueDeviceIdentifier]]; + linphone_proxy_config_set_contact_parameters(proxyCfg, [instance UTF8String]); + linphone_core_add_proxy_config(theLinphoneCore,proxyCfg); //set to default proxy linphone_core_set_default_proxy(theLinphoneCore,proxyCfg); diff --git a/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.h b/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.h new file mode 100755 index 000000000..759d79295 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.h @@ -0,0 +1,15 @@ +// +// NSString+MD5Addition.h +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import + +@interface NSString(MD5Addition) + +- (NSString *) stringFromMD5; + +@end diff --git a/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.m b/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.m new file mode 100755 index 000000000..62abdbc61 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/Classes/NSString+MD5Addition.m @@ -0,0 +1,32 @@ +// +// NSString+MD5Addition.m +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import "NSString+MD5Addition.h" +#import + +@implementation NSString(MD5Addition) + +- (NSString *) stringFromMD5{ + + if(self == nil || [self length] == 0) + return nil; + + const char *value = [self UTF8String]; + + unsigned char outputBuffer[CC_MD5_DIGEST_LENGTH]; + CC_MD5(value, strlen(value), outputBuffer); + + NSMutableString *outputString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; + for(NSInteger count = 0; count < CC_MD5_DIGEST_LENGTH; count++){ + [outputString appendFormat:@"%02x",outputBuffer[count]]; + } + + return [outputString autorelease]; +} + +@end diff --git a/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.h b/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.h new file mode 100755 index 000000000..015a1cb96 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.h @@ -0,0 +1,33 @@ +// +// UIDevice(Identifier).h +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import + + +@interface UIDevice (IdentifierAddition) + +/* + * @method uniqueDeviceIdentifier + * @description use this method when you need a unique identifier in one app. + * It generates a hash from the MAC-address in combination with the bundle identifier + * of your app. + */ + +- (NSString *) uniqueDeviceIdentifier; + +/* + * @method uniqueGlobalDeviceIdentifier + * @description use this method when you need a unique global identifier to track a device + * with multiple apps. as example a advertising network will use this method to track the device + * from different apps. + * It generates a hash from the MAC-address only. + */ + +- (NSString *) uniqueGlobalDeviceIdentifier; + +@end diff --git a/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.m b/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.m new file mode 100755 index 000000000..353b023d2 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.m @@ -0,0 +1,99 @@ +// +// UIDevice(Identifier).m +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import "UIDevice+IdentifierAddition.h" +#import "NSString+MD5Addition.h" + +#include // Per msqr +#include +#include +#include + +@interface UIDevice(Private) + +- (NSString *) macaddress; + +@end + +@implementation UIDevice (IdentifierAddition) + +//////////////////////////////////////////////////////////////////////////////// +#pragma mark - +#pragma mark Private Methods + +// Return the local MAC addy +// Courtesy of FreeBSD hackers email list +// Accidentally munged during previous update. Fixed thanks to erica sadun & mlamb. +- (NSString *) macaddress{ + + int mib[6]; + size_t len; + char *buf; + unsigned char *ptr; + struct if_msghdr *ifm; + struct sockaddr_dl *sdl; + + mib[0] = CTL_NET; + mib[1] = AF_ROUTE; + mib[2] = 0; + mib[3] = AF_LINK; + mib[4] = NET_RT_IFLIST; + + if ((mib[5] = if_nametoindex("en0")) == 0) { + printf("Error: if_nametoindex error\n"); + return NULL; + } + + if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) { + printf("Error: sysctl, take 1\n"); + return NULL; + } + + if ((buf = malloc(len)) == NULL) { + printf("Could not allocate memory. error!\n"); + return NULL; + } + + if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) { + printf("Error: sysctl, take 2"); + free(buf); + return NULL; + } + + ifm = (struct if_msghdr *)buf; + sdl = (struct sockaddr_dl *)(ifm + 1); + ptr = (unsigned char *)LLADDR(sdl); + NSString *outstring = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X", + *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)]; + free(buf); + + return outstring; +} + +//////////////////////////////////////////////////////////////////////////////// +#pragma mark - +#pragma mark Public Methods + +- (NSString *) uniqueDeviceIdentifier{ + NSString *macaddress = [[UIDevice currentDevice] macaddress]; + NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; + + NSString *stringToHash = [NSString stringWithFormat:@"%@%@",macaddress,bundleIdentifier]; + NSString *uniqueIdentifier = [stringToHash stringFromMD5]; + + return uniqueIdentifier; +} + +- (NSString *) uniqueGlobalDeviceIdentifier{ + NSString *macaddress = [[UIDevice currentDevice] macaddress]; + NSString *uniqueIdentifier = [macaddress stringFromMD5]; + + return uniqueIdentifier; +} + +@end diff --git a/Classes/Utils/UIDeviceAddition/README.markdown b/Classes/Utils/UIDeviceAddition/README.markdown new file mode 100755 index 000000000..44266900b --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/README.markdown @@ -0,0 +1,21 @@ +# Description + +Apple stopped supporting a unique identifier for iOS. This source code solves the problem. It generates a unique identifier based on the mac address of the device in combination with the bundle identifier. + +What you need to do: + +- copy `NSString+MD5Addition` and `UIDevice+IdentifierAddition` to your project. + +- if your are using ARC in your project, you have to add the `-fno-objc-arc` flag to both files. [Apple ARC Guidelines](http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html) + +- use `[[UIDevice currentDevice] uniqueDeviceIdentifier]` to retrieve the unique identifier (it's a hash of your Bundle ID + MAC address) + +- use `[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier]` to retrieve a global unique identifier (it's a hash of the MAC address, used for tracking between different apps). + +- have fun and follow [gekitz](http://twitter.com/gekitz) ;) + +//Thanks to Erica Sadun for her UIDevice+Hardware Addition (used for the mac address retrieval). + +# License +see license file. + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/project.pbxproj b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/project.pbxproj new file mode 100755 index 000000000..80d78b66f --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/project.pbxproj @@ -0,0 +1,310 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + C1E8503213FFA4C300B38510 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E8503113FFA4C300B38510 /* UIKit.framework */; }; + C1E8503413FFA4C300B38510 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E8503313FFA4C300B38510 /* Foundation.framework */; }; + C1E8503613FFA4C300B38510 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E8503513FFA4C300B38510 /* CoreGraphics.framework */; }; + C1E8503C13FFA4C300B38510 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1E8503A13FFA4C300B38510 /* InfoPlist.strings */; }; + C1E8503F13FFA4C300B38510 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E8503E13FFA4C300B38510 /* main.m */; }; + C1E8504213FFA4C300B38510 /* UIDeviceAdditionAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E8504113FFA4C300B38510 /* UIDeviceAdditionAppDelegate.m */; }; + C1E8504513FFA4C300B38510 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = C1E8504313FFA4C300B38510 /* MainWindow.xib */; }; + C1E8504813FFA4C300B38510 /* UIDeviceAdditionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E8504713FFA4C300B38510 /* UIDeviceAdditionViewController.m */; }; + C1E8504B13FFA4C300B38510 /* UIDeviceAdditionViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C1E8504913FFA4C300B38510 /* UIDeviceAdditionViewController.xib */; }; + C1E8505413FFA51200B38510 /* UIDevice+IdentifierAddition.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E8505313FFA51200B38510 /* UIDevice+IdentifierAddition.m */; }; + C1E8506313FFAB5D00B38510 /* NSString+MD5Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E8506213FFAB5D00B38510 /* NSString+MD5Addition.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + C1E8502D13FFA4C300B38510 /* UIDeviceAddition.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIDeviceAddition.app; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E8503113FFA4C300B38510 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + C1E8503313FFA4C300B38510 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + C1E8503513FFA4C300B38510 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + C1E8503913FFA4C300B38510 /* UIDeviceAddition-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "UIDeviceAddition-Info.plist"; sourceTree = ""; }; + C1E8503B13FFA4C300B38510 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + C1E8503D13FFA4C300B38510 /* UIDeviceAddition-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIDeviceAddition-Prefix.pch"; sourceTree = ""; }; + C1E8503E13FFA4C300B38510 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + C1E8504013FFA4C300B38510 /* UIDeviceAdditionAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIDeviceAdditionAppDelegate.h; sourceTree = ""; }; + C1E8504113FFA4C300B38510 /* UIDeviceAdditionAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIDeviceAdditionAppDelegate.m; sourceTree = ""; }; + C1E8504413FFA4C300B38510 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; + C1E8504613FFA4C300B38510 /* UIDeviceAdditionViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIDeviceAdditionViewController.h; sourceTree = ""; }; + C1E8504713FFA4C300B38510 /* UIDeviceAdditionViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIDeviceAdditionViewController.m; sourceTree = ""; }; + C1E8504A13FFA4C300B38510 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/UIDeviceAdditionViewController.xib; sourceTree = ""; }; + C1E8505213FFA51200B38510 /* UIDevice+IdentifierAddition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIDevice+IdentifierAddition.h"; path = "Classes/UIDevice+IdentifierAddition.h"; sourceTree = ""; }; + C1E8505313FFA51200B38510 /* UIDevice+IdentifierAddition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+IdentifierAddition.m"; path = "Classes/UIDevice+IdentifierAddition.m"; sourceTree = ""; }; + C1E8506113FFAB5D00B38510 /* NSString+MD5Addition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+MD5Addition.h"; path = "Classes/NSString+MD5Addition.h"; sourceTree = ""; }; + C1E8506213FFAB5D00B38510 /* NSString+MD5Addition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+MD5Addition.m"; path = "Classes/NSString+MD5Addition.m"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C1E8502A13FFA4C300B38510 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E8503213FFA4C300B38510 /* UIKit.framework in Frameworks */, + C1E8503413FFA4C300B38510 /* Foundation.framework in Frameworks */, + C1E8503613FFA4C300B38510 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C1E8502213FFA4C300B38510 = { + isa = PBXGroup; + children = ( + C1E8505113FFA4D300B38510 /* Classes */, + C1E8503713FFA4C300B38510 /* UIDeviceAddition */, + C1E8503013FFA4C300B38510 /* Frameworks */, + C1E8502E13FFA4C300B38510 /* Products */, + ); + sourceTree = ""; + }; + C1E8502E13FFA4C300B38510 /* Products */ = { + isa = PBXGroup; + children = ( + C1E8502D13FFA4C300B38510 /* UIDeviceAddition.app */, + ); + name = Products; + sourceTree = ""; + }; + C1E8503013FFA4C300B38510 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C1E8503113FFA4C300B38510 /* UIKit.framework */, + C1E8503313FFA4C300B38510 /* Foundation.framework */, + C1E8503513FFA4C300B38510 /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C1E8503713FFA4C300B38510 /* UIDeviceAddition */ = { + isa = PBXGroup; + children = ( + C1E8504013FFA4C300B38510 /* UIDeviceAdditionAppDelegate.h */, + C1E8504113FFA4C300B38510 /* UIDeviceAdditionAppDelegate.m */, + C1E8504313FFA4C300B38510 /* MainWindow.xib */, + C1E8504613FFA4C300B38510 /* UIDeviceAdditionViewController.h */, + C1E8504713FFA4C300B38510 /* UIDeviceAdditionViewController.m */, + C1E8504913FFA4C300B38510 /* UIDeviceAdditionViewController.xib */, + C1E8503813FFA4C300B38510 /* Supporting Files */, + ); + path = UIDeviceAddition; + sourceTree = ""; + }; + C1E8503813FFA4C300B38510 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C1E8503913FFA4C300B38510 /* UIDeviceAddition-Info.plist */, + C1E8503A13FFA4C300B38510 /* InfoPlist.strings */, + C1E8503D13FFA4C300B38510 /* UIDeviceAddition-Prefix.pch */, + C1E8503E13FFA4C300B38510 /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + C1E8505113FFA4D300B38510 /* Classes */ = { + isa = PBXGroup; + children = ( + C1E8505213FFA51200B38510 /* UIDevice+IdentifierAddition.h */, + C1E8505313FFA51200B38510 /* UIDevice+IdentifierAddition.m */, + C1E8506113FFAB5D00B38510 /* NSString+MD5Addition.h */, + C1E8506213FFAB5D00B38510 /* NSString+MD5Addition.m */, + ); + name = Classes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C1E8502C13FFA4C300B38510 /* UIDeviceAddition */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1E8504E13FFA4C300B38510 /* Build configuration list for PBXNativeTarget "UIDeviceAddition" */; + buildPhases = ( + C1E8502913FFA4C300B38510 /* Sources */, + C1E8502A13FFA4C300B38510 /* Frameworks */, + C1E8502B13FFA4C300B38510 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = UIDeviceAddition; + productName = UIDeviceAddition; + productReference = C1E8502D13FFA4C300B38510 /* UIDeviceAddition.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C1E8502413FFA4C300B38510 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0420; + ORGANIZATIONNAME = "Aurora Apps"; + }; + buildConfigurationList = C1E8502713FFA4C300B38510 /* Build configuration list for PBXProject "UIDeviceAddition" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = C1E8502213FFA4C300B38510; + productRefGroup = C1E8502E13FFA4C300B38510 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C1E8502C13FFA4C300B38510 /* UIDeviceAddition */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C1E8502B13FFA4C300B38510 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E8503C13FFA4C300B38510 /* InfoPlist.strings in Resources */, + C1E8504513FFA4C300B38510 /* MainWindow.xib in Resources */, + C1E8504B13FFA4C300B38510 /* UIDeviceAdditionViewController.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C1E8502913FFA4C300B38510 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E8503F13FFA4C300B38510 /* main.m in Sources */, + C1E8504213FFA4C300B38510 /* UIDeviceAdditionAppDelegate.m in Sources */, + C1E8504813FFA4C300B38510 /* UIDeviceAdditionViewController.m in Sources */, + C1E8505413FFA51200B38510 /* UIDevice+IdentifierAddition.m in Sources */, + C1E8506313FFAB5D00B38510 /* NSString+MD5Addition.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + C1E8503A13FFA4C300B38510 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + C1E8503B13FFA4C300B38510 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + C1E8504313FFA4C300B38510 /* MainWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + C1E8504413FFA4C300B38510 /* en */, + ); + name = MainWindow.xib; + sourceTree = ""; + }; + C1E8504913FFA4C300B38510 /* UIDeviceAdditionViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + C1E8504A13FFA4C300B38510 /* en */, + ); + name = UIDeviceAdditionViewController.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C1E8504C13FFA4C300B38510 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = DEBUG; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + SDKROOT = iphoneos; + }; + name = Debug; + }; + C1E8504D13FFA4C300B38510 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + }; + name = Release; + }; + C1E8504F13FFA4C300B38510 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "UIDeviceAddition/UIDeviceAddition-Prefix.pch"; + INFOPLIST_FILE = "UIDeviceAddition/UIDeviceAddition-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + C1E8505013FFA4C300B38510 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "UIDeviceAddition/UIDeviceAddition-Prefix.pch"; + INFOPLIST_FILE = "UIDeviceAddition/UIDeviceAddition-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C1E8502713FFA4C300B38510 /* Build configuration list for PBXProject "UIDeviceAddition" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E8504C13FFA4C300B38510 /* Debug */, + C1E8504D13FFA4C300B38510 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1E8504E13FFA4C300B38510 /* Build configuration list for PBXNativeTarget "UIDeviceAddition" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E8504F13FFA4C300B38510 /* Debug */, + C1E8505013FFA4C300B38510 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C1E8502413FFA4C300B38510 /* Project object */; +} diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/UIDeviceAddition.xcscheme b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/UIDeviceAddition.xcscheme new file mode 100644 index 000000000..91e9813a7 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/UIDeviceAddition.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/xcschememanagement.plist b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..2cbc30392 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition.xcodeproj/xcuserdata/ydiorcet.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + UIDeviceAddition.xcscheme + + orderHint + 3 + + + SuppressBuildableAutocreation + + C1E8502C13FFA4C300B38510 + + primary + + + + + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Info.plist b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Info.plist new file mode 100755 index 000000000..c2259a589 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Info.plist @@ -0,0 +1,38 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.aurora.apps.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Prefix.pch b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Prefix.pch new file mode 100755 index 000000000..95bfcbf68 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAddition-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'UIDeviceAddition' target in the 'UIDeviceAddition' project +// + +#import + +#ifndef __IPHONE_3_0 +#warning "This project uses features only available in iPhone SDK 3.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.h b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.h new file mode 100755 index 000000000..f59a38af6 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.h @@ -0,0 +1,21 @@ +// +// UIDeviceAdditionAppDelegate.h +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import + +@class UIDeviceAdditionViewController; + +@interface UIDeviceAdditionAppDelegate : NSObject { + +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; + +@property (nonatomic, retain) IBOutlet UIDeviceAdditionViewController *viewController; + +@end diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.m b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.m new file mode 100755 index 000000000..78d4af366 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionAppDelegate.m @@ -0,0 +1,75 @@ +// +// UIDeviceAdditionAppDelegate.m +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import "UIDeviceAdditionAppDelegate.h" + +#import "UIDeviceAdditionViewController.h" + +@implementation UIDeviceAdditionAppDelegate + + +@synthesize window=_window; + +@synthesize viewController=_viewController; + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + + self.window.rootViewController = self.viewController; + [self.window makeKeyAndVisible]; + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + /* + Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + */ +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + /* + Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + */ +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + /* + Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. + */ +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + /* + Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + */ +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + /* + Called when the application is about to terminate. + Save data if appropriate. + See also applicationDidEnterBackground:. + */ +} + +- (void)dealloc +{ + [_window release]; + [_viewController release]; + [super dealloc]; +} + +@end diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.h b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.h new file mode 100755 index 000000000..79bf4572f --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.h @@ -0,0 +1,15 @@ +// +// UIDeviceAdditionViewController.h +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import + +@interface UIDeviceAdditionViewController : UIViewController { + +} + +@end diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.m b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.m new file mode 100755 index 000000000..78c862161 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/UIDeviceAdditionViewController.m @@ -0,0 +1,67 @@ +// +// UIDeviceAdditionViewController.m +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import "UIDeviceAdditionViewController.h" +#import "UIDevice+IdentifierAddition.h" + +@implementation UIDeviceAdditionViewController + +- (void)dealloc +{ + [super dealloc]; +} + +- (void)didReceiveMemoryWarning +{ + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +#pragma mark - View lifecycle + + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad{ + [super viewDidLoad]; + + UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 100)]; + label.numberOfLines = 0; + label.textAlignment = UITextAlignmentCenter; + label.text = [NSString stringWithFormat:@"Unique Device Identifier:\n%@", + [[UIDevice currentDevice] uniqueDeviceIdentifier]]; + + [self.view addSubview:label]; + [label release]; + + label = [[UILabel alloc] initWithFrame:CGRectMake(10, 210, 300, 100)]; + label.numberOfLines = 0; + label.textAlignment = UITextAlignmentCenter; + label.text = [NSString stringWithFormat:@"Unique GLOBAL Device Identifier:\n%@", + [[UIDevice currentDevice] uniqueGlobalDeviceIdentifier]]; + + [self.view addSubview:label]; + [label release]; +} + + +- (void)viewDidUnload +{ + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} + +@end diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/InfoPlist.strings b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/InfoPlist.strings new file mode 100755 index 000000000..477b28ff8 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/MainWindow.xib b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/MainWindow.xib new file mode 100755 index 000000000..4e82aaf13 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/MainWindow.xib @@ -0,0 +1,444 @@ + + + + 1024 + 10D571 + 786 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 112 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + UIDeviceAdditionViewController + + + 1 + + IBCocoaTouchFramework + NO + + + + 292 + {320, 480} + + 1 + MSAxIDEAA + + NO + NO + + IBCocoaTouchFramework + YES + + + + + YES + + + delegate + + + + 4 + + + + viewController + + + + 11 + + + + window + + + + 14 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + 3 + + + UIDeviceAddition App Delegate + + + -2 + + + + + 10 + + + + + 12 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 10.CustomClassName + 10.IBEditorWindowLastContentRect + 10.IBPluginDependency + 12.IBEditorWindowLastContentRect + 12.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + UIDeviceAdditionViewController + {{234, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + {{525, 346}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIDeviceAdditionAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 15 + + + + YES + + UIWindow + UIView + + IBUserSource + + + + + UIDeviceAdditionAppDelegate + NSObject + + YES + + YES + viewController + window + + + YES + UIDeviceAdditionViewController + UIWindow + + + + YES + + YES + viewController + window + + + YES + + viewController + UIDeviceAdditionViewController + + + window + UIWindow + + + + + IBProjectSource + UIDeviceAdditionAppDelegate.h + + + + UIDeviceAdditionAppDelegate + NSObject + + IBUserSource + + + + + UIDeviceAdditionViewController + UIViewController + + IBProjectSource + UIDeviceAdditionViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIApplication + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIApplication.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWindow + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWindow.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + UIDeviceAddition.xcodeproj + 3 + 112 + + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/UIDeviceAdditionViewController.xib b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/UIDeviceAdditionViewController.xib new file mode 100755 index 000000000..db9a24277 --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/en.lproj/UIDeviceAdditionViewController.xib @@ -0,0 +1,156 @@ + + + + 800 + 10C540 + 759 + 1038.25 + 458.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 77 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + + 3 + MC43NQA + + 2 + + + NO + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 7 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 6 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 6.IBEditorWindowLastContentRect + 6.IBPluginDependency + + + YES + UIDeviceAdditionViewController + UIResponder + {{239, 654}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 7 + + + + YES + + UIDeviceAdditionViewController + UIViewController + + IBProjectSource + UIDeviceAdditionViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + UIDeviceAddition.xcodeproj + 3 + 77 + + + diff --git a/Classes/Utils/UIDeviceAddition/UIDeviceAddition/main.m b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/main.m new file mode 100755 index 000000000..733080faa --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/UIDeviceAddition/main.m @@ -0,0 +1,17 @@ +// +// main.m +// UIDeviceAddition +// +// Created by Georg Kitz on 20.08.11. +// Copyright 2011 Aurora Apps. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, nil); + [pool release]; + return retVal; +} diff --git a/Classes/Utils/UIDeviceAddition/license b/Classes/Utils/UIDeviceAddition/license new file mode 100755 index 000000000..b51f329de --- /dev/null +++ b/Classes/Utils/UIDeviceAddition/license @@ -0,0 +1,19 @@ +Copyright (C) 2012, Georg Kitz, @gekitz + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 27bb46fe2..696ea99b1 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -285,6 +285,10 @@ D384468615E6577700DF89DF /* BuschJaegerHistoryTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D384468415E6577700DF89DF /* BuschJaegerHistoryTableViewController.m */; }; D384468915E65CFE00DF89DF /* History.m in Sources */ = {isa = PBXBuildFile; fileRef = D384468815E65CFE00DF89DF /* History.m */; }; D384468A15E65CFE00DF89DF /* History.m in Sources */ = {isa = PBXBuildFile; fileRef = D384468815E65CFE00DF89DF /* History.m */; }; + D3A5C9C7167873C300694CA4 /* NSString+MD5Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A5C9C4167873C300694CA4 /* NSString+MD5Addition.m */; }; + D3A5C9C8167873C300694CA4 /* NSString+MD5Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A5C9C4167873C300694CA4 /* NSString+MD5Addition.m */; }; + D3A5C9C9167873C300694CA4 /* UIDevice+IdentifierAddition.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A5C9C6167873C300694CA4 /* UIDevice+IdentifierAddition.m */; }; + D3A5C9CA167873C300694CA4 /* UIDevice+IdentifierAddition.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A5C9C6167873C300694CA4 /* UIDevice+IdentifierAddition.m */; }; D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; }; D3C6526815AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; }; D3EA53FD159850E80037DC6B /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA53FC159850E80037DC6B /* LinphoneManager.m */; }; @@ -722,6 +726,10 @@ D384468415E6577700DF89DF /* BuschJaegerHistoryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BuschJaegerHistoryTableViewController.m; sourceTree = ""; }; D384468715E65CFE00DF89DF /* History.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = History.h; path = Model/History.h; sourceTree = ""; }; D384468815E65CFE00DF89DF /* History.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = History.m; path = Model/History.m; sourceTree = ""; }; + D3A5C9C3167873C300694CA4 /* NSString+MD5Addition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+MD5Addition.h"; path = "Utils/UIDeviceAddition/Classes/NSString+MD5Addition.h"; sourceTree = ""; }; + D3A5C9C4167873C300694CA4 /* NSString+MD5Addition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+MD5Addition.m"; path = "Utils/UIDeviceAddition/Classes/NSString+MD5Addition.m"; sourceTree = ""; }; + D3A5C9C5167873C300694CA4 /* UIDevice+IdentifierAddition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIDevice+IdentifierAddition.h"; path = "Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.h"; sourceTree = ""; }; + D3A5C9C6167873C300694CA4 /* UIDevice+IdentifierAddition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+IdentifierAddition.m"; path = "Utils/UIDeviceAddition/Classes/UIDevice+IdentifierAddition.m"; sourceTree = ""; }; D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEditableTableViewCell.h; sourceTree = ""; }; D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIEditableTableViewCell.m; sourceTree = ""; }; D3E84F3C15B018A600420DAC /* UILinphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILinphone.h; sourceTree = ""; }; @@ -1355,6 +1363,7 @@ D326483415887D4400930C67 /* Utils */ = { isa = PBXGroup; children = ( + D3A5C9C2167873A700694CA4 /* UIDeviceAddition */, D37E3ECA1619C27A0087659A /* CAAnimationBlocks */, D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */, D380801115C29984005BE9BC /* ColorSpaceUtilities.h */, @@ -1476,6 +1485,17 @@ path = Utils/DTFoundation; sourceTree = ""; }; + D3A5C9C2167873A700694CA4 /* UIDeviceAddition */ = { + isa = PBXGroup; + children = ( + D3A5C9C3167873C300694CA4 /* NSString+MD5Addition.h */, + D3A5C9C4167873C300694CA4 /* NSString+MD5Addition.m */, + D3A5C9C5167873C300694CA4 /* UIDevice+IdentifierAddition.h */, + D3A5C9C6167873C300694CA4 /* UIDevice+IdentifierAddition.m */, + ); + name = UIDeviceAddition; + sourceTree = ""; + }; D3F7997E15BD31EC0018C273 /* TPMultiLayoutViewController */ = { isa = PBXGroup; children = ( @@ -1772,6 +1792,8 @@ D37490841612E3F200A62D02 /* NSURLConnection+SynchronousDelegate.m in Sources */, D37E3ECD1619C27A0087659A /* CAAnimation+Blocks.m in Sources */, D30B942816358DD600D53C46 /* BuschJaegerManualSettingsView.m in Sources */, + D3A5C9C7167873C300694CA4 /* NSString+MD5Addition.m in Sources */, + D3A5C9C9167873C300694CA4 /* UIDevice+IdentifierAddition.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1828,6 +1850,8 @@ D37490851612E3F200A62D02 /* NSURLConnection+SynchronousDelegate.m in Sources */, D37E3ECE1619C27A0087659A /* CAAnimation+Blocks.m in Sources */, D30B942916358DD600D53C46 /* BuschJaegerManualSettingsView.m in Sources */, + D3A5C9C8167873C300694CA4 /* NSString+MD5Addition.m in Sources */, + D3A5C9CA167873C300694CA4 /* UIDevice+IdentifierAddition.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };