diff --git a/Parse.xcworkspace/contents.xcworkspacedata b/Parse.xcworkspace/contents.xcworkspacedata index 49104e367..2e4a3c177 100644 --- a/Parse.xcworkspace/contents.xcworkspacedata +++ b/Parse.xcworkspace/contents.xcworkspacedata @@ -17,6 +17,9 @@ + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.pbxproj b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.pbxproj new file mode 100644 index 000000000..a029b372f --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.pbxproj @@ -0,0 +1,655 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + 814C3AE61B69A87F00E307BB /* Bootstrap */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 814C3AE91B69A87F00E307BB /* Build configuration list for PBXAggregateTarget "Bootstrap" */; + buildPhases = ( + 814C3AEA1B69A88300E307BB /* ShellScript */, + ); + dependencies = ( + ); + name = Bootstrap; + productName = Bootstrap; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 092354B313A1D7EB00DA740F /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 092354B213A1D7EB00DA740F /* CFNetwork.framework */; }; + 092354B513A1D7F000DA740F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 092354B413A1D7F000DA740F /* SystemConfiguration.framework */; }; + 095ACE8613C68EA300566243 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095ACE8513C68EA300566243 /* AudioToolbox.framework */; }; + 099CCEAD13F9E3760039A464 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 099CCEAC13F9E3760039A464 /* libz.1.1.3.dylib */; }; + 09ABC07213A1D52D009C3FCF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09ABC07113A1D52D009C3FCF /* UIKit.framework */; }; + 09ABC07413A1D52D009C3FCF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09ABC07313A1D52D009C3FCF /* Foundation.framework */; }; + 09BEF34C13D51C3F001BBCDB /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09BEF34B13D51C3F001BBCDB /* Security.framework */; }; + 2FCDD6B014A573F500295AAC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FCDD6AF14A573F500295AAC /* QuartzCore.framework */; }; + 4998650515BF305000803E05 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4998650415BF305000803E05 /* StoreKit.framework */; }; + 4BE2434D1B9233CC007AC875 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE243481B9233CC007AC875 /* main.m */; }; + 4BE2434E1B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE2434A1B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.m */; }; + 4BE2434F1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE2434C1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.m */; }; + 4BE243521B923416007AC875 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BE243501B923416007AC875 /* MainWindow.xib */; }; + 4BE243551B923426007AC875 /* ParseAppExtensionsStarterProjectViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BE243531B923426007AC875 /* ParseAppExtensionsStarterProjectViewController.xib */; }; + 4BFAF88B1B938FD500E66E3D /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BFAF88A1B938FD500E66E3D /* NotificationCenter.framework */; }; + 4BFAF8911B938FD500E66E3D /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BFAF8901B938FD500E66E3D /* TodayViewController.m */; }; + 4BFAF8931B938FD500E66E3D /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4BFAF8921B938FD500E66E3D /* MainInterface.storyboard */; }; + 4BFAF8961B938FD500E66E3D /* ParseTodayStarterProject.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 4BFAF8891B938FD500E66E3D /* ParseTodayStarterProject.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 743D7B6D157DA60100084B67 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 743D7B6C157DA60100084B67 /* CoreGraphics.framework */; }; + 814C3ABD1B69864600E307BB /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 814C3AB21B69864600E307BB /* Default-568h@2x.png */; }; + 814C3ABE1B69864600E307BB /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 814C3AB31B69864600E307BB /* Default.png */; }; + 814C3ABF1B69864600E307BB /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 814C3AB41B69864600E307BB /* Default@2x.png */; }; + 814C3AC01B69864600E307BB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 814C3AB51B69864600E307BB /* InfoPlist.strings */; }; + 817AD67C196B009E0014C796 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 817AD67B196B009E0014C796 /* Bolts.framework */; }; + 81A6CA611A2EA82800297C39 /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 81A6CA601A2EA82800297C39 /* libstdc++.6.dylib */; }; + 81AFA6791B0EDD12000763C0 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 6332375315E438E900AE2736 /* libsqlite3.dylib */; }; + 81DDFD1919B4A60300BE649C /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81DDFD1719B4A60300BE649C /* Parse.framework */; }; + DD952FCB16E7F5CF00470144 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97E18B1E1624CB5700B17A67 /* CoreLocation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4BFAF8941B938FD500E66E3D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 09ABC06413A1D52D009C3FCF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BFAF8881B938FD500E66E3D; + remoteInfo = ParseTodayStarterProject; + }; + 814C3AEB1B69A8B000E307BB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 09ABC06413A1D52D009C3FCF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 814C3AE61B69A87F00E307BB; + remoteInfo = Bootstrap; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 4BFAF89A1B938FD500E66E3D /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 4BFAF8961B938FD500E66E3D /* ParseTodayStarterProject.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 092354B213A1D7EB00DA740F /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 092354B413A1D7F000DA740F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 095ACE8513C68EA300566243 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 099CCEAC13F9E3760039A464 /* libz.1.1.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.1.3.dylib; path = usr/lib/libz.1.1.3.dylib; sourceTree = SDKROOT; }; + 09ABC06D13A1D52D009C3FCF /* ParseAppExtensionsStarterProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ParseAppExtensionsStarterProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 09ABC07113A1D52D009C3FCF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 09ABC07313A1D52D009C3FCF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 09BEF34B13D51C3F001BBCDB /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 2FCDD6AF14A573F500295AAC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 4998650415BF305000803E05 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + 4BE243481B9233CC007AC875 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ParseAppExtensionsStarterProject/main.m; sourceTree = SOURCE_ROOT; }; + 4BE243491B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ParseAppExtensionsStarterProjectAppDelegate.h; path = ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.h; sourceTree = SOURCE_ROOT; }; + 4BE2434A1B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ParseAppExtensionsStarterProjectAppDelegate.m; path = ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.m; sourceTree = SOURCE_ROOT; }; + 4BE2434B1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ParseAppExtensionsStarterProjectViewController.h; path = ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h; sourceTree = SOURCE_ROOT; }; + 4BE2434C1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ParseAppExtensionsStarterProjectViewController.m; path = ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.m; sourceTree = SOURCE_ROOT; }; + 4BE243511B923416007AC875 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = Resources/en.lproj/MainWindow.xib; sourceTree = SOURCE_ROOT; }; + 4BE243541B923426007AC875 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = Resources/en.lproj/ParseAppExtensionsStarterProjectViewController.xib; sourceTree = SOURCE_ROOT; }; + 4BFAF8891B938FD500E66E3D /* ParseTodayStarterProject.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ParseTodayStarterProject.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 4BFAF88A1B938FD500E66E3D /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; + 4BFAF88E1B938FD500E66E3D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4BFAF88F1B938FD500E66E3D /* TodayViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = ""; }; + 4BFAF8901B938FD500E66E3D /* TodayViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = ""; }; + 4BFAF8921B938FD500E66E3D /* MainInterface.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainInterface.storyboard; sourceTree = ""; }; + 6332375315E438E900AE2736 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; + 6372FF521613CC3C002132AF /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; }; + 6372FF551613CC42002132AF /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; + 6372FF571613CC47002132AF /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; }; + 743D7B6C157DA60100084B67 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 814C3AB21B69864600E307BB /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + 814C3AB31B69864600E307BB /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + 814C3AB41B69864600E307BB /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + 814C3AB61B69864600E307BB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 814C3ABC1B69864600E307BB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 817AD67B196B009E0014C796 /* Bolts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bolts.framework; sourceTree = ""; }; + 81A6CA601A2EA82800297C39 /* libstdc++.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.6.dylib"; path = "usr/lib/libstdc++.6.dylib"; sourceTree = SDKROOT; }; + 81DDFD1719B4A60300BE649C /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Parse.framework; sourceTree = ""; }; + 97E18B1E1624CB5700B17A67 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 09ABC06A13A1D52D009C3FCF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 81A6CA611A2EA82800297C39 /* libstdc++.6.dylib in Frameworks */, + DD952FCB16E7F5CF00470144 /* CoreLocation.framework in Frameworks */, + 4998650515BF305000803E05 /* StoreKit.framework in Frameworks */, + 743D7B6D157DA60100084B67 /* CoreGraphics.framework in Frameworks */, + 81AFA6791B0EDD12000763C0 /* libsqlite3.dylib in Frameworks */, + 2FCDD6B014A573F500295AAC /* QuartzCore.framework in Frameworks */, + 099CCEAD13F9E3760039A464 /* libz.1.1.3.dylib in Frameworks */, + 09BEF34C13D51C3F001BBCDB /* Security.framework in Frameworks */, + 095ACE8613C68EA300566243 /* AudioToolbox.framework in Frameworks */, + 092354B513A1D7F000DA740F /* SystemConfiguration.framework in Frameworks */, + 092354B313A1D7EB00DA740F /* CFNetwork.framework in Frameworks */, + 81DDFD1919B4A60300BE649C /* Parse.framework in Frameworks */, + 09ABC07213A1D52D009C3FCF /* UIKit.framework in Frameworks */, + 09ABC07413A1D52D009C3FCF /* Foundation.framework in Frameworks */, + 817AD67C196B009E0014C796 /* Bolts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4BFAF8861B938FD500E66E3D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BFAF88B1B938FD500E66E3D /* NotificationCenter.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 09ABC06213A1D52D009C3FCF = { + isa = PBXGroup; + children = ( + 09ABC07713A1D52D009C3FCF /* ParseAppExtensionsStarterProject */, + 814C3AB11B69864600E307BB /* Resources */, + 4BFAF88C1B938FD500E66E3D /* ParseTodayStarterProject */, + 09ABC07013A1D52D009C3FCF /* Frameworks */, + 09ABC06E13A1D52D009C3FCF /* Products */, + ); + sourceTree = ""; + }; + 09ABC06E13A1D52D009C3FCF /* Products */ = { + isa = PBXGroup; + children = ( + 09ABC06D13A1D52D009C3FCF /* ParseAppExtensionsStarterProject.app */, + 4BFAF8891B938FD500E66E3D /* ParseTodayStarterProject.appex */, + ); + name = Products; + sourceTree = ""; + }; + 09ABC07013A1D52D009C3FCF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 81DDFD1719B4A60300BE649C /* Parse.framework */, + 817AD67B196B009E0014C796 /* Bolts.framework */, + 81A6CA5E1A2EA0B800297C39 /* System Frameworks */, + 4BFAF88A1B938FD500E66E3D /* NotificationCenter.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 09ABC07713A1D52D009C3FCF /* ParseAppExtensionsStarterProject */ = { + isa = PBXGroup; + children = ( + 4BE243491B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.h */, + 4BE2434A1B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.m */, + 4BE243501B923416007AC875 /* MainWindow.xib */, + 4BE2434B1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.h */, + 4BE2434C1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.m */, + 4BE243531B923426007AC875 /* ParseAppExtensionsStarterProjectViewController.xib */, + 09ABC07813A1D52D009C3FCF /* Other Sources */, + ); + path = ParseAppExtensionsStarterProject; + sourceTree = ""; + }; + 09ABC07813A1D52D009C3FCF /* Other Sources */ = { + isa = PBXGroup; + children = ( + 4BE243481B9233CC007AC875 /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 4BFAF88C1B938FD500E66E3D /* ParseTodayStarterProject */ = { + isa = PBXGroup; + children = ( + 4BFAF88F1B938FD500E66E3D /* TodayViewController.h */, + 4BFAF8901B938FD500E66E3D /* TodayViewController.m */, + 4BFAF8921B938FD500E66E3D /* MainInterface.storyboard */, + 4BFAF88D1B938FD500E66E3D /* Supporting Files */, + ); + path = ParseTodayStarterProject; + sourceTree = ""; + }; + 4BFAF88D1B938FD500E66E3D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 4BFAF88E1B938FD500E66E3D /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 814C3AB11B69864600E307BB /* Resources */ = { + isa = PBXGroup; + children = ( + 814C3AB21B69864600E307BB /* Default-568h@2x.png */, + 814C3AB31B69864600E307BB /* Default.png */, + 814C3AB41B69864600E307BB /* Default@2x.png */, + 814C3AB51B69864600E307BB /* InfoPlist.strings */, + 814C3ABC1B69864600E307BB /* Info.plist */, + ); + path = Resources; + sourceTree = ""; + }; + 81A6CA5E1A2EA0B800297C39 /* System Frameworks */ = { + isa = PBXGroup; + children = ( + 6372FF571613CC47002132AF /* AdSupport.framework */, + 6372FF551613CC42002132AF /* Social.framework */, + 6372FF521613CC3C002132AF /* Accounts.framework */, + 095ACE8513C68EA300566243 /* AudioToolbox.framework */, + 092354B213A1D7EB00DA740F /* CFNetwork.framework */, + 743D7B6C157DA60100084B67 /* CoreGraphics.framework */, + 97E18B1E1624CB5700B17A67 /* CoreLocation.framework */, + 09ABC07313A1D52D009C3FCF /* Foundation.framework */, + 6332375315E438E900AE2736 /* libsqlite3.dylib */, + 099CCEAC13F9E3760039A464 /* libz.1.1.3.dylib */, + 81A6CA601A2EA82800297C39 /* libstdc++.6.dylib */, + 2FCDD6AF14A573F500295AAC /* QuartzCore.framework */, + 09BEF34B13D51C3F001BBCDB /* Security.framework */, + 4998650415BF305000803E05 /* StoreKit.framework */, + 092354B413A1D7F000DA740F /* SystemConfiguration.framework */, + 09ABC07113A1D52D009C3FCF /* UIKit.framework */, + ); + name = "System Frameworks"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 09ABC06C13A1D52D009C3FCF /* ParseAppExtensionsStarterProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 09ABC08E13A1D52E009C3FCF /* Build configuration list for PBXNativeTarget "ParseAppExtensionsStarterProject" */; + buildPhases = ( + 09ABC06913A1D52D009C3FCF /* Sources */, + 09ABC06A13A1D52D009C3FCF /* Frameworks */, + 09ABC06B13A1D52D009C3FCF /* Resources */, + 81A6CA5F1A2EA3D600297C39 /* Upload Symbol Files */, + 4BFAF89A1B938FD500E66E3D /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 814C3AEC1B69A8B000E307BB /* PBXTargetDependency */, + 4BFAF8951B938FD500E66E3D /* PBXTargetDependency */, + ); + name = ParseAppExtensionsStarterProject; + productName = ParseAppExtensionsStarterProject; + productReference = 09ABC06D13A1D52D009C3FCF /* ParseAppExtensionsStarterProject.app */; + productType = "com.apple.product-type.application"; + }; + 4BFAF8881B938FD500E66E3D /* ParseTodayStarterProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4BFAF8991B938FD500E66E3D /* Build configuration list for PBXNativeTarget "ParseTodayStarterProject" */; + buildPhases = ( + 4BFAF8851B938FD500E66E3D /* Sources */, + 4BFAF8861B938FD500E66E3D /* Frameworks */, + 4BFAF8871B938FD500E66E3D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ParseTodayStarterProject; + productName = ParseTodayStarterProject; + productReference = 4BFAF8891B938FD500E66E3D /* ParseTodayStarterProject.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 09ABC06413A1D52D009C3FCF /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + TargetAttributes = { + 4BFAF8881B938FD500E66E3D = { + CreatedOnToolsVersion = 6.4; + }; + 814C3AE61B69A87F00E307BB = { + CreatedOnToolsVersion = 6.4; + }; + }; + }; + buildConfigurationList = 09ABC06713A1D52D009C3FCF /* Build configuration list for PBXProject "ParseAppExtensionsStarterProject" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 09ABC06213A1D52D009C3FCF; + productRefGroup = 09ABC06E13A1D52D009C3FCF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 09ABC06C13A1D52D009C3FCF /* ParseAppExtensionsStarterProject */, + 814C3AE61B69A87F00E307BB /* Bootstrap */, + 4BFAF8881B938FD500E66E3D /* ParseTodayStarterProject */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 09ABC06B13A1D52D009C3FCF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 814C3ABE1B69864600E307BB /* Default.png in Resources */, + 4BE243521B923416007AC875 /* MainWindow.xib in Resources */, + 814C3ABF1B69864600E307BB /* Default@2x.png in Resources */, + 814C3ABD1B69864600E307BB /* Default-568h@2x.png in Resources */, + 4BE243551B923426007AC875 /* ParseAppExtensionsStarterProjectViewController.xib in Resources */, + 814C3AC01B69864600E307BB /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4BFAF8871B938FD500E66E3D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BFAF8931B938FD500E66E3D /* MainInterface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 814C3AEA1B69A88300E307BB /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ ! -d \"Bolts.framework\" ]]; then\n cp -R ../../../Vendor/Bolts-ObjC/build/ios/Bolts.framework .\nfi\n"; + }; + 81A6CA5F1A2EA3D600297C39 /* Upload Symbol Files */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Upload Symbol Files"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script will upload symbol files for your application,\n# so all your crash reports are going to be symbolicated\n\n# Important!\n# Before using the script, please initialize CloudCode folder and replace with the path to it\n#\n# Read more on Parse.com - https://parse.com/apps/quickstart#analytics/crashreporting/ios/\n############################################################\n\n\n# export PATH=/usr/local/bin:$PATH\n# cd \n\n# parse symbols -p \"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 09ABC06913A1D52D009C3FCF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BE2434F1B9233CC007AC875 /* ParseAppExtensionsStarterProjectViewController.m in Sources */, + 4BE2434D1B9233CC007AC875 /* main.m in Sources */, + 4BE2434E1B9233CC007AC875 /* ParseAppExtensionsStarterProjectAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4BFAF8851B938FD500E66E3D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BFAF8911B938FD500E66E3D /* TodayViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 4BFAF8951B938FD500E66E3D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4BFAF8881B938FD500E66E3D /* ParseTodayStarterProject */; + targetProxy = 4BFAF8941B938FD500E66E3D /* PBXContainerItemProxy */; + }; + 814C3AEC1B69A8B000E307BB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 814C3AE61B69A87F00E307BB /* Bootstrap */; + targetProxy = 814C3AEB1B69A8B000E307BB /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 4BE243501B923416007AC875 /* MainWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + 4BE243511B923416007AC875 /* en */, + ); + name = MainWindow.xib; + sourceTree = ""; + }; + 4BE243531B923426007AC875 /* ParseAppExtensionsStarterProjectViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + 4BE243541B923426007AC875 /* en */, + ); + name = ParseAppExtensionsStarterProjectViewController.xib; + sourceTree = ""; + }; + 814C3AB51B69864600E307BB /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 814C3AB61B69864600E307BB /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 09ABC08C13A1D52E009C3FCF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = DEBUG; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 09ABC08D13A1D52E009C3FCF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + }; + name = Release; + }; + 09ABC08F13A1D52E009C3FCF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)", + "$(PROJECT_DIR)", + ); + GCC_DYNAMIC_NO_PIC = NO; + INFOPLIST_FILE = Resources/Info.plist; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 09ABC09013A1D52E009C3FCF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)", + "$(PROJECT_DIR)", + ); + INFOPLIST_FILE = Resources/Info.plist; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 4BFAF8971B938FD500E66E3D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = ParseTodayStarterProject/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 4BFAF8981B938FD500E66E3D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = ParseTodayStarterProject/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 814C3AE71B69A87F00E307BB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 814C3AE81B69A87F00E307BB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 09ABC06713A1D52D009C3FCF /* Build configuration list for PBXProject "ParseAppExtensionsStarterProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 09ABC08C13A1D52E009C3FCF /* Debug */, + 09ABC08D13A1D52E009C3FCF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 09ABC08E13A1D52E009C3FCF /* Build configuration list for PBXNativeTarget "ParseAppExtensionsStarterProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 09ABC08F13A1D52E009C3FCF /* Debug */, + 09ABC09013A1D52E009C3FCF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4BFAF8991B938FD500E66E3D /* Build configuration list for PBXNativeTarget "ParseTodayStarterProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4BFAF8971B938FD500E66E3D /* Debug */, + 4BFAF8981B938FD500E66E3D /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 814C3AE91B69A87F00E307BB /* Build configuration list for PBXAggregateTarget "Bootstrap" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 814C3AE71B69A87F00E307BB /* Debug */, + 814C3AE81B69A87F00E307BB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 09ABC06413A1D52D009C3FCF /* Project object */; +} diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..abf453ba4 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/xcshareddata/xcschemes/ParseAppExtensionsStarterProject.xcscheme b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/xcshareddata/xcschemes/ParseAppExtensionsStarterProject.xcscheme new file mode 100644 index 000000000..b4da06c33 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject.xcodeproj/xcshareddata/xcschemes/ParseAppExtensionsStarterProject.xcscheme @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.h b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.h new file mode 100644 index 000000000..9d5d6c06d --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.h @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +@class ParseAppExtensionsStarterProjectViewController; + +@interface ParseAppExtensionsStarterProjectAppDelegate : NSObject + +@property (nonatomic, strong) IBOutlet UIWindow *window; + +@property (nonatomic, strong) IBOutlet ParseAppExtensionsStarterProjectViewController *viewController; + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.m b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.m new file mode 100644 index 000000000..4820cbaab --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.m @@ -0,0 +1,146 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +// If you want to use any of the UI components, uncomment this line +// #import + +// If you are using Facebook, uncomment this line +// #import + +// If you want to use Crash Reporting - uncomment this line +// #import + +#import "ParseAppExtensionsStarterProjectAppDelegate.h" +#import "ParseAppExtensionsStarterProjectViewController.h" + +@implementation ParseAppExtensionsStarterProjectAppDelegate + +#pragma mark - +#pragma mark UIApplicationDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Enable storing and querying data from Local Datastore. Remove this line if you don't want to + // use Local Datastore features or want to use cachePolicy. + [Parse enableLocalDatastore]; + + // **************************************************************************** + // Uncomment this line if you want to enable Crash Reporting + // [ParseCrashReporting enable]; + // + // Uncomment and fill in with your Parse credentials: + // [Parse setApplicationId:@"your_application_id" clientKey:@"your_client_key"]; + // + // If you are using Facebook, uncomment and add your FacebookAppID to your bundle's plist as + // described here: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/ + // [PFFacebookUtils initializeFacebook]; + // **************************************************************************** + + [PFUser enableAutomaticUser]; + + PFACL *defaultACL = [PFACL ACL]; + + // If you would like all objects to be private by default, remove this line. + [defaultACL setPublicReadAccess:YES]; + + [PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES]; + + // Override point for customization after application launch. + + self.window.rootViewController = self.viewController; + [self.window makeKeyAndVisible]; + + if (application.applicationState != UIApplicationStateBackground) { + // Track an app open here if we launch with a push, unless + // "content_available" was used to trigger a background push (introduced in iOS 7). + // In that case, we skip tracking here to avoid double counting the app-open. + BOOL preBackgroundPush = ![application respondsToSelector:@selector(backgroundRefreshStatus)]; + BOOL oldPushHandlerOnly = ![self respondsToSelector:@selector(application:didReceiveRemoteNotification:fetchCompletionHandler:)]; + BOOL noPushPayload = ![launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; + if (preBackgroundPush || oldPushHandlerOnly || noPushPayload) { + [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions]; + } + } + +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 + if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { + UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | + UIUserNotificationTypeBadge | + UIUserNotificationTypeSound); + UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes + categories:nil]; + [application registerUserNotificationSettings:settings]; + [application registerForRemoteNotifications]; + } else +#endif + { + [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | + UIRemoteNotificationTypeAlert | + UIRemoteNotificationTypeSound)]; + } + + return YES; +} + +#pragma mark Push Notifications + +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + PFInstallation *currentInstallation = [PFInstallation currentInstallation]; + [currentInstallation setDeviceTokenFromData:deviceToken]; + [currentInstallation saveInBackground]; + + [PFPush subscribeToChannelInBackground:@"" block:^(BOOL succeeded, NSError *error) { + if (succeeded) { + NSLog(@"ParseAppExtensionsStarterProject successfully subscribed to push notifications on the broadcast channel."); + } else { + NSLog(@"ParseAppExtensionsStarterProject failed to subscribe to push notifications on the broadcast channel."); + } + }]; +} + +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { + if (error.code == 3010) { + NSLog(@"Push notifications are not supported in the iOS Simulator."); + } else { + // show some alert or otherwise handle the failure to register. + NSLog(@"application:didFailToRegisterForRemoteNotificationsWithError: %@", error); + } +} + +- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { + [PFPush handlePush:userInfo]; + + if (application.applicationState == UIApplicationStateInactive) { + [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; + } +} + +/////////////////////////////////////////////////////////// +// Uncomment this method if you want to use Push Notifications with Background App Refresh +/////////////////////////////////////////////////////////// +//- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { +// if (application.applicationState == UIApplicationStateInactive) { +// [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; +// } +//} + +#pragma mark Facebook SDK Integration + +/////////////////////////////////////////////////////////// +// Uncomment this method if you are using Facebook +/////////////////////////////////////////////////////////// +//- (BOOL)application:(UIApplication *)application +// openURL:(NSURL *)url +// sourceApplication:(NSString *)sourceApplication +// annotation:(id)annotation { +// return [PFFacebookUtils handleOpenURL:url]; +//} + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h new file mode 100644 index 000000000..a462b9e37 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h @@ -0,0 +1,14 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +@interface ParseAppExtensionsStarterProjectViewController : UIViewController + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.m b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.m new file mode 100644 index 000000000..5a106b1cf --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.m @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "ParseAppExtensionsStarterProjectViewController.h" + +#import + +@implementation ParseAppExtensionsStarterProjectViewController + +#pragma mark - +#pragma mark UIViewController + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (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. +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/main.m b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/main.m new file mode 100644 index 000000000..3b72b6a4c --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/main.m @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + +#import + +#import "ParseAppExtensionsStarterProjectAppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([ParseAppExtensionsStarterProjectAppDelegate class])); + } +} diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/Info.plist b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/Info.plist new file mode 100644 index 000000000..c985b89c5 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ParseTodayStarterProject + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + com.parse.ParseAppExtensionsStarterProject.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + XPC! + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSExtension + + NSExtensionMainStoryboard + MainInterface + NSExtensionPointIdentifier + com.apple.widget-extension + + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/MainInterface.storyboard b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/MainInterface.storyboard new file mode 100644 index 000000000..1c9c06280 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/MainInterface.storyboard @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.h b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.h new file mode 100644 index 000000000..330d21375 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.h @@ -0,0 +1,14 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +@interface TodayViewController : UIViewController + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.m b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.m new file mode 100644 index 000000000..c47226c66 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseTodayStarterProject/TodayViewController.m @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2015-present, Parse, LLC. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "TodayViewController.h" +#import + +@interface TodayViewController () + +@end + +@implementation TodayViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler { + // Perform any setup necessary in order to update the view. + + // If an error is encountered, use NCUpdateResultFailed + // If there's no update required, use NCUpdateResultNoData + // If there's an update, use NCUpdateResultNewData + + completionHandler(NCUpdateResultNewData); +} + +@end diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default-568h@2x.png b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default-568h@2x.png new file mode 100644 index 000000000..f17cfa398 Binary files /dev/null and b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default-568h@2x.png differ diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default.png b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default.png new file mode 100644 index 000000000..2651ca002 Binary files /dev/null and b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default.png differ diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default@2x.png b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default@2x.png new file mode 100644 index 000000000..04a29d231 Binary files /dev/null and b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Default@2x.png differ diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Info.plist b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Info.plist new file mode 100644 index 000000000..a1e0395bc --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/Info.plist @@ -0,0 +1,38 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.parse.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.8.0 + CFBundleSignature + ???? + CFBundleVersion + 1.8.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/InfoPlist.strings b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..b92732c79 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/InfoPlist.strings @@ -0,0 +1 @@ +/* Localized versions of Info.plist keys */ diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/MainWindow.xib b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/MainWindow.xib new file mode 100644 index 000000000..83e77925d --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/MainWindow.xib @@ -0,0 +1,274 @@ + + + + 1792 + 14F27 + 7706 + 1348.17 + 758.70 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 7703 + + + IBProxyObject + IBUICustomObject + IBUIViewController + IBUIWindow + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + ParseAppExtensionsStarterProjectViewController + + + 1 + 1 + + + IBUIScreenMetrics + IBCocoaTouchFramework + iPhone 4-inch + + YES + + + + + + {320, 568} + {568, 320} + + + 2 + + IBCocoaTouchFramework + NO + + + + 292 + {{0, 20}, {320, 480}} + + + + 1 + MSAxIDEAA + + NO + NO + + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + + IBCocoaTouchFramework + YES + + + + + + + delegate + + + + 4 + + + + viewController + + + + 11 + + + + window + + + + 16 + + + + + + 0 + + + + + + -1 + + + File's Owner + + + 3 + + + ParseAppExtensionsStarterProject App Delegate + + + -2 + + + + + 10 + + + + + 12 + + + + + + + UIApplication + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ParseAppExtensionsStarterProjectViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ParseAppExtensionsStarterProjectAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + + 16 + + + + + ParseAppExtensionsStarterProjectAppDelegate + NSObject + + ParseAppExtensionsStarterProjectViewController + UIWindow + + + + viewController + ParseAppExtensionsStarterProjectViewController + + + window + UIWindow + + + + IBProjectSource + ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectAppDelegate.h + + + + ParseAppExtensionsStarterProjectViewController + UIViewController + + IBProjectSource + ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h + + + + + + UIApplication + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIApplication.h + + + + UIGestureRecognizer + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIGestureRecognizer.h + + + + UIResponder + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWindow + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWindow.h + + + + + 0 + IBCocoaTouchFramework + NO + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/ParseAppExtensionsStarterProjectViewController.xib b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/ParseAppExtensionsStarterProjectViewController.xib new file mode 100644 index 000000000..ce7ce0726 --- /dev/null +++ b/ParseStarterProject/iOS/ParseAppExtensionsStarterProject/Resources/en.lproj/ParseAppExtensionsStarterProjectViewController.xib @@ -0,0 +1,227 @@ + + + + 1792 + 14F27 + 7706 + 1348.17 + 758.70 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 7703 + + + IBProxyObject + IBUILabel + IBUIView + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + + + 292 + {{65, 159}, {191, 21}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + You're all set with Parse! + + 1 + MCAwIDAAA + darkTextColor + + + 1 + 10 + + Helvetica + Helvetica + 0 + 17 + + + Helvetica + 17 + 16 + + YES + + + {{0, 20}, {320, 460}} + + + + 3 + MC43NQA + + 2 + + + NO + + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + + IBCocoaTouchFramework + + + + + + + view + + + + 7 + + + + + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 6 + + + + + + + + 8 + + + + + + + ParseAppExtensionsStarterProjectViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + + 8 + + + + + ParseAppExtensionsStarterProjectViewController + UIViewController + + IBProjectSource + ParseStarterProject/iOS/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProject/ParseAppExtensionsStarterProjectViewController.h + + + + + + UIGestureRecognizer + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIGestureRecognizer.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + NO + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/Rakefile b/Rakefile index 6b427e428..1d20ef9ca 100644 --- a/Rakefile +++ b/Rakefile @@ -27,7 +27,8 @@ module Constants File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseStarterProject', 'Resources', 'Info.plist'), File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseStarterProject-Swift', 'Resources', 'Info.plist'), File.join(script_folder, 'ParseStarterProject', 'OSX', 'ParseOSXStarterProject', 'Resources', 'Info.plist'), - File.join(script_folder, 'ParseStarterProject', 'OSX', 'ParseOSXStarterProject-Swift', 'Resources', 'Info.plist') + File.join(script_folder, 'ParseStarterProject', 'OSX', 'ParseOSXStarterProject-Swift', 'Resources', 'Info.plist'), + File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseAppExtensionsStarterProject', 'Resources', 'Info.plist') ] def self.current_version @@ -136,7 +137,8 @@ namespace :package do ios_starters = [ File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseStarterProject'), - File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseStarterProject-Swift') + File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseStarterProject-Swift'), + File.join(script_folder, 'ParseStarterProject', 'iOS', 'ParseAppExtensionsStarterProject') ] ios_framework_archive = File.join(release_folder, package_ios_name) make_starter_package(release_folder, ios_starters, ios_framework_archive, package_starter_ios_name) @@ -254,7 +256,8 @@ namespace :test do task :starters do |_| results = [] ios_schemes = ['ParseStarterProject', - 'ParseStarterProject-Swift'] + 'ParseStarterProject-Swift', + 'ParseAppExtensionsStarterProject'] osx_schemes = ['ParseOSXStarterProject', 'ParseOSXStarterProject-Swift']