diff --git a/.travis.yml b/.travis.yml index b8312ff..43ffc82 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ -osx_image: xcode7.1 +osx_image: xcode7.3 language: objective-c -xcode_workspace: WordPress-iOS-Shared.xcworkspace -xcode_scheme: WordPress-iOS-Shared -xcode_sdk: iphonesimulator +script: +- set -o pipefail && xcodebuild -workspace WordPress-iOS-Shared.xcworkspace -scheme WordPressShared -sdk iphonesimulator build test ONLY_ACTIVE_ARCH=NO | xcpretty -c diff --git a/Podfile b/Podfile index ec7bc7b..30d239b 100644 --- a/Podfile +++ b/Podfile @@ -1,6 +1,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '7.0' +use_frameworks! +platform :ios, '8.0' pod 'CocoaLumberjack', '~> 2.2.0' diff --git a/WordPress-iOS-Shared-Example/Podfile b/WordPress-iOS-Shared-Example/Podfile index 3d9952e..8f290d4 100644 --- a/WordPress-iOS-Shared-Example/Podfile +++ b/WordPress-iOS-Shared-Example/Podfile @@ -1,4 +1,5 @@ -platform :ios, '7.0' +platform :ios, '8.0' +use_frameworks! target "WordPress-iOS-Shared-Example" do pod "WordPress-iOS-Shared", :path => "../" diff --git a/WordPress-iOS-Shared-Example/Podfile.lock b/WordPress-iOS-Shared-Example/Podfile.lock index e57f4e5..f4e316f 100644 --- a/WordPress-iOS-Shared-Example/Podfile.lock +++ b/WordPress-iOS-Shared-Example/Podfile.lock @@ -15,10 +15,10 @@ DEPENDENCIES: EXTERNAL SOURCES: WordPress-iOS-Shared: - :path: ../ + :path: "../" SPEC CHECKSUMS: CocoaLumberjack: 17fe8581f84914d5d7e6360f7c70022b173c3ae0 - WordPress-iOS-Shared: e9e81a6a3cc3b45de93c8a565422c11395813c49 + WordPress-iOS-Shared: 99fd974e8831cc02edb48429fa689155c85de79f COCOAPODS: 0.39.0 diff --git a/WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example.xcodeproj/project.pbxproj b/WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example.xcodeproj/project.pbxproj index cc09d2c..f87fbf9 100644 --- a/WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0E3752D7BFA5FF869DAF7D6B /* Pods_WordPress_iOS_Shared_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 849A3B7F7FFC8895BF865DBE /* Pods_WordPress_iOS_Shared_Example.framework */; }; 598E77111A8E4F2C0020DC05 /* DeviceTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 598E77101A8E4F2C0020DC05 /* DeviceTableViewController.m */; }; 598E77141A8E535F0020DC05 /* DeviceTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 598E77131A8E535F0020DC05 /* DeviceTest.m */; }; 598E77171A8E53EE0020DC05 /* DeviceTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 598E77161A8E53EE0020DC05 /* DeviceTableViewCell.m */; }; @@ -21,19 +22,18 @@ 85A420C51977993100F0F603 /* FontTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 85A420C41977993100F0F603 /* FontTableViewCell.m */; }; 85D9A73D1977891600480221 /* FontsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 85D9A73C1977891600480221 /* FontsTableViewController.m */; }; 85D9A7401977891F00480221 /* ColorsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 85D9A73F1977891F00480221 /* ColorsTableViewController.m */; }; - EC81CE668DE94D458BA9910B /* libPods-WordPress-iOS-Shared-Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 37B298F8355D4CE69AA04521 /* libPods-WordPress-iOS-Shared-Example.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 2AE838413EB18EF1792640E7 /* Pods-WordPress-iOS-Shared-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-Shared-Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-Shared-Example/Pods-WordPress-iOS-Shared-Example.release.xcconfig"; sourceTree = ""; }; 2FEB7BA7F0B0C7DC85D5391A /* Pods-WordPress-iOS-Shared-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-Shared-Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-Shared-Example/Pods-WordPress-iOS-Shared-Example.debug.xcconfig"; sourceTree = ""; }; - 37B298F8355D4CE69AA04521 /* libPods-WordPress-iOS-Shared-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WordPress-iOS-Shared-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 598E770F1A8E4F2C0020DC05 /* DeviceTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceTableViewController.h; sourceTree = ""; }; 598E77101A8E4F2C0020DC05 /* DeviceTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeviceTableViewController.m; sourceTree = ""; }; 598E77121A8E535F0020DC05 /* DeviceTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceTest.h; sourceTree = ""; }; 598E77131A8E535F0020DC05 /* DeviceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeviceTest.m; sourceTree = ""; }; 598E77151A8E53EE0020DC05 /* DeviceTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceTableViewCell.h; sourceTree = ""; }; 598E77161A8E53EE0020DC05 /* DeviceTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeviceTableViewCell.m; sourceTree = ""; }; + 849A3B7F7FFC8895BF865DBE /* Pods_WordPress_iOS_Shared_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPress_iOS_Shared_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 852FBB45197755CC002C5249 /* WordPress-iOS-Shared-Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "WordPress-iOS-Shared-Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 852FBB48197755CC002C5249 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 852FBB4A197755CC002C5249 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -63,7 +63,7 @@ 852FBB4B197755CC002C5249 /* CoreGraphics.framework in Frameworks */, 852FBB4D197755CC002C5249 /* UIKit.framework in Frameworks */, 852FBB49197755CC002C5249 /* Foundation.framework in Frameworks */, - EC81CE668DE94D458BA9910B /* libPods-WordPress-iOS-Shared-Example.a in Frameworks */, + 0E3752D7BFA5FF869DAF7D6B /* Pods_WordPress_iOS_Shared_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,7 +95,7 @@ 852FBB4A197755CC002C5249 /* CoreGraphics.framework */, 852FBB4C197755CC002C5249 /* UIKit.framework */, 852FBB6A197755CC002C5249 /* XCTest.framework */, - 37B298F8355D4CE69AA04521 /* libPods-WordPress-iOS-Shared-Example.a */, + 849A3B7F7FFC8895BF865DBE /* Pods_WordPress_iOS_Shared_Example.framework */, ); name = Frameworks; sourceTree = ""; @@ -374,6 +374,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example-Prefix.pch"; INFOPLIST_FILE = "WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -388,6 +389,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example-Prefix.pch"; INFOPLIST_FILE = "WordPress-iOS-Shared-Example/WordPress-iOS-Shared-Example-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; diff --git a/WordPress-iOS-Shared.podspec b/WordPress-iOS-Shared.podspec index 116dda2..420f5ac 100644 --- a/WordPress-iOS-Shared.podspec +++ b/WordPress-iOS-Shared.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WordPress-iOS-Shared" - s.version = "0.5.5" + s.version = "0.5.6" s.summary = "Shared components used in building the WordPress iOS apps and other library components." s.description = <<-DESC @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.license = "GPLv2" s.author = { "Automattic" => "mobile@automattic.com", "Aaron Douglas" => "astralbodies@gmail.com", "Sergio Estevao" => "sergioestevao@gmail.com" } s.social_media_url = "http://twitter.com/WordPressiOS" - s.platform = :ios, "7.0" + s.platform = :ios, "8.0" s.source = { :git => "https://github.com/wordpress-mobile/WordPress-iOS-Shared.git", :tag => s.version.to_s } s.source_files = [ 'WordPress-iOS-Shared/Core', 'WordPress-iOS-Shared/Private' ] s.public_header_files = 'WordPress-iOS-Shared/Core/*.h' diff --git a/WordPress-iOS-Shared.xcodeproj/project.pbxproj b/WordPress-iOS-Shared.xcodeproj/project.pbxproj index bb210a6..d531e4d 100644 --- a/WordPress-iOS-Shared.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared.xcodeproj/project.pbxproj @@ -7,8 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 5491CC08CC7A4237B0CD8FA9 /* libPods-WordPress-iOS-SharedTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A7CDA9068CC847B2AD67DE41 /* libPods-WordPress-iOS-SharedTests.a */; }; 598E770E1A8E3D1A0020DC05 /* WPDeviceIdentification.m in Sources */ = {isa = PBXBuildFile; fileRef = 598E770D1A8E3D1A0020DC05 /* WPDeviceIdentification.m */; }; + 6DD592FD91F85C0A450A7718 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FF17CFFAE3A40C50CEE2D2F1 /* Pods.framework */; }; 744DA846194F3A76002CD6E9 /* UIImage+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 744DA845194F3A76002CD6E9 /* UIImage+Util.m */; }; 7462F3401961FAAB00CC8EED /* WPFontManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 74F535F71961F7E6002D4320 /* WPFontManager.m */; }; 9309B52D192BEECC00B69F69 /* WordPressShared.m in Sources */ = {isa = PBXBuildFile; fileRef = 9309B52C192BEECC00B69F69 /* WordPressShared.m */; }; @@ -16,7 +16,6 @@ 931A0FFC192A9CDD00D3CC11 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FFB192A9CDD00D3CC11 /* XCTest.framework */; }; 931A0FFD192A9CDD00D3CC11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FED192A9CDD00D3CC11 /* Foundation.framework */; }; 931A0FFF192A9CDD00D3CC11 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FFE192A9CDD00D3CC11 /* UIKit.framework */; }; - 931A1002192A9CDD00D3CC11 /* libWordPress-iOS-Shared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FEA192A9CDD00D3CC11 /* libWordPress-iOS-Shared.a */; }; 931A1008192A9CDD00D3CC11 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 931A1006192A9CDD00D3CC11 /* InfoPlist.strings */; }; 931A1016192A9D5200D3CC11 /* NSString+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1015192A9D5200D3CC11 /* NSString+Util.m */; }; 931A1019192A9D6E00D3CC11 /* NSString+XMLExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1018192A9D6E00D3CC11 /* NSString+XMLExtensions.m */; }; @@ -29,18 +28,48 @@ 931A1035192AA03600D3CC11 /* UIColor+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1034192AA03600D3CC11 /* UIColor+Helpers.m */; }; 931A1038192AA34300D3CC11 /* WPImageSourceTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1037192AA34300D3CC11 /* WPImageSourceTest.m */; }; 931A103E192AA3DB00D3CC11 /* test-image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 931A103D192AA3DB00D3CC11 /* test-image.jpg */; }; - F45AF04D6E344F4CBD2A4B65 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8B405468864FD7A0D16B74 /* libPods.a */; }; + D311ED4811F83546564A2672 /* Pods_WordPress_iOS_SharedTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EF5AAE1978DEA22517D6992 /* Pods_WordPress_iOS_SharedTests.framework */; }; + E1016BFC1CBF760F00CE57D8 /* WordPressShared.h in Headers */ = {isa = PBXBuildFile; fileRef = E1016BFB1CBF760F00CE57D8 /* WordPressShared.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C1D1CBF763D00CE57D8 /* UIColor+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1034192AA03600D3CC11 /* UIColor+Helpers.m */; }; + E1016C1E1CBF763D00CE57D8 /* WPNoResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A101F192A9DD500D3CC11 /* WPNoResultsView.m */; }; + E1016C1F1CBF763D00CE57D8 /* WPNUXUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1025192A9E0B00D3CC11 /* WPNUXUtility.m */; }; + E1016C201CBF763D00CE57D8 /* WPStyleGuide.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1022192A9DFC00D3CC11 /* WPStyleGuide.m */; }; + E1016C211CBF763D00CE57D8 /* WPTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1028192A9E2400D3CC11 /* WPTableViewCell.m */; }; + E1016C221CBF763D00CE57D8 /* WPTableViewSectionHeaderFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A102B192A9E3200D3CC11 /* WPTableViewSectionHeaderFooterView.m */; }; + E1016C231CBF763D00CE57D8 /* WPTextFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */; }; + E1016C241CBF764100CE57D8 /* UIColor+Helpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1033192AA03600D3CC11 /* UIColor+Helpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C251CBF764100CE57D8 /* WPNoResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A101E192A9DD500D3CC11 /* WPNoResultsView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C261CBF764100CE57D8 /* WPNUXUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1024192A9E0B00D3CC11 /* WPNUXUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C271CBF764100CE57D8 /* WPStyleGuide.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1021192A9DFC00D3CC11 /* WPStyleGuide.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C281CBF764100CE57D8 /* WPTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1027192A9E2400D3CC11 /* WPTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C291CBF764100CE57D8 /* WPTableViewSectionHeaderFooterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A102A192A9E3200D3CC11 /* WPTableViewSectionHeaderFooterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C2A1CBF764100CE57D8 /* WPTextFieldTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1030192A9F3500D3CC11 /* WPTextFieldTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C2B1CBF764600CE57D8 /* UIImage+Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 744DA844194F3A76002CD6E9 /* UIImage+Util.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C2C1CBF764600CE57D8 /* UIImage+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 744DA845194F3A76002CD6E9 /* UIImage+Util.m */; }; + E1016C2D1CBF764600CE57D8 /* WPImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A101A192A9DA500D3CC11 /* WPImageSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C2E1CBF764600CE57D8 /* WPImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A101B192A9DA500D3CC11 /* WPImageSource.m */; }; + E1016C2F1CBF764600CE57D8 /* NSString+Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1014192A9D5200D3CC11 /* NSString+Util.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C301CBF764600CE57D8 /* NSString+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1015192A9D5200D3CC11 /* NSString+Util.m */; }; + E1016C311CBF764600CE57D8 /* NSString+XMLExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 931A1017192A9D6E00D3CC11 /* NSString+XMLExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C321CBF764600CE57D8 /* NSString+XMLExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1018192A9D6E00D3CC11 /* NSString+XMLExtensions.m */; }; + E1016C331CBF764600CE57D8 /* WPDeviceIdentification.h in Headers */ = {isa = PBXBuildFile; fileRef = 598E770C1A8E3D1A0020DC05 /* WPDeviceIdentification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C341CBF764600CE57D8 /* WPDeviceIdentification.m in Sources */ = {isa = PBXBuildFile; fileRef = 598E770D1A8E3D1A0020DC05 /* WPDeviceIdentification.m */; }; + E1016C351CBF764600CE57D8 /* WPFontManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 74F535F61961F7E6002D4320 /* WPFontManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1016C361CBF764600CE57D8 /* WPFontManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 74F535F71961F7E6002D4320 /* WPFontManager.m */; }; + E1016C381CBF794F00CE57D8 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1016C371CBF794F00CE57D8 /* Pods.framework */; }; + E1016C391CBF7C5A00CE57D8 /* WordPressShared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1016BF91CBF760F00CE57D8 /* WordPressShared.framework */; }; + E1016C3E1CBF7E5800CE57D8 /* UIColorHelpersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1016C3D1CBF7E5800CE57D8 /* UIColorHelpersTests.swift */; }; FF8DDCE11B5E91050098826F /* WPTextFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */; }; FFBC2B371CBBE10300B0379E /* anim-reader.gif in Resources */ = {isa = PBXBuildFile; fileRef = FFBC2B361CBBE10300B0379E /* anim-reader.gif */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 931A1000192A9CDD00D3CC11 /* PBXContainerItemProxy */ = { + E1016C3A1CBF7C6000CE57D8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 931A0FE2192A9CDD00D3CC11 /* Project object */; proxyType = 1; - remoteGlobalIDString = 931A0FE9192A9CDD00D3CC11; - remoteInfo = "WordPress-iOS-Shared"; + remoteGlobalIDString = E1016BF81CBF760F00CE57D8; + remoteInfo = WordPressShared; }; /* End PBXContainerItemProxy section */ @@ -58,6 +87,7 @@ /* Begin PBXFileReference section */ 1CCBEF3A622A4635247597B3 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + 2EF5AAE1978DEA22517D6992 /* Pods_WordPress_iOS_SharedTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPress_iOS_SharedTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 598E770C1A8E3D1A0020DC05 /* WPDeviceIdentification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WPDeviceIdentification.h; path = Core/WPDeviceIdentification.h; sourceTree = ""; }; 598E770D1A8E3D1A0020DC05 /* WPDeviceIdentification.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WPDeviceIdentification.m; path = Core/WPDeviceIdentification.m; sourceTree = ""; }; 744DA844194F3A76002CD6E9 /* UIImage+Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImage+Util.h"; path = "Core/UIImage+Util.h"; sourceTree = ""; }; @@ -97,13 +127,18 @@ 931A1037192AA34300D3CC11 /* WPImageSourceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPImageSourceTest.m; sourceTree = ""; }; 931A103D192AA3DB00D3CC11 /* test-image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "test-image.jpg"; sourceTree = ""; }; 98398B801DD76BC0326A4729 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - A7CDA9068CC847B2AD67DE41 /* libPods-WordPress-iOS-SharedTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WordPress-iOS-SharedTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - AB8B405468864FD7A0D16B74 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E1016BF91CBF760F00CE57D8 /* WordPressShared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WordPressShared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E1016BFB1CBF760F00CE57D8 /* WordPressShared.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WordPressShared.h; sourceTree = ""; }; + E1016BFD1CBF760F00CE57D8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E1016C371CBF794F00CE57D8 /* Pods.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Pods.framework; path = "../../../Library/Developer/Xcode/DerivedData/WordPress-iOS-Shared-hfumuyfnkuhovufljfrgpelsvapk/Build/Products/Debug-iphonesimulator/Pods.framework"; sourceTree = ""; }; + E1016C3C1CBF7E5700CE57D8 /* WordPress-iOS-SharedTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPress-iOS-SharedTests-Bridging-Header.h"; sourceTree = ""; }; + E1016C3D1CBF7E5800CE57D8 /* UIColorHelpersTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorHelpersTests.swift; sourceTree = ""; }; E95607083C359C14B48BA503 /* Pods-WordPress-iOS-SharedTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-SharedTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-SharedTests/Pods-WordPress-iOS-SharedTests.release.xcconfig"; sourceTree = ""; }; FF14587C1CBE6D37004A5A0B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; FF14587D1CBE6D37004A5A0B /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = ""; }; FF14587E1CBE6D37004A5A0B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; FF1458801CBE6D59004A5A0B /* WordPress-iOS-Shared.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "WordPress-iOS-Shared.podspec"; sourceTree = ""; }; + FF17CFFAE3A40C50CEE2D2F1 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WPTextFieldTableViewCell.m; path = Core/WPTextFieldTableViewCell.m; sourceTree = ""; }; FFBC2B361CBBE10300B0379E /* anim-reader.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "anim-reader.gif"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -114,7 +149,7 @@ buildActionMask = 2147483647; files = ( 931A0FEE192A9CDD00D3CC11 /* Foundation.framework in Frameworks */, - F45AF04D6E344F4CBD2A4B65 /* libPods.a in Frameworks */, + 6DD592FD91F85C0A450A7718 /* Pods.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -122,11 +157,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 931A1002192A9CDD00D3CC11 /* libWordPress-iOS-Shared.a in Frameworks */, + E1016C391CBF7C5A00CE57D8 /* WordPressShared.framework in Frameworks */, 931A0FFC192A9CDD00D3CC11 /* XCTest.framework in Frameworks */, 931A0FFF192A9CDD00D3CC11 /* UIKit.framework in Frameworks */, 931A0FFD192A9CDD00D3CC11 /* Foundation.framework in Frameworks */, - 5491CC08CC7A4237B0CD8FA9 /* libPods-WordPress-iOS-SharedTests.a in Frameworks */, + D311ED4811F83546564A2672 /* Pods_WordPress_iOS_SharedTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1016BF51CBF760F00CE57D8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E1016C381CBF794F00CE57D8 /* Pods.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -139,6 +182,7 @@ FF14587B1CBE6D24004A5A0B /* Podspec Metadata */, 931A0FEF192A9CDD00D3CC11 /* WordPress-iOS-Shared */, 931A1003192A9CDD00D3CC11 /* WordPress-iOS-SharedTests */, + E1016BFA1CBF760F00CE57D8 /* WordPressShared */, 931A0FEC192A9CDD00D3CC11 /* Frameworks */, 931A0FEB192A9CDD00D3CC11 /* Products */, E17299F8EC7CFF36CD4A166A /* Pods */, @@ -150,6 +194,7 @@ children = ( 931A0FEA192A9CDD00D3CC11 /* libWordPress-iOS-Shared.a */, 931A0FFA192A9CDD00D3CC11 /* WordPress-iOS-SharedTests.xctest */, + E1016BF91CBF760F00CE57D8 /* WordPressShared.framework */, ); name = Products; sourceTree = ""; @@ -157,11 +202,12 @@ 931A0FEC192A9CDD00D3CC11 /* Frameworks */ = { isa = PBXGroup; children = ( + E1016C371CBF794F00CE57D8 /* Pods.framework */, 931A0FED192A9CDD00D3CC11 /* Foundation.framework */, 931A0FFB192A9CDD00D3CC11 /* XCTest.framework */, 931A0FFE192A9CDD00D3CC11 /* UIKit.framework */, - AB8B405468864FD7A0D16B74 /* libPods.a */, - A7CDA9068CC847B2AD67DE41 /* libPods-WordPress-iOS-SharedTests.a */, + FF17CFFAE3A40C50CEE2D2F1 /* Pods.framework */, + 2EF5AAE1978DEA22517D6992 /* Pods_WordPress_iOS_SharedTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -250,6 +296,8 @@ isa = PBXGroup; children = ( 931A1037192AA34300D3CC11 /* WPImageSourceTest.m */, + E1016C3D1CBF7E5800CE57D8 /* UIColorHelpersTests.swift */, + E1016C3C1CBF7E5700CE57D8 /* WordPress-iOS-SharedTests-Bridging-Header.h */, ); name = Tests; sourceTree = ""; @@ -263,6 +311,15 @@ name = "Test Data"; sourceTree = ""; }; + E1016BFA1CBF760F00CE57D8 /* WordPressShared */ = { + isa = PBXGroup; + children = ( + E1016BFB1CBF760F00CE57D8 /* WordPressShared.h */, + E1016BFD1CBF760F00CE57D8 /* Info.plist */, + ); + path = WordPressShared; + sourceTree = ""; + }; E154809F1A43035700FA4EDD /* Core */ = { isa = PBXGroup; children = ( @@ -296,6 +353,30 @@ }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + E1016BF61CBF760F00CE57D8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E1016C241CBF764100CE57D8 /* UIColor+Helpers.h in Headers */, + E1016C271CBF764100CE57D8 /* WPStyleGuide.h in Headers */, + E1016C2D1CBF764600CE57D8 /* WPImageSource.h in Headers */, + E1016C2F1CBF764600CE57D8 /* NSString+Util.h in Headers */, + E1016C251CBF764100CE57D8 /* WPNoResultsView.h in Headers */, + E1016C2A1CBF764100CE57D8 /* WPTextFieldTableViewCell.h in Headers */, + E1016C351CBF764600CE57D8 /* WPFontManager.h in Headers */, + E1016C311CBF764600CE57D8 /* NSString+XMLExtensions.h in Headers */, + E1016C331CBF764600CE57D8 /* WPDeviceIdentification.h in Headers */, + E1016C2B1CBF764600CE57D8 /* UIImage+Util.h in Headers */, + E1016C281CBF764100CE57D8 /* WPTableViewCell.h in Headers */, + E1016C261CBF764100CE57D8 /* WPNUXUtility.h in Headers */, + E1016C291CBF764100CE57D8 /* WPTableViewSectionHeaderFooterView.h in Headers */, + E1016BFC1CBF760F00CE57D8 /* WordPressShared.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ 931A0FE9192A9CDD00D3CC11 /* WordPress-iOS-Shared */ = { isa = PBXNativeTarget; @@ -330,21 +411,45 @@ buildRules = ( ); dependencies = ( - 931A1001192A9CDD00D3CC11 /* PBXTargetDependency */, + E1016C3B1CBF7C6000CE57D8 /* PBXTargetDependency */, ); name = "WordPress-iOS-SharedTests"; productName = "WordPress-iOS-SharedTests"; productReference = 931A0FFA192A9CDD00D3CC11 /* WordPress-iOS-SharedTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + E1016BF81CBF760F00CE57D8 /* WordPressShared */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1016C001CBF760F00CE57D8 /* Build configuration list for PBXNativeTarget "WordPressShared" */; + buildPhases = ( + E1016BF41CBF760F00CE57D8 /* Sources */, + E1016BF51CBF760F00CE57D8 /* Frameworks */, + E1016BF61CBF760F00CE57D8 /* Headers */, + E1016BF71CBF760F00CE57D8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WordPressShared; + productName = WordPressShared; + productReference = E1016BF91CBF760F00CE57D8 /* WordPressShared.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 931A0FE2192A9CDD00D3CC11 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 0730; LastUpgradeCheck = 0510; ORGANIZATIONNAME = WordPress.org; + TargetAttributes = { + E1016BF81CBF760F00CE57D8 = { + CreatedOnToolsVersion = 7.3; + }; + }; }; buildConfigurationList = 931A0FE5192A9CDD00D3CC11 /* Build configuration list for PBXProject "WordPress-iOS-Shared" */; compatibilityVersion = "Xcode 3.2"; @@ -360,6 +465,7 @@ targets = ( 931A0FE9192A9CDD00D3CC11 /* WordPress-iOS-Shared */, 931A0FF9192A9CDD00D3CC11 /* WordPress-iOS-SharedTests */, + E1016BF81CBF760F00CE57D8 /* WordPressShared */, ); }; /* End PBXProject section */ @@ -375,6 +481,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E1016BF71CBF760F00CE57D8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -482,16 +595,37 @@ buildActionMask = 2147483647; files = ( 931A1038192AA34300D3CC11 /* WPImageSourceTest.m in Sources */, + E1016C3E1CBF7E5800CE57D8 /* UIColorHelpersTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1016BF41CBF760F00CE57D8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E1016C1F1CBF763D00CE57D8 /* WPNUXUtility.m in Sources */, + E1016C321CBF764600CE57D8 /* NSString+XMLExtensions.m in Sources */, + E1016C211CBF763D00CE57D8 /* WPTableViewCell.m in Sources */, + E1016C1D1CBF763D00CE57D8 /* UIColor+Helpers.m in Sources */, + E1016C341CBF764600CE57D8 /* WPDeviceIdentification.m in Sources */, + E1016C2C1CBF764600CE57D8 /* UIImage+Util.m in Sources */, + E1016C231CBF763D00CE57D8 /* WPTextFieldTableViewCell.m in Sources */, + E1016C2E1CBF764600CE57D8 /* WPImageSource.m in Sources */, + E1016C221CBF763D00CE57D8 /* WPTableViewSectionHeaderFooterView.m in Sources */, + E1016C361CBF764600CE57D8 /* WPFontManager.m in Sources */, + E1016C301CBF764600CE57D8 /* NSString+Util.m in Sources */, + E1016C1E1CBF763D00CE57D8 /* WPNoResultsView.m in Sources */, + E1016C201CBF763D00CE57D8 /* WPStyleGuide.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 931A1001192A9CDD00D3CC11 /* PBXTargetDependency */ = { + E1016C3B1CBF7C6000CE57D8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 931A0FE9192A9CDD00D3CC11 /* WordPress-iOS-Shared */; - targetProxy = 931A1000192A9CDD00D3CC11 /* PBXContainerItemProxy */; + target = E1016BF81CBF760F00CE57D8 /* WordPressShared */; + targetProxy = E1016C3A1CBF7C6000CE57D8 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -538,7 +672,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; @@ -569,7 +703,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; @@ -607,6 +741,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 897FA2B40A6E81DB4E7F0435 /* Pods-WordPress-iOS-SharedTests.debug.xcconfig */; buildSettings = { + CLANG_ENABLE_MODULES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", @@ -619,7 +754,10 @@ "$(inherited)", ); INFOPLIST_FILE = "WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; WRAPPER_EXTENSION = xctest; }; name = Debug; @@ -628,6 +766,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E95607083C359C14B48BA503 /* Pods-WordPress-iOS-SharedTests.release.xcconfig */; buildSettings = { + CLANG_ENABLE_MODULES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", @@ -636,11 +775,77 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch"; INFOPLIST_FILE = "WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Bridging-Header.h"; WRAPPER_EXTENSION = xctest; }; name = Release; }; + E1016BFE1CBF760F00CE57D8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1CCBEF3A622A4635247597B3 /* Pods.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch"; + INFOPLIST_FILE = WordPressShared/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressShared; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E1016BFF1CBF760F00CE57D8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1CCBEF3A622A4635247597B3 /* Pods.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch"; + INFOPLIST_FILE = WordPressShared/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressShared; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -671,6 +876,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + E1016C001CBF760F00CE57D8 /* Build configuration list for PBXNativeTarget "WordPressShared" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1016BFE1CBF760F00CE57D8 /* Debug */, + E1016BFF1CBF760F00CE57D8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 931A0FE2192A9CDD00D3CC11 /* Project object */; diff --git a/WordPress-iOS-Shared.xcodeproj/xcshareddata/xcschemes/WordPress-iOS-Shared.xcscheme b/WordPress-iOS-Shared.xcodeproj/xcshareddata/xcschemes/WordPress-iOS-Shared.xcscheme index e11c91b..316062a 100644 --- a/WordPress-iOS-Shared.xcodeproj/xcshareddata/xcschemes/WordPress-iOS-Shared.xcscheme +++ b/WordPress-iOS-Shared.xcodeproj/xcshareddata/xcschemes/WordPress-iOS-Shared.xcscheme @@ -23,21 +23,11 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WordPress-iOS-Shared/Core/WPDeviceIdentification.h b/WordPress-iOS-Shared/Core/WPDeviceIdentification.h index d5d8a42..e5d53fb 100644 --- a/WordPress-iOS-Shared/Core/WPDeviceIdentification.h +++ b/WordPress-iOS-Shared/Core/WPDeviceIdentification.h @@ -1,4 +1,5 @@ #import +#import /** * @class WPDeviceIdentification @@ -6,6 +7,27 @@ */ @interface WPDeviceIdentification : NSObject +/** + * @brief Call this method to know if the current device is an iPhone. + * + * @returns YES if the device is an iPhone. NO otherwise. + */ ++ (BOOL)isiPhone; + +/** + * @brief Call this method to know if the current device is an iPad. + * + * @returns YES if the device is an iPad. NO otherwise. + */ ++ (BOOL)isiPad; + +/** + * @brief Call this method to know if the current device has a retina screen. + * + * @returns YES if the device has a retina screen. NO otherwise. + */ ++ (BOOL)isRetina; + /** * @brief Call this method to know if the current device is an iPhone6. * diff --git a/WordPress-iOS-Shared/Core/WPDeviceIdentification.m b/WordPress-iOS-Shared/Core/WPDeviceIdentification.m index 706c975..a121f5d 100644 --- a/WordPress-iOS-Shared/Core/WPDeviceIdentification.m +++ b/WordPress-iOS-Shared/Core/WPDeviceIdentification.m @@ -89,6 +89,19 @@ + (NSString*)deviceName #pragma mark - Device identification ++ (BOOL)isiPhone { + return ![self isiPad]; +} + ++ (BOOL)isiPad { + return [UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad; +} + ++ (BOOL)isRetina { + return ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] > 1); +} + + + (BOOL)isiPhoneSix { NSString* deviceName = [self deviceName]; @@ -99,7 +112,7 @@ + (BOOL)isiPhoneSix // basically our best bet at identifying the device in lack of a better method. This // aproximation may need adjusting when new devices come out. // - result = (IS_IPHONE + result = ([self isiPhone] && [[UIScreen mainScreen] respondsToSelector:@selector(nativeScale)] && [[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] && [[UIScreen mainScreen] nativeScale] == 2 @@ -121,7 +134,7 @@ + (BOOL)isiPhoneSixPlus // basically our best bet at identifying the device in lack of a better method. This // aproximation may need adjusting when new devices come out. // - result = (IS_IPHONE + result = ([self isiPhone] && [[UIScreen mainScreen] respondsToSelector:@selector(nativeScale)] && [[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] && [[UIScreen mainScreen] nativeScale] > 2.5 diff --git a/WordPress-iOS-Shared/Core/WPImageSource.h b/WordPress-iOS-Shared/Core/WPImageSource.h index 15ced2b..f67d9f2 100644 --- a/WordPress-iOS-Shared/Core/WPImageSource.h +++ b/WordPress-iOS-Shared/Core/WPImageSource.h @@ -1,4 +1,5 @@ #import +#import /** WPImageSource Error Codes diff --git a/WordPress-iOS-Shared/Core/WPNoResultsView.m b/WordPress-iOS-Shared/Core/WPNoResultsView.m index 4a35a82..cdaa291 100644 --- a/WordPress-iOS-Shared/Core/WPNoResultsView.m +++ b/WordPress-iOS-Shared/Core/WPNoResultsView.m @@ -3,6 +3,7 @@ #import "WPStyleGuide.h" #import "WPNUXUtility.h" #import "WPFontManager.h" +#import "WPDeviceIdentification.h" @interface WPNoResultsView () @property (nonatomic, strong) UILabel *titleLabel; @@ -226,7 +227,7 @@ - (void)orientationDidChange:(NSNotification *)notification { // Hide the accessory view in landscape orientation on iPhone to ensure entire view fits on screen UIDevice *device = notification.object; - _accessoryView.hidden = (UIDeviceOrientationIsLandscape(device.orientation) && IS_IPHONE); + _accessoryView.hidden = (UIDeviceOrientationIsLandscape(device.orientation) && [WPDeviceIdentification isiPhone]); [self setNeedsLayout]; } diff --git a/WordPress-iOS-Shared/Core/WPStyleGuide.m b/WordPress-iOS-Shared/Core/WPStyleGuide.m index db116e9..8211951 100644 --- a/WordPress-iOS-Shared/Core/WPStyleGuide.m +++ b/WordPress-iOS-Shared/Core/WPStyleGuide.m @@ -2,6 +2,7 @@ #import "WPTextFieldTableViewCell.h" #import "UIColor+Helpers.h" #import "WPFontManager.h" +#import "WPDeviceIdentification.h" @implementation WPStyleGuide @@ -278,14 +279,14 @@ + (UIColor *)keyboardColor { BOOL hasLighterKeyboard = [versionStr compare:@"7.1" options:NSNumericSearch] == NSOrderedAscending; if (hasLighterKeyboard) { - if (IS_IPAD) { + if ([WPDeviceIdentification isiPad]) { return [UIColor colorWithRed:207.0f/255.0f green:210.0f/255.0f blue:213.0f/255.0f alpha:1.0]; } else { return [UIColor colorWithRed:220.0f/255.0f green:223.0f/255.0f blue:226.0f/255.0f alpha:1.0]; } } - if (IS_IPAD) { + if ([WPDeviceIdentification isiPad]) { return [UIColor colorWithRed:217.0f/255.0f green:220.0f/255.0f blue:223.0f/255.0f alpha:1.0]; } else { return [UIColor colorWithRed:204.0f/255.0f green:208.0f/255.0f blue:214.0f/255.0f alpha:1.0]; diff --git a/WordPress-iOS-Shared/Core/WPTableViewCell.m b/WordPress-iOS-Shared/Core/WPTableViewCell.m index ad4b3b1..2a42291 100644 --- a/WordPress-iOS-Shared/Core/WPTableViewCell.m +++ b/WordPress-iOS-Shared/Core/WPTableViewCell.m @@ -1,4 +1,5 @@ #import "WPTableViewCell.h" +#import "WPDeviceIdentification.h" CGFloat const WPTableViewFixedWidth = 600; @@ -15,7 +16,7 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus - (void)setFrame:(CGRect)frame { CGFloat width = self.superview.frame.size.width; // On iPad, add a margin around tables - if (IS_IPAD && width > WPTableViewFixedWidth) { + if ([WPDeviceIdentification isiPad] && width > WPTableViewFixedWidth) { CGFloat x = (width - WPTableViewFixedWidth) / 2; // If origin.x is not equal to x we add the value. // This is a semi-fix / work around for an issue positioning cells on @@ -35,7 +36,7 @@ - (void)layoutSubviews { // Need to set the origin again on iPad (for margins) CGFloat width = self.superview.frame.size.width; - if (IS_IPAD && width > WPTableViewFixedWidth) { + if ([WPDeviceIdentification isiPad] && width > WPTableViewFixedWidth) { CGRect frame = self.frame; frame.origin.x = (width - WPTableViewFixedWidth) / 2; self.frame = frame; diff --git a/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.h b/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.h index ee430ec..9d209b4 100644 --- a/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.h +++ b/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.h @@ -27,6 +27,7 @@ typedef NS_ENUM(NSInteger, WPTableViewSectionStyle) @property (nonatomic, assign, readonly) WPTableViewSectionStyle style; @property (nonatomic, strong) NSString *title; +@property (nonatomic, strong) NSAttributedString *attributedTitle; @property (nonatomic, strong) UIColor *titleColor; @property (nonatomic, strong) UIFont *titleFont; @property (nonatomic, assign) NSTextAlignment titleAlignment; diff --git a/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.m b/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.m index 672d985..5b291a6 100644 --- a/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.m +++ b/WordPress-iOS-Shared/Core/WPTableViewSectionHeaderFooterView.m @@ -1,10 +1,10 @@ #import "WPTableViewSectionHeaderFooterView.h" #import "WPTableViewCell.h" #import "WPStyleGuide.h" +#import "WPDeviceIdentification.h" #import "NSString+Util.h" - @interface WPTableViewSectionHeaderFooterView () @property (nonatomic, strong) UILabel *titleLabel; @end @@ -98,6 +98,38 @@ - (void)setTitle:(NSString *)title [self setNeedsLayout]; } +- (NSAttributedString *)attributedTitle +{ + return self.titleLabel.attributedText; +} + +- (void)setAttributedTitle:(NSAttributedString *)attributedTitle +{ + if (self.uppercase) { + NSString *title = [[attributedTitle string] uppercaseStringWithLocale:[NSLocale currentLocale]]; + + // If we're uppercasing the title then we'll need to copy any existing attributes... + NSMutableArray *attributes = [NSMutableArray new]; + [attributedTitle enumerateAttributesInRange:NSMakeRange(0, [attributedTitle length]) + options:0 + usingBlock:^(NSDictionary *attr, NSRange range, BOOL *stop) { + [attributes addObject:@{ @"attr": attr, @"range": [NSValue valueWithRange:range] }]; + }]; + + NSMutableAttributedString *uppercaseTitle = [[NSMutableAttributedString alloc] initWithString:title]; + + // And then apply them to a new uppercased string + for (NSDictionary *attribute in attributes) { + [uppercaseTitle setAttributes:attribute[@"attr"] range:[attribute[@"range"] rangeValue]]; + } + + attributedTitle = uppercaseTitle; + } + + self.titleLabel.attributedText = attributedTitle; + [self setNeedsLayout]; +} + - (UIColor *)titleColor { return self.titleLabel.textColor; @@ -202,7 +234,7 @@ + (CGFloat)titleLabelWidthFromSectionWidth:(CGFloat)sectionWidth titleInsets:(UI + (CGFloat)fixedWidth { - return IS_IPAD ? WPTableViewFixedWidth : 0.0; + return [WPDeviceIdentification isiPad] ? WPTableViewFixedWidth : 0.0; } diff --git a/WordPress-iOS-Shared/Core/WPTextFieldTableViewCell.m b/WordPress-iOS-Shared/Core/WPTextFieldTableViewCell.m index 12b7a1a..f8334a0 100644 --- a/WordPress-iOS-Shared/Core/WPTextFieldTableViewCell.m +++ b/WordPress-iOS-Shared/Core/WPTextFieldTableViewCell.m @@ -1,4 +1,5 @@ #import "WPTextFieldTableViewCell.h" +#import "WPDeviceIdentification.h" CGFloat const AccessoryPadding = 15.0f; CGFloat const iPadLeftMargin = 60.0f; @@ -49,7 +50,7 @@ - (void)layoutSubviews { if (!self.accessoryView && self.accessoryType != UITableViewCellAccessoryNone) { rightMargin = AccessoryPadding; } - if (IS_IPAD) { + if ([WPDeviceIdentification isiPad]) { leftMargin = iPadLeftMargin; rightMargin += iPadRightMargin; } else { diff --git a/WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch b/WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch index 4ccdecb..a25c917 100644 --- a/WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch +++ b/WordPress-iOS-Shared/WordPress-iOS-Shared-Prefix.pch @@ -5,21 +5,9 @@ // #ifdef __OBJC__ - #import #define LOG_LEVEL_DEF WordPressSharedLogLevel #import static const DDLogLevel WordPressSharedLogLevel = DDLogLevelWarning; -#ifndef IS_IPAD -#define IS_IPAD ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) -#endif -#ifndef IS_IPHONE -#define IS_IPHONE (!IS_IPAD) -#endif -#ifndef IS_RETINA -#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2) -#endif - - #endif diff --git a/WordPress-iOS-SharedTests/UIColorHelpersTests.swift b/WordPress-iOS-SharedTests/UIColorHelpersTests.swift new file mode 100644 index 0000000..a34ebfa --- /dev/null +++ b/WordPress-iOS-SharedTests/UIColorHelpersTests.swift @@ -0,0 +1,14 @@ +import XCTest +import WordPressShared + +class UIColorHelpersTests: XCTestCase { + + func testHexString() { + XCTAssertEqual(UIColor.redColor().hexString().lowercaseString, "ff0000") + + // hexString only works for RGB colors + XCTAssertEqual(UIColor.blackColor().hexString(), nil) + XCTAssertEqual(UIColor(white: 1, alpha: 1).hexString(), nil) + } + +} diff --git a/WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Bridging-Header.h b/WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Bridging-Header.h new file mode 100644 index 0000000..1b2cb5d --- /dev/null +++ b/WordPress-iOS-SharedTests/WordPress-iOS-SharedTests-Bridging-Header.h @@ -0,0 +1,4 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + diff --git a/WordPressShared/Info.plist b/WordPressShared/Info.plist new file mode 100644 index 0000000..d3de8ee --- /dev/null +++ b/WordPressShared/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/WordPressShared/WordPressShared.h b/WordPressShared/WordPressShared.h new file mode 100644 index 0000000..2b71829 --- /dev/null +++ b/WordPressShared/WordPressShared.h @@ -0,0 +1,23 @@ +#import + +//! Project version number for WordPressShared. +FOUNDATION_EXPORT double WordPressSharedVersionNumber; + +//! Project version string for WordPressShared. +FOUNDATION_EXPORT const unsigned char WordPressSharedVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import