diff --git a/Demo/PickerDemo.xcodeproj/project.pbxproj b/Demo/PickerDemo.xcodeproj/project.pbxproj index 8381039..f93ac61 100644 --- a/Demo/PickerDemo.xcodeproj/project.pbxproj +++ b/Demo/PickerDemo.xcodeproj/project.pbxproj @@ -1,1867 +1,628 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 2BD5EDB130050A97241322AE - - children - - F4561B72539D02C0EFDD6055 - EBDDA42323D60D362D548DDD - - isa - PBXGroup - name - Pods - sourceTree - <group> - - 97D1299EDB164AF58B312BD8 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Check Pods Manifest.lock - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null -if [[ $? != 0 ]] ; then - cat << EOM -error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. -EOM - exit 1 -fi - - showEnvVarsInLog - 0 - - C19A4A91A703473FBB359763 - - fileRef - DFCD1015AE6F4C97AFDB8962 - isa - PBXBuildFile - - DA7F503918FC4D90A421B067 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Copy Pods Resources - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - "${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh" - - showEnvVarsInLog - 0 - - DFCD1015AE6F4C97AFDB8962 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods.a - sourceTree - BUILT_PRODUCTS_DIR - - E57AC34F18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterButtonCell.xib - sourceTree - <group> - - E57AC35018618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterSliderCell.xib - sourceTree - <group> - - E57AC35118618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterSwitchCell.xib - sourceTree - <group> - - E57AC35218618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterTitleCell.xib - sourceTree - <group> - - E57AC35318618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterViewController_iPad.xib - sourceTree - <group> - - E57AC35418618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - AdjustFilterViewController.h - sourceTree - <group> - - E57AC35518618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - AdjustFilterViewController.m - sourceTree - <group> - - E57AC35618618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - AdjustFilterViewController.xib - sourceTree - <group> - - E57AC35718618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - AssetsGroupViewController.h - sourceTree - <group> - - E57AC35818618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - AssetsGroupViewController.m - sourceTree - <group> - - E57AC35918618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - CameraViewController.h - sourceTree - <group> - - E57AC35A18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - CameraViewController.m - sourceTree - <group> - - E57AC35C18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - CropViewController.h - sourceTree - <group> - - E57AC35D18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - CropViewController.m - sourceTree - <group> - - E57AC35F18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - CustomAssetsGroupView.xib - sourceTree - <group> - - E57AC36018618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - file.xib - path - CustomAssetThumbnailView.xib - sourceTree - <group> - - E57AC36118618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - CustomGPUImageFilterProvider.h - sourceTree - <group> - - E57AC36218618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - CustomGPUImageFilterProvider.m - sourceTree - <group> - - E57AC36318618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - GalleryViewController.h - sourceTree - <group> - - E57AC36418618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - GalleryViewController.m - sourceTree - <group> - - E57AC36618618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - LibraryViewController.h - sourceTree - <group> - - E57AC36718618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - LibraryViewController.m - sourceTree - <group> - - E57AC36818618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - PickerTestsViewController.h - sourceTree - <group> - - E57AC36918618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - PickerTestsViewController.m - sourceTree - <group> - - E57AC36B18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - PresetFilterViewController.h - sourceTree - <group> - - E57AC36C18618D8E00BDE659 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - PresetFilterViewController.m - sourceTree - <group> - - E57AC36E18618D8E00BDE659 - - children - - E57AC37218618D8E00BDE659 - E57AC37418618D8E00BDE659 - E57AC37518618D8E00BDE659 - E57AC36F18618D8E00BDE659 - E57AC37018618D8E00BDE659 - E57AC37118618D8E00BDE659 - E57AC37318618D8E00BDE659 - E57AC37618618D8E00BDE659 - E57AC37718618D8E00BDE659 - E57AC37818618D8E00BDE659 - E57AC37918618D8E00BDE659 - E57AC37A18618D8E00BDE659 - E57AC37B18618D8E00BDE659 - E57AC37C18618D8E00BDE659 - E57AC37D18618D8E00BDE659 - E57AC37E18618D8E00BDE659 - E57AC37F18618D8E00BDE659 - E57AC38018618D8E00BDE659 - E57AC38118618D8E00BDE659 - E57AC38218618D8E00BDE659 - E57AC38318618D8E00BDE659 - E57AC38418618D8E00BDE659 - E57AC38518618D8E00BDE659 - - isa - PBXGroup - path - Resources - sourceTree - <group> - - E57AC36F18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - FA_Curves1.acv - sourceTree - <group> - - E57AC37018618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - FA_Curves2.acv - sourceTree - <group> - - E57AC37118618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - FA_Curves3.acv - sourceTree - <group> - - E57AC37218618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - image.png - path - frame.png - sourceTree - <group> - - E57AC37318618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - Old.acv - sourceTree - <group> - - E57AC37418618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - image.jpeg - path - photo.jpg - sourceTree - <group> - - E57AC37518618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - image.jpeg - path - photo_hires.jpg - sourceTree - <group> - - E57AC37618618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ16.acv - sourceTree - <group> - - E57AC37718618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ17.acv - sourceTree - <group> - - E57AC37818618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ18.acv - sourceTree - <group> - - E57AC37918618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ19.acv - sourceTree - <group> - - E57AC37A18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ20.acv - sourceTree - <group> - - E57AC37B18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ21.acv - sourceTree - <group> - - E57AC37C18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ22.acv - sourceTree - <group> - - E57AC37D18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ23.acv - sourceTree - <group> - - E57AC37E18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ24.acv - sourceTree - <group> - - E57AC37F18618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ25.acv - sourceTree - <group> - - E57AC38018618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ26.acv - sourceTree - <group> - - E57AC38118618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ27.acv - sourceTree - <group> - - E57AC38218618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ28.acv - sourceTree - <group> - - E57AC38318618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ29.acv - sourceTree - <group> - - E57AC38418618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - RJ30.acv - sourceTree - <group> - - E57AC38518618D8E00BDE659 - - isa - PBXFileReference - lastKnownFileType - file - path - Toy.acv - sourceTree - <group> - - E57AC38618618D8E00BDE659 - - fileRef - E57AC34F18618D8E00BDE659 - isa - PBXBuildFile - - E57AC38718618D8E00BDE659 - - fileRef - E57AC35018618D8E00BDE659 - isa - PBXBuildFile - - E57AC38818618D8E00BDE659 - - fileRef - E57AC35118618D8E00BDE659 - isa - PBXBuildFile - - E57AC38918618D8E00BDE659 - - fileRef - E57AC35218618D8E00BDE659 - isa - PBXBuildFile - - E57AC38A18618D8E00BDE659 - - fileRef - E57AC35318618D8E00BDE659 - isa - PBXBuildFile - - E57AC38B18618D8E00BDE659 - - fileRef - E57AC35518618D8E00BDE659 - isa - PBXBuildFile - - E57AC38C18618D8E00BDE659 - - fileRef - E57AC35618618D8E00BDE659 - isa - PBXBuildFile - - E57AC38D18618D8E00BDE659 - - fileRef - E57AC35818618D8E00BDE659 - isa - PBXBuildFile - - E57AC38E18618D8E00BDE659 - - fileRef - E57AC35A18618D8E00BDE659 - isa - PBXBuildFile - - E57AC39018618D8E00BDE659 - - fileRef - E57AC35D18618D8E00BDE659 - isa - PBXBuildFile - - E57AC39218618D8E00BDE659 - - fileRef - E57AC35F18618D8E00BDE659 - isa - PBXBuildFile - - E57AC39318618D8E00BDE659 - - fileRef - E57AC36018618D8E00BDE659 - isa - PBXBuildFile - - E57AC39418618D8E00BDE659 - - fileRef - E57AC36218618D8E00BDE659 - isa - PBXBuildFile - - E57AC39518618D8E00BDE659 - - fileRef - E57AC36418618D8E00BDE659 - isa - PBXBuildFile - - E57AC39718618D8E00BDE659 - - fileRef - E57AC36718618D8E00BDE659 - isa - PBXBuildFile - - E57AC39818618D8E00BDE659 - - fileRef - E57AC36918618D8E00BDE659 - isa - PBXBuildFile - - E57AC39A18618D8E00BDE659 - - fileRef - E57AC36C18618D8E00BDE659 - isa - PBXBuildFile - - E57AC39C18618D8E00BDE659 - - fileRef - E57AC36F18618D8E00BDE659 - isa - PBXBuildFile - - E57AC39D18618D8E00BDE659 - - fileRef - E57AC37018618D8E00BDE659 - isa - PBXBuildFile - - E57AC39E18618D8E00BDE659 - - fileRef - E57AC37118618D8E00BDE659 - isa - PBXBuildFile - - E57AC39F18618D8E00BDE659 - - fileRef - E57AC37218618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A018618D8E00BDE659 - - fileRef - E57AC37318618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A118618D8E00BDE659 - - fileRef - E57AC37418618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A218618D8E00BDE659 - - fileRef - E57AC37518618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A318618D8E00BDE659 - - fileRef - E57AC37618618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A418618D8E00BDE659 - - fileRef - E57AC37718618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A518618D8E00BDE659 - - fileRef - E57AC37818618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A618618D8E00BDE659 - - fileRef - E57AC37918618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A718618D8E00BDE659 - - fileRef - E57AC37A18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A818618D8E00BDE659 - - fileRef - E57AC37B18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3A918618D8E00BDE659 - - fileRef - E57AC37C18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AA18618D8E00BDE659 - - fileRef - E57AC37D18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AB18618D8E00BDE659 - - fileRef - E57AC37E18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AC18618D8E00BDE659 - - fileRef - E57AC37F18618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AD18618D8E00BDE659 - - fileRef - E57AC38018618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AE18618D8E00BDE659 - - fileRef - E57AC38118618D8E00BDE659 - isa - PBXBuildFile - - E57AC3AF18618D8E00BDE659 - - fileRef - E57AC38218618D8E00BDE659 - isa - PBXBuildFile - - E57AC3B018618D8E00BDE659 - - fileRef - E57AC38318618D8E00BDE659 - isa - PBXBuildFile - - E57AC3B118618D8E00BDE659 - - fileRef - E57AC38418618D8E00BDE659 - isa - PBXBuildFile - - E57AC3B218618D8E00BDE659 - - fileRef - E57AC38518618D8E00BDE659 - isa - PBXBuildFile - - E57FDDF519CAC50A0011B4E5 - - isa - PBXFileReference - lastKnownFileType - text.plist.strings - name - ja - path - ja.lproj/InfoPlist.strings - sourceTree - <group> - - E58DA578184339C100D60BBC - - children - - E58DA58A184339C100D60BBC - E58DA583184339C100D60BBC - E58DA582184339C100D60BBC - 2BD5EDB130050A97241322AE - - isa - PBXGroup - sourceTree - <group> - - E58DA579184339C100D60BBC - - attributes - - LastUpgradeCheck - 0510 - ORGANIZATIONNAME - CyberAgent Inc. - - buildConfigurationList - E58DA57C184339C100D60BBC - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - Base - ja - - mainGroup - E58DA578184339C100D60BBC - productRefGroup - E58DA582184339C100D60BBC - projectDirPath - - projectReferences - - projectRoot - - targets - - E58DA580184339C100D60BBC - - - E58DA57C184339C100D60BBC - - buildConfigurations - - E58DA5B7184339C100D60BBC - E58DA5B8184339C100D60BBC - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - E58DA57D184339C100D60BBC - - buildActionMask - 2147483647 - files - - E57AC38E18618D8E00BDE659 - E57AC39518618D8E00BDE659 - E57AC39818618D8E00BDE659 - E58DA595184339C100D60BBC - E57AC39A18618D8E00BDE659 - E57AC39718618D8E00BDE659 - E57AC38D18618D8E00BDE659 - E58DA591184339C100D60BBC - E57AC39018618D8E00BDE659 - E57AC38B18618D8E00BDE659 - E57AC39418618D8E00BDE659 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - E58DA57E184339C100D60BBC - - buildActionMask - 2147483647 - files - - E58DA587184339C100D60BBC - E58DA589184339C100D60BBC - E58DA585184339C100D60BBC - C19A4A91A703473FBB359763 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - E58DA57F184339C100D60BBC - - buildActionMask - 2147483647 - files - - E57AC39218618D8E00BDE659 - E57AC3B118618D8E00BDE659 - E57AC3A718618D8E00BDE659 - E57AC39D18618D8E00BDE659 - E57AC3AC18618D8E00BDE659 - E57AC3A418618D8E00BDE659 - E57AC39F18618D8E00BDE659 - E57AC3A518618D8E00BDE659 - E57AC38C18618D8E00BDE659 - E57AC38818618D8E00BDE659 - E57AC3AD18618D8E00BDE659 - E57AC3A218618D8E00BDE659 - E57AC38A18618D8E00BDE659 - E57AC38718618D8E00BDE659 - E57AC3A618618D8E00BDE659 - E57AC3B218618D8E00BDE659 - E57AC3A118618D8E00BDE659 - E57AC3AA18618D8E00BDE659 - E57AC38918618D8E00BDE659 - E57AC3AB18618D8E00BDE659 - E57AC38618618D8E00BDE659 - E57AC3AF18618D8E00BDE659 - E57AC3A018618D8E00BDE659 - E57AC3AE18618D8E00BDE659 - E58DA5A3184339C100D60BBC - E58DA598184339C100D60BBC - E58DA58F184339C100D60BBC - E57AC3A318618D8E00BDE659 - E57AC39C18618D8E00BDE659 - E57AC39E18618D8E00BDE659 - E57AC39318618D8E00BDE659 - E57AC3A818618D8E00BDE659 - E57AC3A918618D8E00BDE659 - E57AC3B018618D8E00BDE659 - - isa - PBXResourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - E58DA580184339C100D60BBC - - buildConfigurationList - E58DA5B9184339C100D60BBC - buildPhases - - 97D1299EDB164AF58B312BD8 - E58DA57D184339C100D60BBC - E58DA57E184339C100D60BBC - E58DA57F184339C100D60BBC - DA7F503918FC4D90A421B067 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - PickerDemo - productName - PickerDemo - productReference - E58DA581184339C100D60BBC - productType - com.apple.product-type.application - - E58DA581184339C100D60BBC - - explicitFileType - wrapper.application - includeInIndex - 0 - isa - PBXFileReference - path - PickerDemo.app - sourceTree - BUILT_PRODUCTS_DIR - - E58DA582184339C100D60BBC - - children - - E58DA581184339C100D60BBC - - isa - PBXGroup - name - Products - sourceTree - <group> - - E58DA583184339C100D60BBC - - children - - E58DA584184339C100D60BBC - E58DA586184339C100D60BBC - E58DA588184339C100D60BBC - E58DA5A9184339C100D60BBC - DFCD1015AE6F4C97AFDB8962 - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - E58DA584184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - System/Library/Frameworks/Foundation.framework - sourceTree - SDKROOT - - E58DA585184339C100D60BBC - - fileRef - E58DA584184339C100D60BBC - isa - PBXBuildFile - - E58DA586184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - CoreGraphics.framework - path - System/Library/Frameworks/CoreGraphics.framework - sourceTree - SDKROOT - - E58DA587184339C100D60BBC - - fileRef - E58DA586184339C100D60BBC - isa - PBXBuildFile - - E58DA588184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - UIKit.framework - path - System/Library/Frameworks/UIKit.framework - sourceTree - SDKROOT - - E58DA589184339C100D60BBC - - fileRef - E58DA588184339C100D60BBC - isa - PBXBuildFile - - E58DA58A184339C100D60BBC - - children - - E58DA593184339C100D60BBC - E58DA594184339C100D60BBC - E58DA596184339C100D60BBC - E5CB26B418641B67004C16D3 - E5CB26B518641B78004C16D3 - E5CB26B618641B81004C16D3 - E5CB26BA18641BD9004C16D3 - E5CB26B918641BB7004C16D3 - E5CB26B818641BA7004C16D3 - E5CB26B718641B9B004C16D3 - E58DA5A2184339C100D60BBC - E57AC36E18618D8E00BDE659 - E58DA58B184339C100D60BBC - - isa - PBXGroup - path - PickerDemo - sourceTree - <group> - - E58DA58B184339C100D60BBC - - children - - E58DA58C184339C100D60BBC - E58DA58D184339C100D60BBC - E58DA590184339C100D60BBC - E58DA592184339C100D60BBC - - isa - PBXGroup - name - Supporting Files - sourceTree - <group> - - E58DA58C184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - PickerDemo-Info.plist - sourceTree - <group> - - E58DA58D184339C100D60BBC - - children - - E58DA58E184339C100D60BBC - E57FDDF519CAC50A0011B4E5 - - isa - PBXVariantGroup - name - InfoPlist.strings - sourceTree - <group> - - E58DA58E184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - text.plist.strings - name - en - path - en.lproj/InfoPlist.strings - sourceTree - <group> - - E58DA58F184339C100D60BBC - - fileRef - E58DA58D184339C100D60BBC - isa - PBXBuildFile - - E58DA590184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - main.m - sourceTree - <group> - - E58DA591184339C100D60BBC - - fileRef - E58DA590184339C100D60BBC - isa - PBXBuildFile - - E58DA592184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - PickerDemo-Prefix.pch - sourceTree - <group> - - E58DA593184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - AppDelegate.h - sourceTree - <group> - - E58DA594184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - AppDelegate.m - sourceTree - <group> - - E58DA595184339C100D60BBC - - fileRef - E58DA594184339C100D60BBC - isa - PBXBuildFile - - E58DA596184339C100D60BBC - - children - - E58DA5BF18433FA900D60BBC - - isa - PBXVariantGroup - name - Main.storyboard - sourceTree - <group> - - E58DA598184339C100D60BBC - - fileRef - E58DA596184339C100D60BBC - isa - PBXBuildFile - - E58DA5A2184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - folder.assetcatalog - path - Images.xcassets - sourceTree - <group> - - E58DA5A3184339C100D60BBC - - fileRef - E58DA5A2184339C100D60BBC - isa - PBXBuildFile - - E58DA5A9184339C100D60BBC - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - XCTest.framework - path - Library/Frameworks/XCTest.framework - sourceTree - DEVELOPER_DIR - - E58DA5B7184339C100D60BBC - - 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__DUPLICATE_METHOD_MATCH - YES - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - COPY_PHASE_STRIP - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - 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 - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 5.0 - ONLY_ACTIVE_ARCH - YES - SDKROOT - iphoneos - TARGETED_DEVICE_FAMILY - 1,2 - - isa - XCBuildConfiguration - name - Debug - - E58DA5B8184339C100D60BBC - - 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__DUPLICATE_METHOD_MATCH - YES - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Distribution - COPY_PHASE_STRIP - YES - ENABLE_NS_ASSERTIONS - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - 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 - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 5.0 - SDKROOT - iphoneos - TARGETED_DEVICE_FAMILY - 1,2 - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - E58DA5B9184339C100D60BBC - - buildConfigurations - - E58DA5BA184339C100D60BBC - E58DA5BB184339C100D60BBC - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - E58DA5BA184339C100D60BBC - - baseConfigurationReference - F4561B72539D02C0EFDD6055 - buildSettings - - ASSETCATALOG_COMPILER_APPICON_NAME - AppIcon - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME - LaunchImage - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - PickerDemo/PickerDemo-Prefix.pch - INFOPLIST_FILE - PickerDemo/PickerDemo-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 5.0 - PRODUCT_NAME - $(TARGET_NAME) - WRAPPER_EXTENSION - app - - isa - XCBuildConfiguration - name - Debug - - E58DA5BB184339C100D60BBC - - baseConfigurationReference - EBDDA42323D60D362D548DDD - buildSettings - - ASSETCATALOG_COMPILER_APPICON_NAME - AppIcon - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME - LaunchImage - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - PickerDemo/PickerDemo-Prefix.pch - GCC_PREPROCESSOR_DEFINITIONS - - $(inherited) - TESTING=1 - - INFOPLIST_FILE - PickerDemo/PickerDemo-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 5.0 - PRODUCT_NAME - $(TARGET_NAME) - WRAPPER_EXTENSION - app - - isa - XCBuildConfiguration - name - Release - - E58DA5BF18433FA900D60BBC - - isa - PBXFileReference - lastKnownFileType - file.storyboard - name - en - path - en.lproj/Main.storyboard - sourceTree - <group> - - E5CB26B418641B67004C16D3 - - children - - E57AC36818618D8E00BDE659 - E57AC36918618D8E00BDE659 - - isa - PBXGroup - name - Picker - sourceTree - <group> - - E5CB26B518641B78004C16D3 - - children - - E57AC36618618D8E00BDE659 - E57AC36718618D8E00BDE659 - E57AC35718618D8E00BDE659 - E57AC35818618D8E00BDE659 - E57AC35F18618D8E00BDE659 - E57AC36018618D8E00BDE659 - - isa - PBXGroup - name - Assets - sourceTree - <group> - - E5CB26B618641B81004C16D3 - - children - - E57AC35918618D8E00BDE659 - E57AC35A18618D8E00BDE659 - - isa - PBXGroup - name - Camera - sourceTree - <group> - - E5CB26B718641B9B004C16D3 - - children - - E57AC35C18618D8E00BDE659 - E57AC35D18618D8E00BDE659 - - isa - PBXGroup - name - Crop - sourceTree - <group> - - E5CB26B818641BA7004C16D3 - - children - - E57AC36318618D8E00BDE659 - E57AC36418618D8E00BDE659 - - isa - PBXGroup - name - Gallery - sourceTree - <group> - - E5CB26B918641BB7004C16D3 - - children - - E57AC35418618D8E00BDE659 - E57AC35518618D8E00BDE659 - E57AC35618618D8E00BDE659 - E57AC34F18618D8E00BDE659 - E57AC35018618D8E00BDE659 - E57AC35118618D8E00BDE659 - E57AC35218618D8E00BDE659 - E57AC35318618D8E00BDE659 - - isa - PBXGroup - name - Filter Editor - sourceTree - <group> - - E5CB26BA18641BD9004C16D3 - - children - - E57AC36118618D8E00BDE659 - E57AC36218618D8E00BDE659 - E57AC36B18618D8E00BDE659 - E57AC36C18618D8E00BDE659 - - isa - PBXGroup - name - Filters - sourceTree - <group> - - EBDDA42323D60D362D548DDD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods.release.xcconfig - path - Pods/Target Support Files/Pods/Pods.release.xcconfig - sourceTree - <group> - - F4561B72539D02C0EFDD6055 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods.debug.xcconfig - path - Pods/Target Support Files/Pods/Pods.debug.xcconfig - sourceTree - <group> - - - rootObject - E58DA579184339C100D60BBC - - +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + C19A4A91A703473FBB359763 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFCD1015AE6F4C97AFDB8962 /* libPods.a */; }; + E57AC38618618D8E00BDE659 /* AdjustFilterButtonCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC34F18618D8E00BDE659 /* AdjustFilterButtonCell.xib */; }; + E57AC38718618D8E00BDE659 /* AdjustFilterSliderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC35018618D8E00BDE659 /* AdjustFilterSliderCell.xib */; }; + E57AC38818618D8E00BDE659 /* AdjustFilterSwitchCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC35118618D8E00BDE659 /* AdjustFilterSwitchCell.xib */; }; + E57AC38918618D8E00BDE659 /* AdjustFilterTitleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC35218618D8E00BDE659 /* AdjustFilterTitleCell.xib */; }; + E57AC38A18618D8E00BDE659 /* AdjustFilterViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC35318618D8E00BDE659 /* AdjustFilterViewController_iPad.xib */; }; + E57AC38B18618D8E00BDE659 /* AdjustFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC35518618D8E00BDE659 /* AdjustFilterViewController.m */; }; + E57AC38D18618D8E00BDE659 /* AssetsGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC35818618D8E00BDE659 /* AssetsGroupViewController.m */; }; + E57AC38E18618D8E00BDE659 /* CameraViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC35A18618D8E00BDE659 /* CameraViewController.m */; }; + E57AC39018618D8E00BDE659 /* CropViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC35D18618D8E00BDE659 /* CropViewController.m */; }; + E57AC39218618D8E00BDE659 /* CustomAssetsGroupView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC35F18618D8E00BDE659 /* CustomAssetsGroupView.xib */; }; + E57AC39318618D8E00BDE659 /* CustomAssetThumbnailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E57AC36018618D8E00BDE659 /* CustomAssetThumbnailView.xib */; }; + E57AC39418618D8E00BDE659 /* CustomGPUImageFilterProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC36218618D8E00BDE659 /* CustomGPUImageFilterProvider.m */; }; + E57AC39518618D8E00BDE659 /* GalleryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC36418618D8E00BDE659 /* GalleryViewController.m */; }; + E57AC39718618D8E00BDE659 /* LibraryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC36718618D8E00BDE659 /* LibraryViewController.m */; }; + E57AC39818618D8E00BDE659 /* PickerTestsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC36918618D8E00BDE659 /* PickerTestsViewController.m */; }; + E57AC39A18618D8E00BDE659 /* PresetFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E57AC36C18618D8E00BDE659 /* PresetFilterViewController.m */; }; + E57AC39C18618D8E00BDE659 /* FA_Curves1.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC36F18618D8E00BDE659 /* FA_Curves1.acv */; }; + E57AC39D18618D8E00BDE659 /* FA_Curves2.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37018618D8E00BDE659 /* FA_Curves2.acv */; }; + E57AC39E18618D8E00BDE659 /* FA_Curves3.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37118618D8E00BDE659 /* FA_Curves3.acv */; }; + E57AC39F18618D8E00BDE659 /* frame.png in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37218618D8E00BDE659 /* frame.png */; }; + E57AC3A018618D8E00BDE659 /* Old.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37318618D8E00BDE659 /* Old.acv */; }; + E57AC3A118618D8E00BDE659 /* photo.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37418618D8E00BDE659 /* photo.jpg */; }; + E57AC3A218618D8E00BDE659 /* photo_hires.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37518618D8E00BDE659 /* photo_hires.jpg */; }; + E57AC3A318618D8E00BDE659 /* RJ16.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37618618D8E00BDE659 /* RJ16.acv */; }; + E57AC3A418618D8E00BDE659 /* RJ17.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37718618D8E00BDE659 /* RJ17.acv */; }; + E57AC3A518618D8E00BDE659 /* RJ18.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37818618D8E00BDE659 /* RJ18.acv */; }; + E57AC3A618618D8E00BDE659 /* RJ19.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37918618D8E00BDE659 /* RJ19.acv */; }; + E57AC3A718618D8E00BDE659 /* RJ20.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37A18618D8E00BDE659 /* RJ20.acv */; }; + E57AC3A818618D8E00BDE659 /* RJ21.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37B18618D8E00BDE659 /* RJ21.acv */; }; + E57AC3A918618D8E00BDE659 /* RJ22.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37C18618D8E00BDE659 /* RJ22.acv */; }; + E57AC3AA18618D8E00BDE659 /* RJ23.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37D18618D8E00BDE659 /* RJ23.acv */; }; + E57AC3AB18618D8E00BDE659 /* RJ24.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37E18618D8E00BDE659 /* RJ24.acv */; }; + E57AC3AC18618D8E00BDE659 /* RJ25.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC37F18618D8E00BDE659 /* RJ25.acv */; }; + E57AC3AD18618D8E00BDE659 /* RJ26.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38018618D8E00BDE659 /* RJ26.acv */; }; + E57AC3AE18618D8E00BDE659 /* RJ27.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38118618D8E00BDE659 /* RJ27.acv */; }; + E57AC3AF18618D8E00BDE659 /* RJ28.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38218618D8E00BDE659 /* RJ28.acv */; }; + E57AC3B018618D8E00BDE659 /* RJ29.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38318618D8E00BDE659 /* RJ29.acv */; }; + E57AC3B118618D8E00BDE659 /* RJ30.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38418618D8E00BDE659 /* RJ30.acv */; }; + E57AC3B218618D8E00BDE659 /* Toy.acv in Resources */ = {isa = PBXBuildFile; fileRef = E57AC38518618D8E00BDE659 /* Toy.acv */; }; + E58078D819FF9790008819CA /* AdjustFilterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E58078D719FF9790008819CA /* AdjustFilterViewController.xib */; }; + E58DA585184339C100D60BBC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E58DA584184339C100D60BBC /* Foundation.framework */; }; + E58DA587184339C100D60BBC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E58DA586184339C100D60BBC /* CoreGraphics.framework */; }; + E58DA589184339C100D60BBC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E58DA588184339C100D60BBC /* UIKit.framework */; }; + E58DA58F184339C100D60BBC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E58DA58D184339C100D60BBC /* InfoPlist.strings */; }; + E58DA591184339C100D60BBC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E58DA590184339C100D60BBC /* main.m */; }; + E58DA595184339C100D60BBC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E58DA594184339C100D60BBC /* AppDelegate.m */; }; + E58DA598184339C100D60BBC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E58DA596184339C100D60BBC /* Main.storyboard */; }; + E58DA5A3184339C100D60BBC /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E58DA5A2184339C100D60BBC /* Images.xcassets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + DFCD1015AE6F4C97AFDB8962 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E57AC34F18618D8E00BDE659 /* AdjustFilterButtonCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterButtonCell.xib; sourceTree = ""; }; + E57AC35018618D8E00BDE659 /* AdjustFilterSliderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterSliderCell.xib; sourceTree = ""; }; + E57AC35118618D8E00BDE659 /* AdjustFilterSwitchCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterSwitchCell.xib; sourceTree = ""; }; + E57AC35218618D8E00BDE659 /* AdjustFilterTitleCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterTitleCell.xib; sourceTree = ""; }; + E57AC35318618D8E00BDE659 /* AdjustFilterViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterViewController_iPad.xib; sourceTree = ""; }; + E57AC35418618D8E00BDE659 /* AdjustFilterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdjustFilterViewController.h; sourceTree = ""; }; + E57AC35518618D8E00BDE659 /* AdjustFilterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdjustFilterViewController.m; sourceTree = ""; }; + E57AC35718618D8E00BDE659 /* AssetsGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssetsGroupViewController.h; sourceTree = ""; }; + E57AC35818618D8E00BDE659 /* AssetsGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AssetsGroupViewController.m; sourceTree = ""; }; + E57AC35918618D8E00BDE659 /* CameraViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraViewController.h; sourceTree = ""; }; + E57AC35A18618D8E00BDE659 /* CameraViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CameraViewController.m; sourceTree = ""; }; + E57AC35C18618D8E00BDE659 /* CropViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CropViewController.h; sourceTree = ""; }; + E57AC35D18618D8E00BDE659 /* CropViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CropViewController.m; sourceTree = ""; }; + E57AC35F18618D8E00BDE659 /* CustomAssetsGroupView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CustomAssetsGroupView.xib; sourceTree = ""; }; + E57AC36018618D8E00BDE659 /* CustomAssetThumbnailView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CustomAssetThumbnailView.xib; sourceTree = ""; }; + E57AC36118618D8E00BDE659 /* CustomGPUImageFilterProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomGPUImageFilterProvider.h; sourceTree = ""; }; + E57AC36218618D8E00BDE659 /* CustomGPUImageFilterProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomGPUImageFilterProvider.m; sourceTree = ""; }; + E57AC36318618D8E00BDE659 /* GalleryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GalleryViewController.h; sourceTree = ""; }; + E57AC36418618D8E00BDE659 /* GalleryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GalleryViewController.m; sourceTree = ""; }; + E57AC36618618D8E00BDE659 /* LibraryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibraryViewController.h; sourceTree = ""; }; + E57AC36718618D8E00BDE659 /* LibraryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibraryViewController.m; sourceTree = ""; }; + E57AC36818618D8E00BDE659 /* PickerTestsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PickerTestsViewController.h; sourceTree = ""; }; + E57AC36918618D8E00BDE659 /* PickerTestsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PickerTestsViewController.m; sourceTree = ""; }; + E57AC36B18618D8E00BDE659 /* PresetFilterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresetFilterViewController.h; sourceTree = ""; }; + E57AC36C18618D8E00BDE659 /* PresetFilterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresetFilterViewController.m; sourceTree = ""; }; + E57AC36F18618D8E00BDE659 /* FA_Curves1.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = FA_Curves1.acv; sourceTree = ""; }; + E57AC37018618D8E00BDE659 /* FA_Curves2.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = FA_Curves2.acv; sourceTree = ""; }; + E57AC37118618D8E00BDE659 /* FA_Curves3.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = FA_Curves3.acv; sourceTree = ""; }; + E57AC37218618D8E00BDE659 /* frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = frame.png; sourceTree = ""; }; + E57AC37318618D8E00BDE659 /* Old.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = Old.acv; sourceTree = ""; }; + E57AC37418618D8E00BDE659 /* photo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = photo.jpg; sourceTree = ""; }; + E57AC37518618D8E00BDE659 /* photo_hires.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = photo_hires.jpg; sourceTree = ""; }; + E57AC37618618D8E00BDE659 /* RJ16.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ16.acv; sourceTree = ""; }; + E57AC37718618D8E00BDE659 /* RJ17.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ17.acv; sourceTree = ""; }; + E57AC37818618D8E00BDE659 /* RJ18.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ18.acv; sourceTree = ""; }; + E57AC37918618D8E00BDE659 /* RJ19.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ19.acv; sourceTree = ""; }; + E57AC37A18618D8E00BDE659 /* RJ20.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ20.acv; sourceTree = ""; }; + E57AC37B18618D8E00BDE659 /* RJ21.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ21.acv; sourceTree = ""; }; + E57AC37C18618D8E00BDE659 /* RJ22.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ22.acv; sourceTree = ""; }; + E57AC37D18618D8E00BDE659 /* RJ23.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ23.acv; sourceTree = ""; }; + E57AC37E18618D8E00BDE659 /* RJ24.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ24.acv; sourceTree = ""; }; + E57AC37F18618D8E00BDE659 /* RJ25.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ25.acv; sourceTree = ""; }; + E57AC38018618D8E00BDE659 /* RJ26.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ26.acv; sourceTree = ""; }; + E57AC38118618D8E00BDE659 /* RJ27.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ27.acv; sourceTree = ""; }; + E57AC38218618D8E00BDE659 /* RJ28.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ28.acv; sourceTree = ""; }; + E57AC38318618D8E00BDE659 /* RJ29.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ29.acv; sourceTree = ""; }; + E57AC38418618D8E00BDE659 /* RJ30.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = RJ30.acv; sourceTree = ""; }; + E57AC38518618D8E00BDE659 /* Toy.acv */ = {isa = PBXFileReference; lastKnownFileType = file; path = Toy.acv; sourceTree = ""; }; + E57FDDF519CAC50A0011B4E5 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; + E58078D719FF9790008819CA /* AdjustFilterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AdjustFilterViewController.xib; sourceTree = ""; }; + E58DA581184339C100D60BBC /* PickerDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PickerDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E58DA584184339C100D60BBC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + E58DA586184339C100D60BBC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + E58DA588184339C100D60BBC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + E58DA58C184339C100D60BBC /* PickerDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PickerDemo-Info.plist"; sourceTree = ""; }; + E58DA58E184339C100D60BBC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + E58DA590184339C100D60BBC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + E58DA592184339C100D60BBC /* PickerDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PickerDemo-Prefix.pch"; sourceTree = ""; }; + E58DA593184339C100D60BBC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + E58DA594184339C100D60BBC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + E58DA5A2184339C100D60BBC /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + E58DA5A9184339C100D60BBC /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + E58DA5BF18433FA900D60BBC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/Main.storyboard; sourceTree = ""; }; + EBDDA42323D60D362D548DDD /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + F4561B72539D02C0EFDD6055 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E58DA57E184339C100D60BBC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E58DA587184339C100D60BBC /* CoreGraphics.framework in Frameworks */, + E58DA589184339C100D60BBC /* UIKit.framework in Frameworks */, + E58DA585184339C100D60BBC /* Foundation.framework in Frameworks */, + C19A4A91A703473FBB359763 /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2BD5EDB130050A97241322AE /* Pods */ = { + isa = PBXGroup; + children = ( + F4561B72539D02C0EFDD6055 /* Pods.debug.xcconfig */, + EBDDA42323D60D362D548DDD /* Pods.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + E57AC36E18618D8E00BDE659 /* Resources */ = { + isa = PBXGroup; + children = ( + E57AC37218618D8E00BDE659 /* frame.png */, + E57AC37418618D8E00BDE659 /* photo.jpg */, + E57AC37518618D8E00BDE659 /* photo_hires.jpg */, + E57AC36F18618D8E00BDE659 /* FA_Curves1.acv */, + E57AC37018618D8E00BDE659 /* FA_Curves2.acv */, + E57AC37118618D8E00BDE659 /* FA_Curves3.acv */, + E57AC37318618D8E00BDE659 /* Old.acv */, + E57AC37618618D8E00BDE659 /* RJ16.acv */, + E57AC37718618D8E00BDE659 /* RJ17.acv */, + E57AC37818618D8E00BDE659 /* RJ18.acv */, + E57AC37918618D8E00BDE659 /* RJ19.acv */, + E57AC37A18618D8E00BDE659 /* RJ20.acv */, + E57AC37B18618D8E00BDE659 /* RJ21.acv */, + E57AC37C18618D8E00BDE659 /* RJ22.acv */, + E57AC37D18618D8E00BDE659 /* RJ23.acv */, + E57AC37E18618D8E00BDE659 /* RJ24.acv */, + E57AC37F18618D8E00BDE659 /* RJ25.acv */, + E57AC38018618D8E00BDE659 /* RJ26.acv */, + E57AC38118618D8E00BDE659 /* RJ27.acv */, + E57AC38218618D8E00BDE659 /* RJ28.acv */, + E57AC38318618D8E00BDE659 /* RJ29.acv */, + E57AC38418618D8E00BDE659 /* RJ30.acv */, + E57AC38518618D8E00BDE659 /* Toy.acv */, + ); + path = Resources; + sourceTree = ""; + }; + E58DA578184339C100D60BBC = { + isa = PBXGroup; + children = ( + E58DA58A184339C100D60BBC /* PickerDemo */, + E58DA583184339C100D60BBC /* Frameworks */, + E58DA582184339C100D60BBC /* Products */, + 2BD5EDB130050A97241322AE /* Pods */, + ); + sourceTree = ""; + }; + E58DA582184339C100D60BBC /* Products */ = { + isa = PBXGroup; + children = ( + E58DA581184339C100D60BBC /* PickerDemo.app */, + ); + name = Products; + sourceTree = ""; + }; + E58DA583184339C100D60BBC /* Frameworks */ = { + isa = PBXGroup; + children = ( + E58DA584184339C100D60BBC /* Foundation.framework */, + E58DA586184339C100D60BBC /* CoreGraphics.framework */, + E58DA588184339C100D60BBC /* UIKit.framework */, + E58DA5A9184339C100D60BBC /* XCTest.framework */, + DFCD1015AE6F4C97AFDB8962 /* libPods.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + E58DA58A184339C100D60BBC /* PickerDemo */ = { + isa = PBXGroup; + children = ( + E58DA593184339C100D60BBC /* AppDelegate.h */, + E58DA594184339C100D60BBC /* AppDelegate.m */, + E58DA596184339C100D60BBC /* Main.storyboard */, + E5CB26B418641B67004C16D3 /* Picker */, + E5CB26B518641B78004C16D3 /* Assets */, + E5CB26B618641B81004C16D3 /* Camera */, + E5CB26BA18641BD9004C16D3 /* Filters */, + E5CB26B918641BB7004C16D3 /* Filter Editor */, + E5CB26B818641BA7004C16D3 /* Gallery */, + E5CB26B718641B9B004C16D3 /* Crop */, + E58DA5A2184339C100D60BBC /* Images.xcassets */, + E57AC36E18618D8E00BDE659 /* Resources */, + E58DA58B184339C100D60BBC /* Supporting Files */, + ); + path = PickerDemo; + sourceTree = ""; + }; + E58DA58B184339C100D60BBC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + E58DA58C184339C100D60BBC /* PickerDemo-Info.plist */, + E58DA58D184339C100D60BBC /* InfoPlist.strings */, + E58DA590184339C100D60BBC /* main.m */, + E58DA592184339C100D60BBC /* PickerDemo-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + E5CB26B418641B67004C16D3 /* Picker */ = { + isa = PBXGroup; + children = ( + E57AC36818618D8E00BDE659 /* PickerTestsViewController.h */, + E57AC36918618D8E00BDE659 /* PickerTestsViewController.m */, + ); + name = Picker; + sourceTree = ""; + }; + E5CB26B518641B78004C16D3 /* Assets */ = { + isa = PBXGroup; + children = ( + E57AC36618618D8E00BDE659 /* LibraryViewController.h */, + E57AC36718618D8E00BDE659 /* LibraryViewController.m */, + E57AC35718618D8E00BDE659 /* AssetsGroupViewController.h */, + E57AC35818618D8E00BDE659 /* AssetsGroupViewController.m */, + E57AC35F18618D8E00BDE659 /* CustomAssetsGroupView.xib */, + E57AC36018618D8E00BDE659 /* CustomAssetThumbnailView.xib */, + ); + name = Assets; + sourceTree = ""; + }; + E5CB26B618641B81004C16D3 /* Camera */ = { + isa = PBXGroup; + children = ( + E57AC35918618D8E00BDE659 /* CameraViewController.h */, + E57AC35A18618D8E00BDE659 /* CameraViewController.m */, + ); + name = Camera; + sourceTree = ""; + }; + E5CB26B718641B9B004C16D3 /* Crop */ = { + isa = PBXGroup; + children = ( + E57AC35C18618D8E00BDE659 /* CropViewController.h */, + E57AC35D18618D8E00BDE659 /* CropViewController.m */, + ); + name = Crop; + sourceTree = ""; + }; + E5CB26B818641BA7004C16D3 /* Gallery */ = { + isa = PBXGroup; + children = ( + E57AC36318618D8E00BDE659 /* GalleryViewController.h */, + E57AC36418618D8E00BDE659 /* GalleryViewController.m */, + ); + name = Gallery; + sourceTree = ""; + }; + E5CB26B918641BB7004C16D3 /* Filter Editor */ = { + isa = PBXGroup; + children = ( + E57AC35418618D8E00BDE659 /* AdjustFilterViewController.h */, + E57AC35518618D8E00BDE659 /* AdjustFilterViewController.m */, + E58078D719FF9790008819CA /* AdjustFilterViewController.xib */, + E57AC35318618D8E00BDE659 /* AdjustFilterViewController_iPad.xib */, + E57AC34F18618D8E00BDE659 /* AdjustFilterButtonCell.xib */, + E57AC35018618D8E00BDE659 /* AdjustFilterSliderCell.xib */, + E57AC35118618D8E00BDE659 /* AdjustFilterSwitchCell.xib */, + E57AC35218618D8E00BDE659 /* AdjustFilterTitleCell.xib */, + ); + name = "Filter Editor"; + sourceTree = ""; + }; + E5CB26BA18641BD9004C16D3 /* Filters */ = { + isa = PBXGroup; + children = ( + E57AC36118618D8E00BDE659 /* CustomGPUImageFilterProvider.h */, + E57AC36218618D8E00BDE659 /* CustomGPUImageFilterProvider.m */, + E57AC36B18618D8E00BDE659 /* PresetFilterViewController.h */, + E57AC36C18618D8E00BDE659 /* PresetFilterViewController.m */, + ); + name = Filters; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E58DA580184339C100D60BBC /* PickerDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = E58DA5B9184339C100D60BBC /* Build configuration list for PBXNativeTarget "PickerDemo" */; + buildPhases = ( + 97D1299EDB164AF58B312BD8 /* Check Pods Manifest.lock */, + E58DA57D184339C100D60BBC /* Sources */, + E58DA57E184339C100D60BBC /* Frameworks */, + E58DA57F184339C100D60BBC /* Resources */, + DA7F503918FC4D90A421B067 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PickerDemo; + productName = PickerDemo; + productReference = E58DA581184339C100D60BBC /* PickerDemo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E58DA579184339C100D60BBC /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = "CyberAgent Inc."; + TargetAttributes = { + E58DA580184339C100D60BBC = { + DevelopmentTeam = G7FH63PE76; + }; + }; + }; + buildConfigurationList = E58DA57C184339C100D60BBC /* Build configuration list for PBXProject "PickerDemo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ja, + ); + mainGroup = E58DA578184339C100D60BBC; + productRefGroup = E58DA582184339C100D60BBC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E58DA580184339C100D60BBC /* PickerDemo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + E58DA57F184339C100D60BBC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E57AC39218618D8E00BDE659 /* CustomAssetsGroupView.xib in Resources */, + E57AC3B118618D8E00BDE659 /* RJ30.acv in Resources */, + E57AC3A718618D8E00BDE659 /* RJ20.acv in Resources */, + E57AC39D18618D8E00BDE659 /* FA_Curves2.acv in Resources */, + E57AC3AC18618D8E00BDE659 /* RJ25.acv in Resources */, + E57AC3A418618D8E00BDE659 /* RJ17.acv in Resources */, + E57AC39F18618D8E00BDE659 /* frame.png in Resources */, + E57AC3A518618D8E00BDE659 /* RJ18.acv in Resources */, + E57AC38818618D8E00BDE659 /* AdjustFilterSwitchCell.xib in Resources */, + E57AC3AD18618D8E00BDE659 /* RJ26.acv in Resources */, + E57AC3A218618D8E00BDE659 /* photo_hires.jpg in Resources */, + E57AC38A18618D8E00BDE659 /* AdjustFilterViewController_iPad.xib in Resources */, + E57AC38718618D8E00BDE659 /* AdjustFilterSliderCell.xib in Resources */, + E57AC3A618618D8E00BDE659 /* RJ19.acv in Resources */, + E57AC3B218618D8E00BDE659 /* Toy.acv in Resources */, + E57AC3A118618D8E00BDE659 /* photo.jpg in Resources */, + E57AC3AA18618D8E00BDE659 /* RJ23.acv in Resources */, + E57AC38918618D8E00BDE659 /* AdjustFilterTitleCell.xib in Resources */, + E57AC3AB18618D8E00BDE659 /* RJ24.acv in Resources */, + E57AC38618618D8E00BDE659 /* AdjustFilterButtonCell.xib in Resources */, + E57AC3AF18618D8E00BDE659 /* RJ28.acv in Resources */, + E58078D819FF9790008819CA /* AdjustFilterViewController.xib in Resources */, + E57AC3A018618D8E00BDE659 /* Old.acv in Resources */, + E57AC3AE18618D8E00BDE659 /* RJ27.acv in Resources */, + E58DA5A3184339C100D60BBC /* Images.xcassets in Resources */, + E58DA598184339C100D60BBC /* Main.storyboard in Resources */, + E58DA58F184339C100D60BBC /* InfoPlist.strings in Resources */, + E57AC3A318618D8E00BDE659 /* RJ16.acv in Resources */, + E57AC39C18618D8E00BDE659 /* FA_Curves1.acv in Resources */, + E57AC39E18618D8E00BDE659 /* FA_Curves3.acv in Resources */, + E57AC39318618D8E00BDE659 /* CustomAssetThumbnailView.xib in Resources */, + E57AC3A818618D8E00BDE659 /* RJ21.acv in Resources */, + E57AC3A918618D8E00BDE659 /* RJ22.acv in Resources */, + E57AC3B018618D8E00BDE659 /* RJ29.acv in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 97D1299EDB164AF58B312BD8 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + DA7F503918FC4D90A421B067 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E58DA57D184339C100D60BBC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E57AC38E18618D8E00BDE659 /* CameraViewController.m in Sources */, + E57AC39518618D8E00BDE659 /* GalleryViewController.m in Sources */, + E57AC39818618D8E00BDE659 /* PickerTestsViewController.m in Sources */, + E58DA595184339C100D60BBC /* AppDelegate.m in Sources */, + E57AC39A18618D8E00BDE659 /* PresetFilterViewController.m in Sources */, + E57AC39718618D8E00BDE659 /* LibraryViewController.m in Sources */, + E57AC38D18618D8E00BDE659 /* AssetsGroupViewController.m in Sources */, + E58DA591184339C100D60BBC /* main.m in Sources */, + E57AC39018618D8E00BDE659 /* CropViewController.m in Sources */, + E57AC38B18618D8E00BDE659 /* AdjustFilterViewController.m in Sources */, + E57AC39418618D8E00BDE659 /* CustomGPUImageFilterProvider.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + E58DA58D184339C100D60BBC /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + E58DA58E184339C100D60BBC /* en */, + E57FDDF519CAC50A0011B4E5 /* ja */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + E58DA596184339C100D60BBC /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + E58DA5BF18433FA900D60BBC /* en */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + E58DA5B7184339C100D60BBC /* 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__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E58DA5B8184339C100D60BBC /* 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__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + E58DA5BA184339C100D60BBC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F4561B72539D02C0EFDD6055 /* Pods.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Ernesto Rivera (486KPGRDM4)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "PickerDemo/PickerDemo-Prefix.pch"; + INFOPLIST_FILE = "PickerDemo/PickerDemo-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + E58DA5BB184339C100D60BBC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EBDDA42323D60D362D548DDD /* Pods.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "PickerDemo/PickerDemo-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "TESTING=1", + ); + INFOPLIST_FILE = "PickerDemo/PickerDemo-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E58DA57C184339C100D60BBC /* Build configuration list for PBXProject "PickerDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E58DA5B7184339C100D60BBC /* Debug */, + E58DA5B8184339C100D60BBC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E58DA5B9184339C100D60BBC /* Build configuration list for PBXNativeTarget "PickerDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E58DA5BA184339C100D60BBC /* Debug */, + E58DA5BB184339C100D60BBC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E58DA579184339C100D60BBC /* Project object */; +} diff --git a/Demo/PickerDemo/AdjustFilterButtonCell.xib b/Demo/PickerDemo/AdjustFilterButtonCell.xib index e9a29b6..31a7087 100644 --- a/Demo/PickerDemo/AdjustFilterButtonCell.xib +++ b/Demo/PickerDemo/AdjustFilterButtonCell.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AdjustFilterSliderCell.xib b/Demo/PickerDemo/AdjustFilterSliderCell.xib index fef05da..5ca2345 100644 --- a/Demo/PickerDemo/AdjustFilterSliderCell.xib +++ b/Demo/PickerDemo/AdjustFilterSliderCell.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AdjustFilterSwitchCell.xib b/Demo/PickerDemo/AdjustFilterSwitchCell.xib index 71f18cd..df0689b 100644 --- a/Demo/PickerDemo/AdjustFilterSwitchCell.xib +++ b/Demo/PickerDemo/AdjustFilterSwitchCell.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AdjustFilterTitleCell.xib b/Demo/PickerDemo/AdjustFilterTitleCell.xib index 6609d5c..ac3ca23 100644 --- a/Demo/PickerDemo/AdjustFilterTitleCell.xib +++ b/Demo/PickerDemo/AdjustFilterTitleCell.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AdjustFilterViewController.m b/Demo/PickerDemo/AdjustFilterViewController.m index e0956c2..a9145c9 100644 --- a/Demo/PickerDemo/AdjustFilterViewController.m +++ b/Demo/PickerDemo/AdjustFilterViewController.m @@ -32,8 +32,11 @@ @implementation AdjustFilterViewController + (void)initialize { - // Register our custom provider - [NBUFilterProvider addProvider:[CustomGPUImageFilterProvider class]]; + if (self == [AdjustFilterViewController class]) + { + // Register our custom provider + [NBUFilterProvider addProvider:[CustomGPUImageFilterProvider class]]; + } } - (void)loadView diff --git a/Demo/PickerDemo/AdjustFilterViewController.xib b/Demo/PickerDemo/AdjustFilterViewController.xib index 5c35692..4e6be68 100644 --- a/Demo/PickerDemo/AdjustFilterViewController.xib +++ b/Demo/PickerDemo/AdjustFilterViewController.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AdjustFilterViewController_iPad.xib b/Demo/PickerDemo/AdjustFilterViewController_iPad.xib index 6a71d48..8928e3a 100644 --- a/Demo/PickerDemo/AdjustFilterViewController_iPad.xib +++ b/Demo/PickerDemo/AdjustFilterViewController_iPad.xib @@ -1,8 +1,9 @@ - + + - + diff --git a/Demo/PickerDemo/AssetsGroupViewController.m b/Demo/PickerDemo/AssetsGroupViewController.m index f2cd5cf..1c111ee 100644 --- a/Demo/PickerDemo/AssetsGroupViewController.m +++ b/Demo/PickerDemo/AssetsGroupViewController.m @@ -32,7 +32,7 @@ - (void)viewDidLoad // Add a next (continue) button _nextButton = [[UIBarButtonItem alloc] initWithTitle:@"Next" - style:UIBarButtonItemStyleBordered + style:UIBarButtonItemStylePlain target:self action:@selector(pushSlideView:)]; self.navigationItem.rightBarButtonItem = _nextButton; diff --git a/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/Contents.json index 7062090..da6c33c 100644 --- a/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -12,12 +12,24 @@ "filename" : "Icon-Small@2x-1.png", "scale" : "2x" }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "logo-1-1.png", + "scale" : "3x" + }, { "size" : "40x40", "idiom" : "iphone", "filename" : "Icon-40@2x-1.png", "scale" : "2x" }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "logo-1.png", + "scale" : "3x" + }, { "size" : "57x57", "idiom" : "iphone", @@ -36,6 +48,12 @@ "filename" : "Icon-60@2x.png", "scale" : "2x" }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "logo.png", + "scale" : "3x" + }, { "size" : "29x29", "idiom" : "ipad", diff --git a/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1-1.png b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1-1.png new file mode 100644 index 0000000..bf5cd18 Binary files /dev/null and b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1-1.png differ diff --git a/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1.png b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1.png new file mode 100644 index 0000000..bd7ee3f Binary files /dev/null and b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo-1.png differ diff --git a/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo.png b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo.png new file mode 100644 index 0000000..8ef0c2a Binary files /dev/null and b/Demo/PickerDemo/Images.xcassets/AppIcon.appiconset/logo.png differ diff --git a/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/Contents.json b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/Contents.json index 3f074b2..c2b2de6 100644 --- a/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/Contents.json +++ b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -1,48 +1,38 @@ { "images" : [ { - "orientation" : "portrait", - "idiom" : "iphone", "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "名称未設定 2-1.png", - "scale" : "2x" + "idiom" : "iphone", + "subtype" : "736h", + "filename" : "名称未設定 2-3.png", + "minimum-system-version" : "8.0", + "orientation" : "portrait", + "scale" : "3x" }, { "extent" : "full-screen", "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "名称未設定 2.png", - "minimum-system-version" : "7.0", + "subtype" : "667h", + "filename" : "名称未設定 2-4.png", + "minimum-system-version" : "8.0", "orientation" : "portrait", "scale" : "2x" }, { "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", + "idiom" : "iphone", "extent" : "full-screen", "minimum-system-version" : "7.0", + "filename" : "名称未設定 2-1.png", "scale" : "2x" }, { - "orientation" : "landscape", - "idiom" : "ipad", "extent" : "full-screen", + "idiom" : "iphone", + "subtype" : "retina4", + "filename" : "名称未設定 2.png", "minimum-system-version" : "7.0", + "orientation" : "portrait", "scale" : "2x" }, { @@ -66,54 +56,6 @@ "filename" : "名称未設定 2-2.png", "subtype" : "retina4", "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" } ], "info" : { diff --git "a/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-3.png" "b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-3.png" new file mode 100644 index 0000000..b1a0178 Binary files /dev/null and "b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-3.png" differ diff --git "a/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-4.png" "b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-4.png" new file mode 100644 index 0000000..6f048bc Binary files /dev/null and "b/Demo/PickerDemo/Images.xcassets/LaunchImage.launchimage/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232 2-4.png" differ diff --git a/Demo/PickerDemo/Images.xcassets/first.imageset/Contents.json b/Demo/PickerDemo/Images.xcassets/first.imageset/Contents.json index a345b09..4fbe64d 100644 --- a/Demo/PickerDemo/Images.xcassets/first.imageset/Contents.json +++ b/Demo/PickerDemo/Images.xcassets/first.imageset/Contents.json @@ -9,6 +9,10 @@ "idiom" : "universal", "scale" : "2x", "filename" : "first@2x.png" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/Demo/PickerDemo/Images.xcassets/second.imageset/Contents.json b/Demo/PickerDemo/Images.xcassets/second.imageset/Contents.json index 2136402..36cbb1d 100644 --- a/Demo/PickerDemo/Images.xcassets/second.imageset/Contents.json +++ b/Demo/PickerDemo/Images.xcassets/second.imageset/Contents.json @@ -9,6 +9,10 @@ "idiom" : "universal", "scale" : "2x", "filename" : "second@2x.png" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/Demo/PickerDemo/LibraryViewController.h b/Demo/PickerDemo/LibraryViewController.h index 303676d..7e5c5c1 100644 --- a/Demo/PickerDemo/LibraryViewController.h +++ b/Demo/PickerDemo/LibraryViewController.h @@ -18,6 +18,8 @@ // limitations under the License. // +#import + @interface LibraryViewController : NBUAssetsLibraryViewController // Actions diff --git a/Demo/PickerDemo/LibraryViewController.m b/Demo/PickerDemo/LibraryViewController.m index 1ffb375..6949628 100644 --- a/Demo/PickerDemo/LibraryViewController.m +++ b/Demo/PickerDemo/LibraryViewController.m @@ -25,9 +25,12 @@ @implementation LibraryViewController +(void)initialize { - // Register our custom directory albums - [[NBUAssetsLibrary sharedLibrary] registerDirectoryGroupforURL:[UIApplication sharedApplication].documentsDirectory - name:@"App's Documents directory"]; + if (self == [LibraryViewController class]) + { + // Register our custom directory albums + [[NBUAssetsLibrary sharedLibrary] registerDirectoryGroupforURL:[UIApplication sharedApplication].documentsDirectory + name:@"App's Documents directory"]; + } } - (void)viewDidLoad @@ -39,8 +42,7 @@ - (void)viewDidLoad // Customization self.customBackButtonTitle = @"Albums"; - self.assetsGroupController = [[AssetsGroupViewController alloc] initWithNibName:@"NBUAssetsGroupViewController" - bundle:nil]; + self.assetsGroupController = [self.storyboard instantiateViewControllerWithIdentifier:@"assetsGroupController"]; } #pragma mark - Handling access authorization diff --git a/Demo/PickerDemo/en.lproj/Main.storyboard b/Demo/PickerDemo/en.lproj/Main.storyboard index 97cb50a..b64dee5 100644 --- a/Demo/PickerDemo/en.lproj/Main.storyboard +++ b/Demo/PickerDemo/en.lproj/Main.storyboard @@ -1,8 +1,9 @@ - + + - + @@ -45,134 +46,141 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -219,55 +227,113 @@ - + - + - - + + - - - - - - - + + + + + + + + - + + + + + + + + + + + + + + - - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -529,7 +595,7 @@ - + @@ -579,7 +645,7 @@ - + @@ -710,6 +776,7 @@ + @@ -717,4 +784,5 @@ + diff --git a/Demo/Podfile.lock b/Demo/Podfile.lock index cca9e75..7522050 100644 --- a/Demo/Podfile.lock +++ b/Demo/Podfile.lock @@ -1,21 +1,20 @@ PODS: - - CocoaLumberjack (2.0.0-beta): - - CocoaLumberjack/CLI - - CocoaLumberjack/Core + - CocoaLumberjack (2.0.0-beta4): + - CocoaLumberjack/Default - CocoaLumberjack/Extensions - - CocoaLumberjack/CLI (2.0.0-beta): - - CocoaLumberjack/Core - - CocoaLumberjack/Core (2.0.0-beta) - - CocoaLumberjack/Extensions (2.0.0-beta): + - CocoaLumberjack/Core (2.0.0-beta4) + - CocoaLumberjack/Default (2.0.0-beta4): - CocoaLumberjack/Core + - CocoaLumberjack/Extensions (2.0.0-beta4): + - CocoaLumberjack/Default - GPUImage (HEAD based on 0.1.6) - - Lockbox (1.4.9) - - LumberjackConsole (2.2.1): - - CocoaLumberjack (>= 2.0.0-beta) + - Lockbox (2.1.0) + - LumberjackConsole (2.4.2): + - CocoaLumberjack (>= 2.0.0-beta4) - NBUCore (>= 2.0.3) - MotionOrientation@PTEz (1.1.0) - - NBUCore (2.0.3) - - NBUImagePicker (1.4.0): + - NBUCore (2.0.4) + - NBUImagePicker (1.5.0): - NBUImagePicker/Assets - NBUImagePicker/Base - NBUImagePicker/Camera @@ -25,76 +24,76 @@ PODS: - NBUImagePicker/MediaInfo - NBUImagePicker/Picker - NBUImagePicker/Resources - - NBUKit (>= 2.3.0) - - NBUImagePicker/Assets (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Assets (1.5.0): - NBUImagePicker/Base - - NBUKit (>= 2.3.0) - - NBUImagePicker/Base (1.4.0): - - NBUKit (>= 2.3.0) - - NBUImagePicker/Camera (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Base (1.5.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Camera (1.5.0): - NBUImagePicker/Assets - - NBUKit (>= 2.3.0) + - NBUKit (>= 2.4.0) - RBVolumeButtons@PTEz - - NBUImagePicker/Filters (1.4.0): + - NBUImagePicker/Filters (1.5.0): - GPUImage (>= 0.1.5) - NBUImagePicker/Base - - NBUKit (>= 2.3.0) - - NBUImagePicker/Gallery (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Gallery (1.5.0): - NBUImagePicker/Assets - NBUImagePicker/MediaInfo - - NBUKit (>= 2.3.0) - - NBUImagePicker/Image (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Image (1.5.0): - NBUImagePicker/MediaInfo - - NBUKit (>= 2.3.0) - - NBUImagePicker/MediaInfo (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/MediaInfo (1.5.0): - NBUImagePicker/Assets - - NBUKit (>= 2.3.0) - - NBUImagePicker/Picker (1.4.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Picker (1.5.0): - NBUImagePicker/Camera - NBUImagePicker/Gallery - NBUImagePicker/Image - NBUImagePicker/Resources - - NBUKit (>= 2.3.0) - - NBUImagePicker/Resources (1.4.0): - - NBUKit (>= 2.3.0) - - NBUKit (2.3.0): + - NBUKit (>= 2.4.0) + - NBUImagePicker/Resources (1.5.0): + - NBUKit (>= 2.4.0) + - NBUKit (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - NBUKit/Additions - NBUKit/Base - NBUKit/Library - NBUKit/UI - - NBUKit/Additions (2.3.0): + - NBUKit/Additions (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - NBUKit/Base - - NBUKit/Base (2.3.0): + - NBUKit/Base (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - - NBUKit/Library (2.3.0): + - NBUKit/Library (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - NBUKit/Base - NBUKit/Library/NBUCompatibility - NBUKit/Library/RestKitSupport - - NBUKit/Library/NBUCompatibility (2.3.0): + - NBUKit/Library/NBUCompatibility (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - NBUKit/Base - NBUKit/UI - - NBUKit/Library/RestKitSupport (2.3.0): + - NBUKit/Library/RestKitSupport (2.4.0): - Lockbox (>= 1.4.6) - NBUCore (>= 2.0.3) - NBUKit/Base - - NBUKit/UI (2.3.0): + - NBUKit/UI (2.4.0): - Lockbox (>= 1.4.6) - MotionOrientation@PTEz (>= 1.1.0) - NBUCore (>= 2.0.3) - NBUKit/Additions - NBUKit/Library/NBUCompatibility - NBUKit/Library/RestKitSupport - - NBULog (1.1.1): - - CocoaLumberjack (>= 2.0.0-beta) + - NBULog (1.2.2): + - CocoaLumberjack (>= 2.0.0-beta4) - RBVolumeButtons@PTEz (0.1.0) DEPENDENCIES: @@ -108,15 +107,15 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - CocoaLumberjack: aadc76d7bd6c839ca84b38ed50cbf89d7cf8c693 + CocoaLumberjack: 24153b24b17d853d7182b22b128971fb98e8cb18 GPUImage: cecb0830bb9428f50192042e3c7b53810f51388e - Lockbox: cfe87dbbce6b5c6d7cfeefc3fe6594ef55919b11 - LumberjackConsole: 53cf2f5917d114ce637825d065e2c91a3ed1d785 + Lockbox: 3168f08cb26680b05a0702b8c0cc6da32788059d + LumberjackConsole: cb05e10656efd74bfbaf9b9cbec87d0412d2a634 MotionOrientation@PTEz: ec58ced639faa14d30e63db9ef5cba8ded38b3b5 - NBUCore: 397184612d5f05d7730aaad98d6bc0a75b7984ef - NBUImagePicker: 7fb8f09795cfcc3fe8d72c61d6f50bc9c561954b - NBUKit: 0b473e707315d8cf1da263abc2eac04163924fd8 - NBULog: 191b7626747e64b774876c2ca802c9c28f14e68f + NBUCore: 978f24fdc8d79dc8141032bf0121053e3b25c95c + NBUImagePicker: 3e3ad33c578e756b0a7db311cf5e0c409cf27cc3 + NBUKit: 312b1739e794090d4687e1fdb87b213358efa178 + NBULog: 50d789289ba22b1b44ef24a419031d8aae49b252 RBVolumeButtons@PTEz: 3b176a1e501aa2433c17bf4c2787c65ba5080aa6 -COCOAPODS: 0.34.1 +COCOAPODS: 0.34.4 diff --git a/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.h b/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.h deleted file mode 100644 index 6377200..0000000 --- a/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// CLIColor.h -// CocoaLumberjack -// -// Created by Ernesto Rivera on 2013/12/27. -// - -#import - -/** - Simple NSColor replacement for CLI projects that don't link with AppKit - */ -@interface CLIColor : NSObject - -+ (CLIColor *)colorWithCalibratedRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha; -- (void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha; - -@end diff --git a/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.m b/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.m deleted file mode 100644 index 3287342..0000000 --- a/Demo/Pods/CocoaLumberjack/Classes/CLI/CLIColor.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// CLIColor.m -// CocoaLumberjack -// -// Created by Ernesto Rivera on 2013/12/27. -// - -#import "CLIColor.h" - -@implementation CLIColor -{ - CGFloat _red, _green, _blue, _alpha; -} - -+(CLIColor *)colorWithCalibratedRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha -{ - CLIColor * color = [CLIColor new]; - color->_red = red; - color->_green = green; - color->_blue = blue; - color->_alpha = alpha; - return color; -} - -- (void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha -{ - if (red) *red = _red; - if (green) *green = _green; - if (blue) *blue = _blue; - if (alpha) *alpha = _alpha; -} - -@end diff --git a/Demo/Pods/CocoaLumberjack/Classes/CocoaLumberjack.h b/Demo/Pods/CocoaLumberjack/Classes/CocoaLumberjack.h index 4e70d68..5904fce 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/CocoaLumberjack.h +++ b/Demo/Pods/CocoaLumberjack/Classes/CocoaLumberjack.h @@ -1,3 +1,17 @@ +// Software License Agreement (BSD License) +// +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. +// +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. /** * Welcome to CocoaLumberjack! @@ -5,8 +19,8 @@ * The project page has a wealth of documentation if you have any questions. * https://github.com/CocoaLumberjack/CocoaLumberjack * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted + * If you're new to the project you may wish to read "Getting Started" at: + * Documentation/GettingStarted.md * * Otherwise, here is a quick refresher. * There are three steps to using the macros: @@ -20,7 +34,7 @@ * Define your logging level in your implementation file: * * // Log levels: off, error, warn, info, verbose - * static const int ddLogLevel = LOG_LEVEL_VERBOSE; + * static const DDLogLevel ddLogLevel = DDLogLevelVerbose; * * Step 2 [3rd party frameworks]: * @@ -32,7 +46,7 @@ * Define your logging level in your implementation file: * * // Log levels: off, error, warn, info, verbose - * static const int myLibLogLevel = LOG_LEVEL_VERBOSE; + * static const DDLogLevel myLibLogLevel = DDLogLevelVerbose; * * Step 3: * Replace your NSLog statements with DDLog statements according to the severity of the message. @@ -43,11 +57,25 @@ * This means you can pass it multiple variables just like NSLog. **/ +#import + +// Legacy +#ifndef DDLEGACY + #define DDLEGACY NO +#endif + +// Core #import "DDLog.h" + +// Main macros #import "DDLogMacros.h" #import "DDAssertMacros.h" +// Capture ASL +#import "DDASLLogCapture.h" + // Loggers #import "DDTTYLogger.h" #import "DDASLLogger.h" #import "DDFileLogger.h" + diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.h b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.h index fffbfa8..bc45a33 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.h +++ b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.h @@ -1,22 +1,32 @@ +// Software License Agreement (BSD License) // -// DDASLLogCapture.h -// Lumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // -// Created by Dario Ahdoot on 3/17/14. +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: // +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDASLLogger.h" @protocol DDLogger; +/** + * This class provides the ability to capture the ASL (Apple System Logs) + */ @interface DDASLLogCapture : NSObject + (void)start; + (void)stop; -// Default log level: LOG_LEVEL_VERBOSE (i.e. capture all ASL messages). -+ (int)captureLogLevel; -+ (void)setCaptureLogLevel:(int)LOG_LEVEL_XXX; +// Default log level: DDLogLevelVerbose (i.e. capture all ASL messages). ++ (DDLogLevel)captureLevel; ++ (void)setCaptureLevel:(DDLogLevel)level; @end - diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.m b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.m index 89a93a2..d311430 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.m +++ b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogCapture.m @@ -1,9 +1,17 @@ +// Software License Agreement (BSD License) // -// DDASLLogCapture.m -// Lumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // -// Created by Dario Ahdoot on 3/17/14. +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: // +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDASLLogCapture.h" #import "DDLog.h" @@ -14,44 +22,72 @@ #include static BOOL _cancel = YES; -static int _captureLogLevel = LOG_LEVEL_VERBOSE; +static DDLogLevel _captureLevel = DDLogLevelVerbose; + +#ifdef __IPHONE_8_0 + #define DDASL_IOS_PIVOT_VERSION __IPHONE_8_0 +#endif +#ifdef __MAC_10_10 + #define DDASL_OSX_PIVOT_VERSION __MAC_10_10 +#endif @implementation DDASLLogCapture -+ (void)start +static aslmsg (*dd_asl_next)(aslresponse obj); +static void (*dd_asl_release)(aslresponse obj); + ++ (void)initialize { + #if (defined(DDASL_IOS_PIVOT_VERSION) && __IPHONE_OS_VERSION_MAX_ALLOWED >= DDASL_IOS_PIVOT_VERSION) || (defined(DDASL_OSX_PIVOT_VERSION) && __MAC_OS_X_VERSION_MAX_ALLOWED >= DDASL_OSX_PIVOT_VERSION) + #if __IPHONE_OS_VERSION_MIN_REQUIRED < DDASL_IOS_PIVOT_VERSION || __MAC_OS_X_VERSION_MIN_REQUIRED < DDASL_OSX_PIVOT_VERSION + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdeprecated-declarations" + // Building on falsely advertised SDK, targeting deprecated API + dd_asl_next = &aslresponse_next; + dd_asl_release = &aslresponse_free; + #pragma GCC diagnostic pop + #else + // Building on lastest, correct SDK, targeting latest API + dd_asl_next = &asl_next; + dd_asl_release = &asl_release; + #endif + #else + // Building on old SDKs, targeting deprecated API + dd_asl_next = &aslresponse_next; + dd_asl_release = &aslresponse_free; + #endif +} + ++ (void)start { // Ignore subsequent calls - if (!_cancel) + if (!_cancel) { return; + } _cancel = NO; - dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) - { - [DDASLLogCapture captureAslLogs]; - }); + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { + [DDASLLogCapture captureAslLogs]; + }); } -+ (void)stop -{ ++ (void)stop { _cancel = YES; } -+ (int)captureLogLevel -{ - return _captureLogLevel; ++ (DDLogLevel)captureLevel { + return _captureLevel; } -+ (void)setCaptureLogLevel:(int)LOG_LEVEL_XXX -{ - _captureLogLevel = LOG_LEVEL_XXX; ++ (void)setCaptureLevel:(DDLogLevel)level { + _captureLevel = level; } -# pragma mark - Private methods +#pragma mark - Private methods -+ (void)configureAslQuery:(aslmsg)query -{ ++ (void)configureAslQuery:(aslmsg)query { const char param[] = "7"; // ASL_LEVEL_DEBUG, which is everything. We'll rely on regular DDlog log level to filter + asl_set_query(query, ASL_KEY_LEVEL, param, ASL_QUERY_OP_LESS_EQUAL | ASL_QUERY_OP_NUMERIC); #if !TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR @@ -62,44 +98,48 @@ + (void)configureAslQuery:(aslmsg)query #endif } -+ (void)aslMessageRecieved:(aslmsg)msg -{ - // NSString * sender = [NSString stringWithCString:asl_get(msg, ASL_KEY_SENDER) encoding:NSUTF8StringEncoding]; - NSString * message = [NSString stringWithCString:asl_get(msg, ASL_KEY_MSG) encoding:NSUTF8StringEncoding]; - NSString * level = [NSString stringWithCString:asl_get(msg, ASL_KEY_LEVEL) encoding:NSUTF8StringEncoding]; - NSString * secondsStr = [NSString stringWithCString:asl_get(msg, ASL_KEY_TIME) encoding:NSUTF8StringEncoding]; - NSString * nanoStr = [NSString stringWithCString:asl_get(msg, ASL_KEY_TIME_NSEC) encoding:NSUTF8StringEncoding]; ++ (void)aslMessageRecieved:(aslmsg)msg { + const char* messageCString = asl_get( msg, ASL_KEY_MSG ); + if ( messageCString == NULL ) + return; + // NSString * sender = [NSString stringWithCString:asl_get(msg, ASL_KEY_SENDER) encoding:NSUTF8StringEncoding]; + NSString *message = @(messageCString); + NSString *level = @(asl_get(msg, ASL_KEY_LEVEL)); + NSString *secondsStr = @(asl_get(msg, ASL_KEY_TIME)); + NSString *nanoStr = @(asl_get(msg, ASL_KEY_TIME_NSEC)); + NSTimeInterval seconds = [secondsStr doubleValue]; NSTimeInterval nanoSeconds = [nanoStr doubleValue]; NSTimeInterval totalSeconds = seconds + (nanoSeconds / 1e9); - - NSDate * timeStamp = [NSDate dateWithTimeIntervalSince1970:totalSeconds]; - + + NSDate *timeStamp = [NSDate dateWithTimeIntervalSince1970:totalSeconds]; + int flag; BOOL async; - switch([level intValue]) - { + + switch ([level intValue]) { // By default all NSLog's with a ASL_LEVEL_WARNING level case ASL_LEVEL_EMERG : case ASL_LEVEL_ALERT : - case ASL_LEVEL_CRIT : flag = LOG_FLAG_ERROR; async = LOG_ASYNC_ERROR; break; - case ASL_LEVEL_ERR : flag = LOG_FLAG_WARN; async = LOG_ASYNC_WARN; break; - case ASL_LEVEL_WARNING : flag = LOG_FLAG_INFO; async = LOG_ASYNC_INFO; break; - case ASL_LEVEL_NOTICE : flag = LOG_FLAG_DEBUG; async = LOG_ASYNC_DEBUG; break; + case ASL_LEVEL_CRIT : flag = DDLogFlagError; async = NO; break; + case ASL_LEVEL_ERR : flag = DDLogFlagWarning; async = YES; break; + case ASL_LEVEL_WARNING : flag = DDLogFlagInfo; async = YES; break; + case ASL_LEVEL_NOTICE : flag = DDLogFlagDebug; async = YES; break; case ASL_LEVEL_INFO : case ASL_LEVEL_DEBUG : - default : flag = LOG_FLAG_VERBOSE; async = LOG_ASYNC_VERBOSE; break; + default : flag = DDLogFlagVerbose; async = YES; break; } - if (!(_captureLogLevel & flag)) + if (!(_captureLevel & flag)) { return; + } - DDLogMessage * logMessage = [[DDLogMessage alloc]initWithLogMsg:message - level:_captureLogLevel + DDLogMessage *logMessage = [[DDLogMessage alloc]initWithMessage:message + level:_captureLevel flag:flag context:0 - file:"DDASLLogCapture" + file:@"DDASLLogCapture" function:0 line:0 tag:nil @@ -109,79 +149,73 @@ + (void)aslMessageRecieved:(aslmsg)msg [DDLog log:async message:logMessage]; } -+ (void)captureAslLogs -{ ++ (void)captureAslLogs { @autoreleasepool { /* - We use ASL_KEY_MSG_ID to see each message once, but there's no - obvious way to get the "next" ID. To bootstrap the process, we'll - search by timestamp until we've seen a message. + We use ASL_KEY_MSG_ID to see each message once, but there's no + obvious way to get the "next" ID. To bootstrap the process, we'll + search by timestamp until we've seen a message. */ - - struct timeval timeval = { .tv_sec = 0 }; + + struct timeval timeval = { + .tv_sec = 0 + }; gettimeofday(&timeval, NULL); unsigned long long startTime = timeval.tv_sec; __block unsigned long long lastSeenID = 0; - + /* - syslogd posts kNotifyASLDBUpdate (com.apple.system.logger.message) - through the notify API when it saves messages to the ASL database. - There is some coalescing - currently it is sent at most twice per - second - but there is no documented guarantee about this. In any - case, there may be multiple messages per notification. - - Notify notifications don't carry any payload, so we need to search - for the messages. + syslogd posts kNotifyASLDBUpdate (com.apple.system.logger.message) + through the notify API when it saves messages to the ASL database. + There is some coalescing - currently it is sent at most twice per + second - but there is no documented guarantee about this. In any + case, there may be multiple messages per notification. + + Notify notifications don't carry any payload, so we need to search + for the messages. */ int notifyToken = 0; // Can be used to unregister with notify_cancel(). notify_register_dispatch(kNotifyASLDBUpdate, ¬ifyToken, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^(int token) - { - // At least one message has been posted; build a search query. - @autoreleasepool - { - aslmsg query = asl_new(ASL_TYPE_QUERY); - char stringValue[64]; - if (lastSeenID > 0) - { - snprintf(stringValue, sizeof stringValue, "%llu", lastSeenID); - asl_set_query(query, ASL_KEY_MSG_ID, stringValue, ASL_QUERY_OP_GREATER | ASL_QUERY_OP_NUMERIC); - } - else - { - snprintf(stringValue, sizeof stringValue, "%llu", startTime); - asl_set_query(query, ASL_KEY_TIME, stringValue, ASL_QUERY_OP_GREATER_EQUAL | ASL_QUERY_OP_NUMERIC); - } - [DDASLLogCapture configureAslQuery:query]; - - // Iterate over new messages. - aslmsg msg; - aslresponse response = asl_search(NULL, query); -#if defined(__IPHONE_8_0) || defined(__MAC_10_10) - while ((msg = asl_next(response))) -#else - while ((msg = aslresponse_next(response))) -#endif - { - [DDASLLogCapture aslMessageRecieved:msg]; - - // Keep track of which messages we've seen. - lastSeenID = atoll(asl_get(msg, ASL_KEY_MSG_ID)); - } -#if defined(__IPHONE_8_0) || defined(__MAC_10_10) - asl_release(response); -#else - aslresponse_free(response); -#endif - if(_cancel) - { - notify_cancel(notifyToken); - return; - } - free(query); - } - }); + { + // At least one message has been posted; build a search query. + @autoreleasepool + { + aslmsg query = asl_new(ASL_TYPE_QUERY); + char stringValue[64]; + + if (lastSeenID > 0) { + snprintf(stringValue, sizeof stringValue, "%llu", lastSeenID); + asl_set_query(query, ASL_KEY_MSG_ID, stringValue, ASL_QUERY_OP_GREATER | ASL_QUERY_OP_NUMERIC); + } else { + snprintf(stringValue, sizeof stringValue, "%llu", startTime); + asl_set_query(query, ASL_KEY_TIME, stringValue, ASL_QUERY_OP_GREATER_EQUAL | ASL_QUERY_OP_NUMERIC); + } + + [DDASLLogCapture configureAslQuery:query]; + + // Iterate over new messages. + aslmsg msg; + aslresponse response = asl_search(NULL, query); + + while ((msg = dd_asl_next(response))) + { + [DDASLLogCapture aslMessageRecieved:msg]; + + // Keep track of which messages we've seen. + lastSeenID = atoll(asl_get(msg, ASL_KEY_MSG_ID)); + } + dd_asl_release(response); + + if (_cancel) { + notify_cancel(notifyToken); + return; + } + + free(query); + } + }); } } -@end \ No newline at end of file +@end diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.h b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.h index fedd624..2e48f60 100755 --- a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.h +++ b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.h @@ -1,34 +1,34 @@ +// Software License Agreement (BSD License) // -// DDASLLogger.h -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import - #import "DDLog.h" /** - * Welcome to CocoaLumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * * This class provides a logger for the Apple System Log facility. - * + * * As described in the "Getting Started" page, * the traditional NSLog() function directs it's output to two places: - * + * * - Apple System Log * - StdErr (if stderr is a TTY) so log statements show up in Xcode console - * + * * To duplicate NSLog() functionality you can simply add this logger and a tty logger. * However, if you instead choose to use file logging (for faster performance), * you may choose to use a file logger and a tty logger. -**/ + **/ @interface DDASLLogger : DDAbstractLogger diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.m b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.m old mode 100755 new mode 100644 index 0fb4b4a..396d10b --- a/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.m +++ b/Demo/Pods/CocoaLumberjack/Classes/DDASLLogger.m @@ -1,99 +1,115 @@ +// Software License Agreement (BSD License) // -// DDASLLogger.m -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDASLLogger.h" #import -#import - -/** - * Welcome to CocoaLumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted -**/ - -#if ! __has_feature(objc_arc) + +#if !__has_feature(objc_arc) #error This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). #endif static DDASLLogger *sharedInstance; -@implementation DDASLLogger -{ - aslclient client; +@interface DDASLLogger () { + aslclient _client; } -+ (instancetype)sharedInstance -{ +@end + + +@implementation DDASLLogger + ++ (instancetype)sharedInstance { static dispatch_once_t DDASLLoggerOnceToken; + dispatch_once(&DDASLLoggerOnceToken, ^{ sharedInstance = [[[self class] alloc] init]; }); - + return sharedInstance; } -- (id)init -{ - if (sharedInstance != nil) - { +- (instancetype)init { + if (sharedInstance != nil) { return nil; } - - if ((self = [super init])) - { + + if ((self = [super init])) { // A default asl client is provided for the main thread, // but background threads need to create their own client. - - client = asl_open(NULL, "com.apple.console", 0); + + _client = asl_open(NULL, "com.apple.console", 0); } + return self; } -- (void)logMessage:(DDLogMessage *)logMessage -{ - // Skip captured log messages. - if (strcmp(logMessage->file, "DDASLLogCapture") == 0) +- (void)logMessage:(DDLogMessage *)logMessage { + // Skip captured log messages + if ([logMessage->_fileName isEqualToString:@"DDASLLogCapture"]) { return; - - NSString *logMsg = logMessage->logMsg; - - if (formatter) - { - logMsg = [formatter formatLogMessage:logMessage]; } - - if (logMsg) - { - const char *msg = [logMsg UTF8String]; - - int aslLogLevel; - switch (logMessage->logFlag) - { + + NSString * message = _logFormatter ? [_logFormatter formatLogMessage:logMessage] : logMessage->_message; + + if (logMessage) { + const char *msg = [message UTF8String]; + + size_t aslLogLevel; + switch (logMessage->_flag) { // Note: By default ASL will filter anything above level 5 (Notice). // So our mappings shouldn't go above that level. - case LOG_FLAG_ERROR : aslLogLevel = ASL_LEVEL_CRIT; break; - case LOG_FLAG_WARN : aslLogLevel = ASL_LEVEL_ERR; break; - case LOG_FLAG_INFO : aslLogLevel = ASL_LEVEL_WARNING; break; // Regular NSLog's level - case LOG_FLAG_DEBUG : - case LOG_FLAG_VERBOSE : + case DDLogFlagError : aslLogLevel = ASL_LEVEL_CRIT; break; + case DDLogFlagWarning : aslLogLevel = ASL_LEVEL_ERR; break; + case DDLogFlagInfo : aslLogLevel = ASL_LEVEL_WARNING; break; // Regular NSLog's level + case DDLogFlagDebug : + case DDLogFlagVerbose : default : aslLogLevel = ASL_LEVEL_NOTICE; break; } - + + static char const *const level_strings[] = { "0", "1", "2", "3", "4", "5", "6", "7" }; + + // NSLog uses the current euid to set the ASL_KEY_READ_UID. + uid_t const readUID = geteuid(); + + char readUIDString[16]; +#ifndef NS_BLOCK_ASSERTIONS + int l = snprintf(readUIDString, sizeof(readUIDString), "%d", readUID); +#else + snprintf(readUIDString, sizeof(readUIDString), "%d", readUID); +#endif + + NSAssert(l < sizeof(readUIDString), + @"Formatted euid is too long."); + NSAssert(aslLogLevel < (sizeof(level_strings) / sizeof(level_strings[0])), + @"Unhandled ASL log level."); + aslmsg m = asl_new(ASL_TYPE_MSG); - asl_set(m, ASL_KEY_READ_UID, "501"); - asl_log(client, m, aslLogLevel, "%s", msg); - asl_free(m); + if (m != NULL) { + if (asl_set(m, ASL_KEY_LEVEL, level_strings[aslLogLevel]) == 0 && + asl_set(m, ASL_KEY_MSG, msg) == 0 && + asl_set(m, ASL_KEY_READ_UID, readUIDString) == 0) { + asl_send(_client, m); + } + asl_free(m); + } + //TODO handle asl_* failures non-silently? } } -- (NSString *)loggerName -{ +- (NSString *)loggerName { return @"cocoa.lumberjack.aslLogger"; } diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.h b/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.h index 9fc4694..53b1339 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.h +++ b/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.h @@ -1,105 +1,107 @@ +// Software License Agreement (BSD License) // -// DDAbstractDatabaseLogger.h -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDLog.h" /** - * Welcome to CocoaLumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * * This class provides an abstract implementation of a database logger. - * + * * That is, it provides the base implementation for a database logger to build atop of. * All that is needed for a concrete database logger is to extend this class * and override the methods in the implementation file that are prefixed with "db_". -**/ + **/ @interface DDAbstractDatabaseLogger : DDAbstractLogger { + @protected - NSUInteger saveThreshold; - NSTimeInterval saveInterval; - NSTimeInterval maxAge; - NSTimeInterval deleteInterval; - BOOL deleteOnEverySave; + NSUInteger _saveThreshold; + NSTimeInterval _saveInterval; + NSTimeInterval _maxAge; + NSTimeInterval _deleteInterval; + BOOL _deleteOnEverySave; - BOOL saveTimerSuspended; - NSUInteger unsavedCount; - dispatch_time_t unsavedTime; - dispatch_source_t saveTimer; - dispatch_time_t lastDeleteTime; - dispatch_source_t deleteTimer; + BOOL _saveTimerSuspended; + NSUInteger _unsavedCount; + dispatch_time_t _unsavedTime; + dispatch_source_t _saveTimer; + dispatch_time_t _lastDeleteTime; + dispatch_source_t _deleteTimer; } /** * Specifies how often to save the data to disk. * Since saving is an expensive operation (disk io) it is not done after every log statement. * These properties allow you to configure how/when the logger saves to disk. - * + * * A save is done when either (whichever happens first): - * + * * - The number of unsaved log entries reaches saveThreshold * - The amount of time since the oldest unsaved log entry was created reaches saveInterval - * + * * You can optionally disable the saveThreshold by setting it to zero. * If you disable the saveThreshold you are entirely dependent on the saveInterval. - * + * * You can optionally disable the saveInterval by setting it to zero (or a negative value). * If you disable the saveInterval you are entirely dependent on the saveThreshold. - * + * * It's not wise to disable both saveThreshold and saveInterval. - * + * * The default saveThreshold is 500. * The default saveInterval is 60 seconds. -**/ + **/ @property (assign, readwrite) NSUInteger saveThreshold; @property (assign, readwrite) NSTimeInterval saveInterval; /** * It is likely you don't want the log entries to persist forever. * Doing so would allow the database to grow infinitely large over time. - * + * * The maxAge property provides a way to specify how old a log statement can get * before it should get deleted from the database. - * + * * The deleteInterval specifies how often to sweep for old log entries. * Since deleting is an expensive operation (disk io) is is done on a fixed interval. - * + * * An alternative to the deleteInterval is the deleteOnEverySave option. * This specifies that old log entries should be deleted during every save operation. - * + * * You can optionally disable the maxAge by setting it to zero (or a negative value). * If you disable the maxAge then old log statements are not deleted. - * + * * You can optionally disable the deleteInterval by setting it to zero (or a negative value). - * + * * If you disable both deleteInterval and deleteOnEverySave then old log statements are not deleted. - * + * * It's not wise to enable both deleteInterval and deleteOnEverySave. - * + * * The default maxAge is 7 days. * The default deleteInterval is 5 minutes. * The default deleteOnEverySave is NO. -**/ + **/ @property (assign, readwrite) NSTimeInterval maxAge; @property (assign, readwrite) NSTimeInterval deleteInterval; @property (assign, readwrite) BOOL deleteOnEverySave; /** * Forces a save of any pending log entries (flushes log entries to disk). -**/ + **/ - (void)savePendingLogEntries; /** * Removes any log entries that are older than maxAge. -**/ + **/ - (void)deleteOldLogEntries; @end diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.m b/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.m index f365b7f..78b2651 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.m +++ b/Demo/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.m @@ -1,79 +1,75 @@ +// Software License Agreement (BSD License) // -// DDAbstractDatabaseLogger.m -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDAbstractDatabaseLogger.h" #import -/** - * Welcome to CocoaLumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted -**/ - -#if ! __has_feature(objc_arc) + +#if !__has_feature(objc_arc) #error This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). #endif @interface DDAbstractDatabaseLogger () + - (void)destroySaveTimer; - (void)destroyDeleteTimer; + @end #pragma mark - @implementation DDAbstractDatabaseLogger -- (id)init -{ - if ((self = [super init])) - { - saveThreshold = 500; - saveInterval = 60; // 60 seconds - maxAge = (60 * 60 * 24 * 7); // 7 days - deleteInterval = (60 * 5); // 5 minutes +- (instancetype)init { + if ((self = [super init])) { + _saveThreshold = 500; + _saveInterval = 60; // 60 seconds + _maxAge = (60 * 60 * 24 * 7); // 7 days + _deleteInterval = (60 * 5); // 5 minutes } + return self; } -- (void)dealloc -{ +- (void)dealloc { [self destroySaveTimer]; [self destroyDeleteTimer]; - } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #pragma mark Override Me //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (BOOL)db_log:(DDLogMessage *)logMessage -{ +- (BOOL)db_log:(DDLogMessage *)logMessage { // Override me and add your implementation. - // + // // Return YES if an item was added to the buffer. // Return NO if the logMessage was ignored. - + return NO; } -- (void)db_save -{ +- (void)db_save { // Override me and add your implementation. } -- (void)db_delete -{ +- (void)db_delete { // Override me and add your implementation. } -- (void)db_saveAndDelete -{ +- (void)db_saveAndDelete { // Override me and add your implementation. } @@ -81,33 +77,29 @@ - (void)db_saveAndDelete #pragma mark Private API //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (void)performSaveAndSuspendSaveTimer -{ - if (unsavedCount > 0) - { - if (deleteOnEverySave) +- (void)performSaveAndSuspendSaveTimer { + if (_unsavedCount > 0) { + if (_deleteOnEverySave) { [self db_saveAndDelete]; - else + } else { [self db_save]; + } } - - unsavedCount = 0; - unsavedTime = 0; - - if (saveTimer && !saveTimerSuspended) - { - dispatch_suspend(saveTimer); - saveTimerSuspended = YES; + + _unsavedCount = 0; + _unsavedTime = 0; + + if (_saveTimer && !_saveTimerSuspended) { + dispatch_suspend(_saveTimer); + _saveTimerSuspended = YES; } } -- (void)performDelete -{ - if (maxAge > 0.0) - { +- (void)performDelete { + if (_maxAge > 0.0) { [self db_delete]; - - lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0); + + _lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0); } } @@ -115,101 +107,88 @@ - (void)performDelete #pragma mark Timers //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (void)destroySaveTimer -{ - if (saveTimer) - { - dispatch_source_cancel(saveTimer); - if (saveTimerSuspended) - { +- (void)destroySaveTimer { + if (_saveTimer) { + dispatch_source_cancel(_saveTimer); + + if (_saveTimerSuspended) { // Must resume a timer before releasing it (or it will crash) - dispatch_resume(saveTimer); - saveTimerSuspended = NO; + dispatch_resume(_saveTimer); + _saveTimerSuspended = NO; } + #if !OS_OBJECT_USE_OBJC - dispatch_release(saveTimer); + dispatch_release(_saveTimer); #endif - saveTimer = NULL; + _saveTimer = NULL; } } -- (void)updateAndResumeSaveTimer -{ - if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0)) - { - uint64_t interval = (uint64_t)(saveInterval * NSEC_PER_SEC); - dispatch_time_t startTime = dispatch_time(unsavedTime, interval); - - dispatch_source_set_timer(saveTimer, startTime, interval, 1.0); - - if (saveTimerSuspended) - { - dispatch_resume(saveTimer); - saveTimerSuspended = NO; +- (void)updateAndResumeSaveTimer { + if ((_saveTimer != NULL) && (_saveInterval > 0.0) && (_unsavedTime > 0.0)) { + uint64_t interval = (uint64_t)(_saveInterval * NSEC_PER_SEC); + dispatch_time_t startTime = dispatch_time(_unsavedTime, interval); + + dispatch_source_set_timer(_saveTimer, startTime, interval, 1.0); + + if (_saveTimerSuspended) { + dispatch_resume(_saveTimer); + _saveTimerSuspended = NO; } } } -- (void)createSuspendedSaveTimer -{ - if ((saveTimer == NULL) && (saveInterval > 0.0)) - { - saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); - - dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool { - - [self performSaveAndSuspendSaveTimer]; - - }}); - - saveTimerSuspended = YES; +- (void)createSuspendedSaveTimer { + if ((_saveTimer == NULL) && (_saveInterval > 0.0)) { + _saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, self.loggerQueue); + + dispatch_source_set_event_handler(_saveTimer, ^{ @autoreleasepool { + [self performSaveAndSuspendSaveTimer]; + } }); + + _saveTimerSuspended = YES; } } -- (void)destroyDeleteTimer -{ - if (deleteTimer) - { - dispatch_source_cancel(deleteTimer); +- (void)destroyDeleteTimer { + if (_deleteTimer) { + dispatch_source_cancel(_deleteTimer); #if !OS_OBJECT_USE_OBJC - dispatch_release(deleteTimer); + dispatch_release(_deleteTimer); #endif - deleteTimer = NULL; + _deleteTimer = NULL; } } -- (void)updateDeleteTimer -{ - if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) - { - uint64_t interval = (uint64_t)(deleteInterval * NSEC_PER_SEC); +- (void)updateDeleteTimer { + if ((_deleteTimer != NULL) && (_deleteInterval > 0.0) && (_maxAge > 0.0)) { + uint64_t interval = (uint64_t)(_deleteInterval * NSEC_PER_SEC); dispatch_time_t startTime; - - if (lastDeleteTime > 0) - startTime = dispatch_time(lastDeleteTime, interval); - else + + if (_lastDeleteTime > 0) { + startTime = dispatch_time(_lastDeleteTime, interval); + } else { startTime = dispatch_time(DISPATCH_TIME_NOW, interval); - - dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0); + } + + dispatch_source_set_timer(_deleteTimer, startTime, interval, 1.0); } } -- (void)createAndStartDeleteTimer -{ - if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) - { - deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); - - if (deleteTimer != NULL) { - dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool { - - [self performDelete]; +- (void)createAndStartDeleteTimer { + if ((_deleteTimer == NULL) && (_deleteInterval > 0.0) && (_maxAge > 0.0)) { + _deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, self.loggerQueue); - }}); + if (_deleteTimer != NULL) { + dispatch_source_set_event_handler(_deleteTimer, ^{ @autoreleasepool { + [self performDelete]; + } }); [self updateDeleteTimer]; - - if (deleteTimer != NULL) dispatch_resume(deleteTimer); + + if (_deleteTimer != NULL) { + dispatch_resume(_deleteTimer); + } } } } @@ -218,432 +197,387 @@ - (void)createAndStartDeleteTimer #pragma mark Configuration //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (NSUInteger)saveThreshold -{ +- (NSUInteger)saveThreshold { // The design of this method is taken from the DDAbstractLogger implementation. // For extensive documentation please refer to the DDAbstractLogger implementation. - + // Note: The internal implementation MUST access the colorsEnabled variable directly, // This method is designed explicitly for external access. // // Using "self." syntax to go through this method will cause immediate deadlock. // This is the intended result. Fix it by accessing the ivar directly. // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - + __block NSUInteger result; - + dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = saveThreshold; + dispatch_sync(self.loggerQueue, ^{ + result = _saveThreshold; }); }); - + return result; } -- (void)setSaveThreshold:(NSUInteger)threshold -{ - dispatch_block_t block = ^{ @autoreleasepool { - - if (saveThreshold != threshold) - { - saveThreshold = threshold; - - // Since the saveThreshold has changed, - // we check to see if the current unsavedCount has surpassed the new threshold. - // - // If it has, we immediately save the log. - - if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) - { - [self performSaveAndSuspendSaveTimer]; +- (void)setSaveThreshold:(NSUInteger)threshold { + dispatch_block_t block = ^{ + @autoreleasepool { + if (_saveThreshold != threshold) { + _saveThreshold = threshold; + + // Since the saveThreshold has changed, + // we check to see if the current unsavedCount has surpassed the new threshold. + // + // If it has, we immediately save the log. + + if ((_unsavedCount >= _saveThreshold) && (_saveThreshold > 0)) { + [self performSaveAndSuspendSaveTimer]; + } } } - }}; - + }; + // The design of the setter logic below is taken from the DDAbstractLogger implementation. // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { + + if ([self isOnInternalLoggerQueue]) { block(); - } - else - { + } else { dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - + dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); + dispatch_async(self.loggerQueue, block); }); } } -- (NSTimeInterval)saveInterval -{ +- (NSTimeInterval)saveInterval { // The design of this method is taken from the DDAbstractLogger implementation. // For extensive documentation please refer to the DDAbstractLogger implementation. - + // Note: The internal implementation MUST access the colorsEnabled variable directly, // This method is designed explicitly for external access. // // Using "self." syntax to go through this method will cause immediate deadlock. // This is the intended result. Fix it by accessing the ivar directly. // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - + __block NSTimeInterval result; - + dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = saveInterval; + dispatch_sync(self.loggerQueue, ^{ + result = _saveInterval; }); }); - + return result; } -- (void)setSaveInterval:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* saveInterval != interval */ islessgreater(saveInterval, interval)) - { - saveInterval = interval; - - // There are several cases we need to handle here. - // - // 1. If the saveInterval was previously enabled and it just got disabled, - // then we need to stop the saveTimer. (And we might as well release it.) - // - // 2. If the saveInterval was previously disabled and it just got enabled, - // then we need to setup the saveTimer. (Plus we might need to do an immediate save.) - // - // 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date. - // - // 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date. - // (Plus we might need to do an immediate save.) - - if (saveInterval > 0.0) - { - if (saveTimer == NULL) - { - // Handles #2 - // - // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self createSuspendedSaveTimer]; - [self updateAndResumeSaveTimer]; - } - else - { - // Handles #3 - // Handles #4 - // - // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self updateAndResumeSaveTimer]; +- (void)setSaveInterval:(NSTimeInterval)interval { + dispatch_block_t block = ^{ + @autoreleasepool { + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* saveInterval != interval */ islessgreater(_saveInterval, interval)) { + _saveInterval = interval; + + // There are several cases we need to handle here. + // + // 1. If the saveInterval was previously enabled and it just got disabled, + // then we need to stop the saveTimer. (And we might as well release it.) + // + // 2. If the saveInterval was previously disabled and it just got enabled, + // then we need to setup the saveTimer. (Plus we might need to do an immediate save.) + // + // 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date. + // + // 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date. + // (Plus we might need to do an immediate save.) + + if (_saveInterval > 0.0) { + if (_saveTimer == NULL) { + // Handles #2 + // + // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self createSuspendedSaveTimer]; + [self updateAndResumeSaveTimer]; + } else { + // Handles #3 + // Handles #4 + // + // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self updateAndResumeSaveTimer]; + } + } else if (_saveTimer) { + // Handles #1 + + [self destroySaveTimer]; } } - else if (saveTimer) - { - // Handles #1 - - [self destroySaveTimer]; - } } - }}; - + }; + // The design of the setter logic below is taken from the DDAbstractLogger implementation. // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { + + if ([self isOnInternalLoggerQueue]) { block(); - } - else - { + } else { dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - + dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); + dispatch_async(self.loggerQueue, block); }); } } -- (NSTimeInterval)maxAge -{ +- (NSTimeInterval)maxAge { // The design of this method is taken from the DDAbstractLogger implementation. // For extensive documentation please refer to the DDAbstractLogger implementation. - + // Note: The internal implementation MUST access the colorsEnabled variable directly, // This method is designed explicitly for external access. // // Using "self." syntax to go through this method will cause immediate deadlock. // This is the intended result. Fix it by accessing the ivar directly. // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - + __block NSTimeInterval result; - + dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = maxAge; + dispatch_sync(self.loggerQueue, ^{ + result = _maxAge; }); }); - + return result; } -- (void)setMaxAge:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* maxAge != interval */ islessgreater(maxAge, interval)) - { - NSTimeInterval oldMaxAge = maxAge; - NSTimeInterval newMaxAge = interval; - - maxAge = interval; - - // There are several cases we need to handle here. - // - // 1. If the maxAge was previously enabled and it just got disabled, - // then we need to stop the deleteTimer. (And we might as well release it.) - // - // 2. If the maxAge was previously disabled and it just got enabled, - // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) - // - // 3. If the maxAge was increased, - // then we don't need to do anything. - // - // 4. If the maxAge was decreased, - // then we should do an immediate delete. - - BOOL shouldDeleteNow = NO; - - if (oldMaxAge > 0.0) - { - if (newMaxAge <= 0.0) - { - // Handles #1 - - [self destroyDeleteTimer]; - } - else if (oldMaxAge > newMaxAge) - { - // Handles #4 +- (void)setMaxAge:(NSTimeInterval)interval { + dispatch_block_t block = ^{ + @autoreleasepool { + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* maxAge != interval */ islessgreater(_maxAge, interval)) { + NSTimeInterval oldMaxAge = _maxAge; + NSTimeInterval newMaxAge = interval; + + _maxAge = interval; + + // There are several cases we need to handle here. + // + // 1. If the maxAge was previously enabled and it just got disabled, + // then we need to stop the deleteTimer. (And we might as well release it.) + // + // 2. If the maxAge was previously disabled and it just got enabled, + // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) + // + // 3. If the maxAge was increased, + // then we don't need to do anything. + // + // 4. If the maxAge was decreased, + // then we should do an immediate delete. + + BOOL shouldDeleteNow = NO; + + if (oldMaxAge > 0.0) { + if (newMaxAge <= 0.0) { + // Handles #1 + + [self destroyDeleteTimer]; + } else if (oldMaxAge > newMaxAge) { + // Handles #4 + shouldDeleteNow = YES; + } + } else if (newMaxAge > 0.0) { + // Handles #2 shouldDeleteNow = YES; } - } - else if (newMaxAge > 0.0) - { - // Handles #2 - shouldDeleteNow = YES; - } - - if (shouldDeleteNow) - { - [self performDelete]; - - if (deleteTimer) - [self updateDeleteTimer]; - else - [self createAndStartDeleteTimer]; + + if (shouldDeleteNow) { + [self performDelete]; + + if (_deleteTimer) { + [self updateDeleteTimer]; + } else { + [self createAndStartDeleteTimer]; + } + } } } - }}; - + }; + // The design of the setter logic below is taken from the DDAbstractLogger implementation. // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { + + if ([self isOnInternalLoggerQueue]) { block(); - } - else - { + } else { dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - + dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); + dispatch_async(self.loggerQueue, block); }); } } -- (NSTimeInterval)deleteInterval -{ +- (NSTimeInterval)deleteInterval { // The design of this method is taken from the DDAbstractLogger implementation. // For extensive documentation please refer to the DDAbstractLogger implementation. - + // Note: The internal implementation MUST access the colorsEnabled variable directly, // This method is designed explicitly for external access. // // Using "self." syntax to go through this method will cause immediate deadlock. // This is the intended result. Fix it by accessing the ivar directly. // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - + __block NSTimeInterval result; - + dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = deleteInterval; + dispatch_sync(self.loggerQueue, ^{ + result = _deleteInterval; }); }); - + return result; } -- (void)setDeleteInterval:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* deleteInterval != interval */ islessgreater(deleteInterval, interval)) - { - deleteInterval = interval; - - // There are several cases we need to handle here. - // - // 1. If the deleteInterval was previously enabled and it just got disabled, - // then we need to stop the deleteTimer. (And we might as well release it.) - // - // 2. If the deleteInterval was previously disabled and it just got enabled, - // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) - // - // 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date. - // - // 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date. - // (Plus we might need to do an immediate delete.) - - if (deleteInterval > 0.0) - { - if (deleteTimer == NULL) - { - // Handles #2 - // - // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, - // if a delete is needed the timer will fire immediately. - - [self createAndStartDeleteTimer]; - } - else - { - // Handles #3 - // Handles #4 - // - // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self updateDeleteTimer]; +- (void)setDeleteInterval:(NSTimeInterval)interval { + dispatch_block_t block = ^{ + @autoreleasepool { + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* deleteInterval != interval */ islessgreater(_deleteInterval, interval)) { + _deleteInterval = interval; + + // There are several cases we need to handle here. + // + // 1. If the deleteInterval was previously enabled and it just got disabled, + // then we need to stop the deleteTimer. (And we might as well release it.) + // + // 2. If the deleteInterval was previously disabled and it just got enabled, + // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) + // + // 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date. + // + // 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date. + // (Plus we might need to do an immediate delete.) + + if (_deleteInterval > 0.0) { + if (_deleteTimer == NULL) { + // Handles #2 + // + // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, + // if a delete is needed the timer will fire immediately. + + [self createAndStartDeleteTimer]; + } else { + // Handles #3 + // Handles #4 + // + // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self updateDeleteTimer]; + } + } else if (_deleteTimer) { + // Handles #1 + + [self destroyDeleteTimer]; } } - else if (deleteTimer) - { - // Handles #1 - - [self destroyDeleteTimer]; - } } - }}; - + }; + // The design of the setter logic below is taken from the DDAbstractLogger implementation. // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { + + if ([self isOnInternalLoggerQueue]) { block(); - } - else - { + } else { dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - + dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); + dispatch_async(self.loggerQueue, block); }); } } -- (BOOL)deleteOnEverySave -{ +- (BOOL)deleteOnEverySave { // The design of this method is taken from the DDAbstractLogger implementation. // For extensive documentation please refer to the DDAbstractLogger implementation. - + // Note: The internal implementation MUST access the colorsEnabled variable directly, // This method is designed explicitly for external access. // // Using "self." syntax to go through this method will cause immediate deadlock. // This is the intended result. Fix it by accessing the ivar directly. // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - + __block BOOL result; - + dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = deleteOnEverySave; + dispatch_sync(self.loggerQueue, ^{ + result = _deleteOnEverySave; }); }); - + return result; } -- (void)setDeleteOnEverySave:(BOOL)flag -{ +- (void)setDeleteOnEverySave:(BOOL)flag { dispatch_block_t block = ^{ - - deleteOnEverySave = flag; + _deleteOnEverySave = flag; }; - + // The design of the setter logic below is taken from the DDAbstractLogger implementation. // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { + + if ([self isOnInternalLoggerQueue]) { block(); - } - else - { + } else { dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - + dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); + dispatch_async(self.loggerQueue, block); }); } } @@ -652,80 +586,74 @@ - (void)setDeleteOnEverySave:(BOOL)flag #pragma mark Public API //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (void)savePendingLogEntries -{ - dispatch_block_t block = ^{ @autoreleasepool { - - [self performSaveAndSuspendSaveTimer]; - }}; - - if ([self isOnInternalLoggerQueue]) +- (void)savePendingLogEntries { + dispatch_block_t block = ^{ + @autoreleasepool { + [self performSaveAndSuspendSaveTimer]; + } + }; + + if ([self isOnInternalLoggerQueue]) { block(); - else - dispatch_async(loggerQueue, block); + } else { + dispatch_async(self.loggerQueue, block); + } } -- (void)deleteOldLogEntries -{ - dispatch_block_t block = ^{ @autoreleasepool { - - [self performDelete]; - }}; - - if ([self isOnInternalLoggerQueue]) +- (void)deleteOldLogEntries { + dispatch_block_t block = ^{ + @autoreleasepool { + [self performDelete]; + } + }; + + if ([self isOnInternalLoggerQueue]) { block(); - else - dispatch_async(loggerQueue, block); + } else { + dispatch_async(self.loggerQueue, block); + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #pragma mark DDLogger //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -- (void)didAddLogger -{ +- (void)didAddLogger { // If you override me be sure to invoke [super didAddLogger]; - + [self createSuspendedSaveTimer]; - + [self createAndStartDeleteTimer]; } -- (void)willRemoveLogger -{ +- (void)willRemoveLogger { // If you override me be sure to invoke [super willRemoveLogger]; - + [self performSaveAndSuspendSaveTimer]; - + [self destroySaveTimer]; [self destroyDeleteTimer]; } -- (void)logMessage:(DDLogMessage *)logMessage -{ - if ([self db_log:logMessage]) - { - BOOL firstUnsavedEntry = (++unsavedCount == 1); - - if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) - { +- (void)logMessage:(DDLogMessage *)logMessage { + if ([self db_log:logMessage]) { + BOOL firstUnsavedEntry = (++_unsavedCount == 1); + + if ((_unsavedCount >= _saveThreshold) && (_saveThreshold > 0)) { [self performSaveAndSuspendSaveTimer]; - } - else if (firstUnsavedEntry) - { - unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0); + } else if (firstUnsavedEntry) { + _unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0); [self updateAndResumeSaveTimer]; } } } -- (void)flush -{ +- (void)flush { // This method is invoked by DDLog's flushLog method. - // + // // It is called automatically when the application quits, // or if the developer invokes DDLog's flushLog method prior to crashing or something. - + [self performSaveAndSuspendSaveTimer]; } diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDAssertMacros.h b/Demo/Pods/CocoaLumberjack/Classes/DDAssertMacros.h index 0d142a4..b072d3d 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDAssertMacros.h +++ b/Demo/Pods/CocoaLumberjack/Classes/DDAssertMacros.h @@ -1,19 +1,26 @@ +// Software License Agreement (BSD License) // -// DDAssertMacros.h -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // -// Created by Ernesto Rivera on 2014/07/07. +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: // - -#import "DDLogMacros.h" +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. /** * NSAsset replacement that will output a log message even when assertions are disabled. **/ - -#define DDAssert(condition, frmt, ...) if (!(condition)) { \ - NSString * description = [NSString stringWithFormat:frmt, ##__VA_ARGS__]; \ - DDLogError(@"%@", description); \ - NSAssert(NO, description); } +#define DDAssert(condition, frmt, ...) \ + if (!(condition)) { \ + NSString *description = [NSString stringWithFormat:frmt, ## __VA_ARGS__]; \ + DDLogError(@"%@", description); \ + NSAssert(NO, description); \ + } #define DDAssertCondition(condition) DDAssert(condition, @"Condition not satisfied: %s", #condition) diff --git a/Demo/Pods/CocoaLumberjack/Classes/DDFileLogger.h b/Demo/Pods/CocoaLumberjack/Classes/DDFileLogger.h index c51362d..e6d11a0 100644 --- a/Demo/Pods/CocoaLumberjack/Classes/DDFileLogger.h +++ b/Demo/Pods/CocoaLumberjack/Classes/DDFileLogger.h @@ -1,39 +1,40 @@ +// Software License Agreement (BSD License) // -// DDLogFileManager.h -// CocoaLumberjack +// Copyright (c) 2010-2014, Deusty, LLC +// All rights reserved. // +// Redistribution and use of this software in source and binary forms, +// with or without modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Neither the name of Deusty nor the names of its contributors may be used +// to endorse or promote products derived from this software without specific +// prior written permission of Deusty, LLC. #import "DDLog.h" @class DDLogFileInfo; /** - * Welcome to CocoaLumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * * This class provides a logger to write log statements to a file. -**/ + **/ // Default configuration and safety/sanity values. -// -// maximumFileSize -> DEFAULT_LOG_MAX_FILE_SIZE -// rollingFrequency -> DEFAULT_LOG_ROLLING_FREQUENCY -// maximumNumberOfLogFiles -> DEFAULT_LOG_MAX_NUM_LOG_FILES -// logFilesDiskQuota -> DEFAULT_LOG_FILES_DISK_QUOTA -// +// +// maximumFileSize -> kDDDefaultLogMaxFileSize +// rollingFrequency -> kDDDefaultLogRollingFrequency +// maximumNumberOfLogFiles -> kDDDefaultLogMaxNumLogFiles +// logFilesDiskQuota -> kDDDefaultLogFilesDiskQuota +// // You should carefully consider the proper configuration values for your application. -#define DEFAULT_LOG_MAX_FILE_SIZE (1024 * 1024) // 1 MB -#define DEFAULT_LOG_ROLLING_FREQUENCY (60 * 60 * 24) // 24 Hours -#define DEFAULT_LOG_MAX_NUM_LOG_FILES (5) // 5 Files -#define DEFAULT_LOG_FILES_DISK_QUOTA (20 * 1024 * 1024) // 20 MB +extern unsigned long long const kDDDefaultLogMaxFileSize; +extern NSTimeInterval const kDDDefaultLogRollingFrequency; +extern NSUInteger const kDDDefaultLogMaxNumLogFiles; +extern unsigned long long const kDDDefaultLogFilesDiskQuota; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -41,22 +42,22 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // The LogFileManager protocol is designed to allow you to control all aspects of your log files. -// +// // The primary purpose of this is to allow you to do something with the log files after they have been rolled. // Perhaps you want to compress them to save disk space. // Perhaps you want to upload them to an FTP server. // Perhaps you want to run some analytics on the file. -// +// // A default LogFileManager is, of course, provided. // The default LogFileManager simply deletes old log files according to the maximumNumberOfLogFiles property. -// +// // This protocol provides various methods to fetch the list of log files. -// +// // There are two variants: sorted and unsorted. // If sorting is not necessary, the unsorted variant is obviously faster. // The sorted variant will return an array sorted by when the log files were created, // with the most recently created log file at index 0, and the oldest log file at the end of the array. -// +// // You can fetch only the log file paths (full path including name), log file names (name only), // or an array of DDLogFileInfo objects. // The DDLogFileInfo class is documented below, and provides a handy wrapper that @@ -72,9 +73,9 @@ * For example, if this property is set to 3, * then the LogFileManager will only keep 3 archived log files (plus the current active log file) on disk. * Once the active log file is rolled/archived, then the oldest of the existing 3 rolled/archived log files is deleted. - * + * * You may optionally disable this option by setting it to zero. -**/ + **/ @property (readwrite, assign, atomic) NSUInteger maximumNumberOfLogFiles; /** @@ -82,7 +83,7 @@ * be deleted. * * You may optionally disable this option by setting it to zero. -**/ + **/ @property (readwrite, assign, atomic) unsigned long long logFilesDiskQuota; // Public methods @@ -116,29 +117,21 @@ /** * Default log file manager. - * + * * All log files are placed inside the logsDirectory. * If a specific logsDirectory isn't specified, the default directory is used. * On Mac, this is in ~/Library/Logs/. * On iPhone, this is in ~/Library/Caches/Logs. - * + * * Log files are named "