From ede6834a45131a2d50a69519b27087ca545c111e Mon Sep 17 00:00:00 2001 From: Nick Lockwood Date: Sun, 26 Feb 2012 12:51:50 +0000 Subject: [PATCH] Updated iRate to version 1.3.4 --- Examples/ARC Test/ARC Test-Info.plist | 30 ++ .../ARC Test.xcodeproj/project.pbxproj | 280 +++++++++++ Examples/ARC Test/ARC Test_Prefix.pch | 8 + Examples/ARC Test/Classes/iRateAppDelegate.h | 22 + Examples/ARC Test/Classes/iRateAppDelegate.m | 46 ++ .../ARC Test/Classes/iRateViewController.h | 16 + .../ARC Test/Classes/iRateViewController.m | 63 +++ Examples/ARC Test/MainWindow.xib | 458 ++++++++++++++++++ Examples/ARC Test/iRateViewController.xib | 153 ++++++ Examples/ARC Test/main.m | 17 + LICENCE.md | 2 +- README.md | 8 +- RELEASE NOTES.md | 8 +- iRate/iRate.h | 16 +- iRate/iRate.m | 5 +- 15 files changed, 1118 insertions(+), 14 deletions(-) create mode 100644 Examples/ARC Test/ARC Test-Info.plist create mode 100755 Examples/ARC Test/ARC Test.xcodeproj/project.pbxproj create mode 100644 Examples/ARC Test/ARC Test_Prefix.pch create mode 100644 Examples/ARC Test/Classes/iRateAppDelegate.h create mode 100644 Examples/ARC Test/Classes/iRateAppDelegate.m create mode 100644 Examples/ARC Test/Classes/iRateViewController.h create mode 100644 Examples/ARC Test/Classes/iRateViewController.m create mode 100644 Examples/ARC Test/MainWindow.xib create mode 100644 Examples/ARC Test/iRateViewController.xib create mode 100644 Examples/ARC Test/main.m diff --git a/Examples/ARC Test/ARC Test-Info.plist b/Examples/ARC Test/ARC Test-Info.plist new file mode 100644 index 00000000..aaf9e76e --- /dev/null +++ b/Examples/ARC Test/ARC Test-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.charcoaldesign.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.1 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + + diff --git a/Examples/ARC Test/ARC Test.xcodeproj/project.pbxproj b/Examples/ARC Test/ARC Test.xcodeproj/project.pbxproj new file mode 100755 index 00000000..be795f2e --- /dev/null +++ b/Examples/ARC Test/ARC Test.xcodeproj/project.pbxproj @@ -0,0 +1,280 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1D3623260D0F684500981E51 /* iRateAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* iRateAppDelegate.m */; }; + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 2899E5220DE3E06400AC0155 /* iRateViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* iRateViewController.xib */; }; + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; + 28D7ACF80DDB3853001CB0EB /* iRateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* iRateViewController.m */; }; + B205F2191462A82C00B69B0D /* iRate.m in Sources */ = {isa = PBXBuildFile; fileRef = B205F2181462A82C00B69B0D /* iRate.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D3623240D0F684500981E51 /* iRateAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iRateAppDelegate.h; sourceTree = ""; }; + 1D3623250D0F684500981E51 /* iRateAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iRateAppDelegate.m; sourceTree = ""; }; + 1D6058910D05DD3D006BFB54 /* ARC Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ARC Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 2899E5210DE3E06400AC0155 /* iRateViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = iRateViewController.xib; sourceTree = ""; }; + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; + 28D7ACF60DDB3853001CB0EB /* iRateViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iRateViewController.h; sourceTree = ""; }; + 28D7ACF70DDB3853001CB0EB /* iRateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iRateViewController.m; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* ARC Test_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; path = "ARC Test_Prefix.pch"; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* ARC Test-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; path = "ARC Test-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; + B205F2171462A82C00B69B0D /* iRate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iRate.h; sourceTree = ""; }; + B205F2181462A82C00B69B0D /* iRate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iRate.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1D3623240D0F684500981E51 /* iRateAppDelegate.h */, + 1D3623250D0F684500981E51 /* iRateAppDelegate.m */, + 28D7ACF60DDB3853001CB0EB /* iRateViewController.h */, + 28D7ACF70DDB3853001CB0EB /* iRateViewController.m */, + ); + path = Classes; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* ARC Test.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + B205F2161462A82C00B69B0D /* iRate */, + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 8D1107310486CEB800E47090 /* ARC Test-Info.plist */, + 32CA4F630368D1EE00C91783 /* ARC Test_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 2899E5210DE3E06400AC0155 /* iRateViewController.xib */, + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + 288765A40DF7441C002DB57D /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B205F2161462A82C00B69B0D /* iRate */ = { + isa = PBXGroup; + children = ( + B205F2171462A82C00B69B0D /* iRate.h */, + B205F2181462A82C00B69B0D /* iRate.m */, + ); + name = iRate; + path = ../../iRate; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* ARC Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ARC Test" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ARC Test"; + productName = iVersion; + productReference = 1D6058910D05DD3D006BFB54 /* ARC Test.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0420; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ARC Test" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* ARC Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, + 2899E5220DE3E06400AC0155 /* iRateViewController.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + 1D3623260D0F684500981E51 /* iRateAppDelegate.m in Sources */, + 28D7ACF80DDB3853001CB0EB /* iRateViewController.m in Sources */, + B205F2191462A82C00B69B0D /* iRate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ARC Test_Prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INFOPLIST_FILE = "ARC Test-Info.plist"; + PRODUCT_NAME = "ARC Test"; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ARC Test_Prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INFOPLIST_FILE = "ARC Test-Info.plist"; + PRODUCT_NAME = "ARC Test"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 3.0; + SDKROOT = iphoneos; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 3.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ARC Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ARC Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/Examples/ARC Test/ARC Test_Prefix.pch b/Examples/ARC Test/ARC Test_Prefix.pch new file mode 100644 index 00000000..905e247c --- /dev/null +++ b/Examples/ARC Test/ARC Test_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'iRate' target in the 'iRate' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Examples/ARC Test/Classes/iRateAppDelegate.h b/Examples/ARC Test/Classes/iRateAppDelegate.h new file mode 100644 index 00000000..6b76cb8f --- /dev/null +++ b/Examples/ARC Test/Classes/iRateAppDelegate.h @@ -0,0 +1,22 @@ +// +// iRateAppDelegate.h +// iRate +// +// Created by Nick Lockwood on 26/01/2011. +// Copyright 2011 Charcoal Design. All rights reserved. +// + +#import + +@class iRateViewController; + +@interface iRateAppDelegate : NSObject { + UIWindow *window; + iRateViewController *viewController; +} + +@property (nonatomic) IBOutlet UIWindow *window; +@property (nonatomic) IBOutlet iRateViewController *viewController; + +@end + diff --git a/Examples/ARC Test/Classes/iRateAppDelegate.m b/Examples/ARC Test/Classes/iRateAppDelegate.m new file mode 100644 index 00000000..534c9521 --- /dev/null +++ b/Examples/ARC Test/Classes/iRateAppDelegate.m @@ -0,0 +1,46 @@ +// +// iRateAppDelegate.m +// iRate +// +// Created by Nick Lockwood on 26/01/2011. +// Copyright 2011 Charcoal Design. All rights reserved. +// + +#import "iRateAppDelegate.h" +#import "iRateViewController.h" +#import "iRate.h" + + +@implementation iRateAppDelegate + +@synthesize window; +@synthesize viewController; + + +#pragma mark - +#pragma mark Application lifecycle + ++ (void)initialize +{ + //configure iRate + [iRate sharedInstance].appStoreID = 355313284; + [iRate sharedInstance].debug = YES; +} + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + + // Add the view controller's view to the window and display. + [self.window addSubview:viewController.view]; + [self.window makeKeyAndVisible]; + + return YES; +} + +#pragma mark - +#pragma mark Memory management + + + +@end diff --git a/Examples/ARC Test/Classes/iRateViewController.h b/Examples/ARC Test/Classes/iRateViewController.h new file mode 100644 index 00000000..d4536096 --- /dev/null +++ b/Examples/ARC Test/Classes/iRateViewController.h @@ -0,0 +1,16 @@ +// +// iRateViewController.h +// iRate +// +// Created by Nick Lockwood on 26/01/2011. +// Copyright 2011 Charcoal Design. All rights reserved. +// + +#import + +@interface iRateViewController : UIViewController { + +} + +@end + diff --git a/Examples/ARC Test/Classes/iRateViewController.m b/Examples/ARC Test/Classes/iRateViewController.m new file mode 100644 index 00000000..448859f1 --- /dev/null +++ b/Examples/ARC Test/Classes/iRateViewController.m @@ -0,0 +1,63 @@ +// +// iRateViewController.m +// iRate +// +// Created by Nick Lockwood on 26/01/2011. +// Copyright 2011 Charcoal Design. All rights reserved. +// + +#import "iRateViewController.h" + +@implementation iRateViewController + + + +/* +// The designated initializer. Override to perform setup that is required before the view is loaded. +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} +*/ + +/* +// Implement loadView to create a view hierarchy programmatically, without using a nib. +- (void)loadView { +} +*/ + + +/* +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; +} +*/ + + +/* +// Override to allow orientations other than the default portrait orientation. +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} +*/ + +- (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. +} + +- (void)viewDidUnload { + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + + + +@end diff --git a/Examples/ARC Test/MainWindow.xib b/Examples/ARC Test/MainWindow.xib new file mode 100644 index 00000000..abd8c99b --- /dev/null +++ b/Examples/ARC Test/MainWindow.xib @@ -0,0 +1,458 @@ + + + + 1056 + 10J567 + 823 + 1038.35 + 462.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + YES + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + iRateViewController + + + 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 + + + iVersion 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 + iRateViewController + {{234, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + {{525, 346}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + iRateAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 15 + + + + YES + + UIWindow + UIView + + IBUserSource + + + + + iRateAppDelegate + NSObject + + YES + + YES + viewController + window + + + YES + iRateViewController + UIWindow + + + + YES + + YES + viewController + window + + + YES + + viewController + iRateViewController + + + window + UIWindow + + + + + IBProjectSource + Classes/iRateAppDelegate.h + + + + iRateAppDelegate + NSObject + + IBUserSource + + + + + iRateViewController + UIViewController + + IBProjectSource + Classes/iRateViewController.h + + + + iRateViewController + UIViewController + + IBUserSource + + + + + + 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/UIPrintFormatter.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 + iVersion.xcodeproj + 3 + 132 + + diff --git a/Examples/ARC Test/iRateViewController.xib b/Examples/ARC Test/iRateViewController.xib new file mode 100644 index 00000000..e131b9e1 --- /dev/null +++ b/Examples/ARC Test/iRateViewController.xib @@ -0,0 +1,153 @@ + + + + 1056 + 10J567 + 823 + 1038.35 + 462.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + 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 + iRateViewController + UIResponder + {{239, 654}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 7 + + + + YES + + iRateViewController + UIViewController + + IBUserSource + + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + iVersion.xcodeproj + 3 + 132 + + diff --git a/Examples/ARC Test/main.m b/Examples/ARC Test/main.m new file mode 100644 index 00000000..30ac1a5a --- /dev/null +++ b/Examples/ARC Test/main.m @@ -0,0 +1,17 @@ +// +// main.m +// iRate +// +// Created by Nick Lockwood on 26/01/2011. +// Copyright 2011 Charcoal Design. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) { + + @autoreleasepool { + int retVal = UIApplicationMain(argc, argv, nil, nil); + return retVal; + } +} diff --git a/LICENCE.md b/LICENCE.md index f7cb279f..d073439e 100644 --- a/LICENCE.md +++ b/LICENCE.md @@ -1,6 +1,6 @@ iRate -Version 1.3.3, February 12th, 2012 +Version 1.3.4, February 12th, 2012 Copyright (C) 2011 Charcoal Design diff --git a/README.md b/README.md index d3032232..2da48724 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Purpose iRate is a library to help you promote your iPhone and Mac App Store apps by prompting users to rate the app after using it for a few days. This approach is one of the best ways to get positive app reviews by targeting only regular users (who presumably like the app or they wouldn't keep using it!). -Supported iOS & SDK Versions +Supported OS & SDK Versions ----------------------------- * Supported build target - iOS 5.0 / Mac OS 10.7 (Xcode 4.2, Apple LLVM compiler 3.0) * Earliest supported deployment target - iOS 4.3 / Mac OS 10.6 * Earliest compatible deployment target - iOS 3.0 / Mac OS 10.6 -NOTE: 'Supported' means that the library has been tested with this version. 'Compatible' means that the library should work on this iOS version (i.e. it doesn't rely on any unavailable SDK features) but is no longer being tested for compatibility and may require tweaking or bug fixes to run correctly. +NOTE: 'Supported' means that the library has been tested with this version. 'Compatible' means that the library should work on this OS version (i.e. it doesn't rely on any unavailable SDK features) but is no longer being tested for compatibility and may require tweaking or bug fixes to run correctly. ARC Compatibility @@ -169,6 +169,10 @@ The iRateDelegate protocol provides the following methods that can be used inter This method is called if iRate cannot connect to the App Store, usually because the network connection is down. + - (void)iRateDidDetectAppUpdate; + +This method is called if iRate detects that the application has been updated since the last time it was launched. + - (BOOL)iRateShouldShouldPromptForRating; This method is called immediately before the rating prompt is displayed to the user. You can use this method to block the standard prompt alert and display the rating prompt in a different way, or bypass it altogether. diff --git a/RELEASE NOTES.md b/RELEASE NOTES.md index a6a0de88..9cd71f36 100644 --- a/RELEASE NOTES.md +++ b/RELEASE NOTES.md @@ -1,3 +1,9 @@ +Version 1.3.4 + +- Fixed compiler warning +- Added `iRateDidDetectAppUpdate` delegate method +- Added ARC Test example + Version 1.3.3 - Added missing ivar required for 32-bit Mac OS builds. @@ -5,7 +11,7 @@ Version 1.3.3 Version 1.3.2 - Added logic to prevent multiple prompts from being displayed if user fails to close one prompt before the next is due to be opened. -- Fixed issue where use count was incremented every time device awakens from sleep as opposed to every time the app returns from the background. This appears to be a bug in Apple's UIApplicationWillEnterForegroundNotification implementation, however the fix should be safe even if they correct this bug in future. +- Added workaround for change in UIApplicationWillEnterForegroundNotification implementation in iOS5 Version 1.3.1 diff --git a/iRate/iRate.h b/iRate/iRate.h index f629d260..532bf228 100644 --- a/iRate/iRate.h +++ b/iRate/iRate.h @@ -1,7 +1,7 @@ // // iRate.h // -// Version 1.3.3 +// Version 1.3.4 // // Created by Nick Lockwood on 26/01/2011. // Copyright 2011 Charcoal Design @@ -34,7 +34,7 @@ // // ARC Helper // -// Version 1.2 +// Version 1.2.1 // // Created by Nick Lockwood on 05/01/2012. // Copyright 2012 Charcoal Design @@ -47,16 +47,16 @@ #ifndef AH_RETAIN #if __has_feature(objc_arc) -#define AH_RETAIN(x) x +#define AH_RETAIN(x) (x) #define AH_RELEASE(x) -#define AH_AUTORELEASE(x) x +#define AH_AUTORELEASE(x) (x) #define AH_SUPER_DEALLOC #else #define __AH_WEAK #define AH_WEAK assign -#define AH_RETAIN(x) [x retain] -#define AH_RELEASE(x) [x release] -#define AH_AUTORELEASE(x) [x autorelease] +#define AH_RETAIN(x) [(x) retain] +#define AH_RELEASE(x) [(x) release] +#define AH_AUTORELEASE(x) [(x) autorelease] #define AH_SUPER_DEALLOC [super dealloc] #endif #endif @@ -97,11 +97,11 @@ @optional - (void)iRateCouldNotConnectToAppStore:(NSError *)error; +- (void)iRateDidDetectAppUpdate; - (BOOL)iRateShouldPromptForRating; - (void)iRateUserDidAttemptToRateApp; - (void)iRateUserDidDeclineToRateApp; - (void)iRateUserDidRequestReminderToRateApp; -- (void)iRateDidDetectAppUpdate; @end diff --git a/iRate/iRate.m b/iRate/iRate.m index 9986f0c5..ff46e6e9 100644 --- a/iRate/iRate.m +++ b/iRate/iRate.m @@ -1,7 +1,7 @@ // // iRate.m // -// Version 1.3.3 +// Version 1.3.4 // // Created by Nick Lockwood on 26/01/2011. // Copyright 2011 Charcoal Design @@ -424,7 +424,8 @@ - (void)applicationLaunched:(NSNotification *)notification [defaults synchronize]; //inform about app update - if ([delegate respondsToSelector:@selector(iRateDidDetectAppUpdate)]) { + if ([delegate respondsToSelector:@selector(iRateDidDetectAppUpdate)]) + { [delegate iRateDidDetectAppUpdate]; } }