From d1db47ba6bfcff487c53c534383f489e50ebd495 Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Fri, 25 Mar 2016 04:41:17 -0400 Subject: [PATCH 1/7] Updated jazzy docs script + screenshots layout --- .gitignore | 3 +++ README.md | 4 ++-- publish-docs.sh | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e019c1d..2c43a6e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,6 @@ DerivedData # CocoaPods Pods/ + +# Jazzy +docs/ diff --git a/README.md b/README.md index 535f49a..a77105c 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ prompted to submit a bug report via a mail composer with the screenshot attached ## Screenshots -![Report Prompt](https://raw.githubusercontent.com/dtrenz/BugShaker/master/Screenshots/screenshot-1.png) -![Report Compose View](https://raw.githubusercontent.com/dtrenz/BugShaker/master/Screenshots/screenshot-2.png) +Report Prompt +Report Compose View ## Usage diff --git a/publish-docs.sh b/publish-docs.sh index 7b7f756..73206d2 100755 --- a/publish-docs.sh +++ b/publish-docs.sh @@ -9,6 +9,7 @@ mkdir docs; # generate docs jazzy \ --clean \ + --swift-version 2.2 \ --author "Dan Trenz" \ --github_url https://github.com/dtrenz/BugShaker \ --module-version 0.2.1 \ From bc5382d24ec15c76e0bf27c5b187459ff50f7871 Mon Sep 17 00:00:00 2001 From: will hinchman Date: Thu, 3 Nov 2016 14:51:34 -0400 Subject: [PATCH 2/7] Bring Podfile up to date for CocoaPods 1.0 --- BugShaker.xcodeproj/project.pbxproj | 54 ++++++++++++++--------------- Podfile | 2 +- Podfile.lock | 4 ++- 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/BugShaker.xcodeproj/project.pbxproj b/BugShaker.xcodeproj/project.pbxproj index 72c82ed..1bc8de5 100644 --- a/BugShaker.xcodeproj/project.pbxproj +++ b/BugShaker.xcodeproj/project.pbxproj @@ -7,12 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + 3D456E3C3589BE5A89652990 /* Pods_BugShakerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A7FC78FCC00F754AC1BF680 /* Pods_BugShakerTests.framework */; }; C52821161CA43E2B003EA0D4 /* BugShaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821151CA43E2B003EA0D4 /* BugShaker.swift */; }; C52821231CA43E70003EA0D4 /* BugShaker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C52820F81CA43D40003EA0D4 /* BugShaker.framework */; }; C528213E1CA43F7B003EA0D4 /* ReportPromptSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */; }; C528213F1CA43F7B003EA0D4 /* ViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */; }; C584AE541CA48B1B00CC65F2 /* BugShakerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */; }; - E75140A53A95ED141B4078EA /* Pods_BugShakerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -26,7 +26,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BugShakerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5A7FC78FCC00F754AC1BF680 /* Pods_BugShakerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BugShakerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5EB79B7D42EFB78270A724B5 /* Pods-BugShakerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.debug.xcconfig"; sourceTree = ""; }; + 8FF4DCEA7CC90832B0A56E67 /* Pods-BugShakerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.release.xcconfig"; sourceTree = ""; }; C52820F81CA43D40003EA0D4 /* BugShaker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BugShaker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C52821151CA43E2B003EA0D4 /* BugShaker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BugShaker.swift; path = Sources/BugShaker.swift; sourceTree = ""; }; C52821171CA43E31003EA0D4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Sources/Info.plist; sourceTree = ""; }; @@ -35,8 +37,6 @@ C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportPromptSpec.swift; sourceTree = ""; }; C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewControllerSpec.swift; sourceTree = ""; }; C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugShakerSpec.swift; sourceTree = ""; }; - E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.release.xcconfig"; sourceTree = ""; }; - FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -52,28 +52,28 @@ buildActionMask = 2147483647; files = ( C52821231CA43E70003EA0D4 /* BugShaker.framework in Frameworks */, - E75140A53A95ED141B4078EA /* Pods_BugShakerTests.framework in Frameworks */, + 3D456E3C3589BE5A89652990 /* Pods_BugShakerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 78A95BB6521A780559156D7E /* Pods */ = { + 23A112C7B051B584CC4FB1EC /* Frameworks */ = { isa = PBXGroup; children = ( - FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */, - E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */, + 5A7FC78FCC00F754AC1BF680 /* Pods_BugShakerTests.framework */, ); - name = Pods; + name = Frameworks; sourceTree = ""; }; - 95C1BC90842C5A28B35B4183 /* Frameworks */ = { + 663C54F40774FC1944B5BC26 /* Pods */ = { isa = PBXGroup; children = ( - 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */, + 5EB79B7D42EFB78270A724B5 /* Pods-BugShakerTests.debug.xcconfig */, + 8FF4DCEA7CC90832B0A56E67 /* Pods-BugShakerTests.release.xcconfig */, ); - name = Frameworks; + name = Pods; sourceTree = ""; }; C52820EE1CA43D40003EA0D4 = { @@ -82,8 +82,8 @@ C52821121CA43D94003EA0D4 /* Sources */, C52821391CA43F60003EA0D4 /* Tests */, C52820F91CA43D40003EA0D4 /* Products */, - 95C1BC90842C5A28B35B4183 /* Frameworks */, - 78A95BB6521A780559156D7E /* Pods */, + 663C54F40774FC1944B5BC26 /* Pods */, + 23A112C7B051B584CC4FB1EC /* Frameworks */, ); sourceTree = ""; }; @@ -167,12 +167,12 @@ isa = PBXNativeTarget; buildConfigurationList = C52821261CA43E70003EA0D4 /* Build configuration list for PBXNativeTarget "BugShakerTests" */; buildPhases = ( - E0C437A7EAEE7C35C3A0559D /* Check Pods Manifest.lock */, + 1629946068313955F7F8992A /* [CP] Check Pods Manifest.lock */, C528211A1CA43E70003EA0D4 /* Sources */, C528211B1CA43E70003EA0D4 /* Frameworks */, C528211C1CA43E70003EA0D4 /* Resources */, - BD4BC63FDE5E449698EFE129 /* Embed Pods Frameworks */, - 4DD23D5CA82C779C6CF7C5EF /* Copy Pods Resources */, + 91EFBB1845DCD98136B9A072 /* [CP] Embed Pods Frameworks */, + F2DAF2FC938E1F5F1A69312E /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -238,29 +238,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 4DD23D5CA82C779C6CF7C5EF /* Copy Pods Resources */ = { + 1629946068313955F7F8992A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-resources.sh\"\n"; + 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; }; - BD4BC63FDE5E449698EFE129 /* Embed Pods Frameworks */ = { + 91EFBB1845DCD98136B9A072 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Embed Pods Frameworks"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -268,19 +268,19 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - E0C437A7EAEE7C35C3A0559D /* Check Pods Manifest.lock */ = { + F2DAF2FC938E1F5F1A69312E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -443,7 +443,7 @@ }; C52821271CA43E70003EA0D4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */; + baseConfigurationReference = 5EB79B7D42EFB78270A724B5 /* Pods-BugShakerTests.debug.xcconfig */; buildSettings = { CLANG_ENABLE_CODE_COVERAGE = NO; INFOPLIST_FILE = Tests/Info.plist; @@ -455,7 +455,7 @@ }; C52821281CA43E70003EA0D4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */; + baseConfigurationReference = 8FF4DCEA7CC90832B0A56E67 /* Pods-BugShakerTests.release.xcconfig */; buildSettings = { CLANG_ENABLE_CODE_COVERAGE = NO; INFOPLIST_FILE = Tests/Info.plist; diff --git a/Podfile b/Podfile index 7a2e479..5d790fa 100644 --- a/Podfile +++ b/Podfile @@ -1,7 +1,7 @@ source "https://github.com/CocoaPods/Specs.git" use_frameworks! -target "BugShakerTests", :exclusive => true do +target "BugShakerTests" do pod "Quick", "~> 0.9.1" pod "Nimble", "3.2.0" end diff --git a/Podfile.lock b/Podfile.lock index f830ac1..9c79d8f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -10,4 +10,6 @@ SPEC CHECKSUMS: Nimble: 703854335d181df169bbca9c97117b5cf8c47c1d Quick: a5221fc21788b6aeda934805e68b061839bc3165 -COCOAPODS: 0.38.2 +PODFILE CHECKSUM: 305666aae7d05a0d05bc04ea5a58745c0c67aec1 + +COCOAPODS: 1.0.1 From 81d4494ffc34d478dfc1120326b922d4c4030fed Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Thu, 3 Nov 2016 13:39:06 -0400 Subject: [PATCH 3/7] Swift 2.3 migration complete --- BugShaker.xcodeproj/project.pbxproj | 268 ++++++++-------- .../xcshareddata/xcschemes/BugShaker.xcscheme | 4 +- Example/Example.xcodeproj/project.pbxproj | 38 ++- .../xcshareddata/xcschemes/Example.xcscheme | 9 +- Example/Sources/AppDelegate.swift | 6 +- Example/Sources/Base.lproj/Main.storyboard | 25 +- Podfile | 17 +- Podfile.lock | 16 +- Sources/BugShaker.swift | 295 +++++++++--------- Tests/Info.plist | 2 - 10 files changed, 373 insertions(+), 307 deletions(-) diff --git a/BugShaker.xcodeproj/project.pbxproj b/BugShaker.xcodeproj/project.pbxproj index 72c82ed..46fe42d 100644 --- a/BugShaker.xcodeproj/project.pbxproj +++ b/BugShaker.xcodeproj/project.pbxproj @@ -7,16 +7,13 @@ objects = { /* Begin PBXBuildFile section */ + C51FD8451DCBADE700FC21FC /* BugShaker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C52820F81CA43D40003EA0D4 /* BugShaker.framework */; }; C52821161CA43E2B003EA0D4 /* BugShaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821151CA43E2B003EA0D4 /* BugShaker.swift */; }; - C52821231CA43E70003EA0D4 /* BugShaker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C52820F81CA43D40003EA0D4 /* BugShaker.framework */; }; - C528213E1CA43F7B003EA0D4 /* ReportPromptSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */; }; - C528213F1CA43F7B003EA0D4 /* ViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */; }; - C584AE541CA48B1B00CC65F2 /* BugShakerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */; }; - E75140A53A95ED141B4078EA /* Pods_BugShakerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + D29C3487E10C8FF0EE7B9A97 /* Pods_BugShakerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C73F2369F12ADB74131D1378 /* Pods_BugShakerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - C52821241CA43E70003EA0D4 /* PBXContainerItemProxy */ = { + C51FD8461DCBADE700FC21FC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = C52820EF1CA43D40003EA0D4 /* Project object */; proxyType = 1; @@ -26,64 +23,74 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BugShakerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1D3FE76D025D561ACB52AB42 /* Pods-BugShakerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.debug.xcconfig"; sourceTree = ""; }; + C1839A071CFB55B05586B118 /* Pods-BugShakerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.release.xcconfig"; sourceTree = ""; }; + C51FD8401DCBADE700FC21FC /* BugShakerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BugShakerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C51FD8441DCBADE700FC21FC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../Tests/Info.plist; sourceTree = ""; }; C52820F81CA43D40003EA0D4 /* BugShaker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BugShaker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C52821151CA43E2B003EA0D4 /* BugShaker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BugShaker.swift; path = Sources/BugShaker.swift; sourceTree = ""; }; - C52821171CA43E31003EA0D4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Sources/Info.plist; sourceTree = ""; }; - C528211E1CA43E70003EA0D4 /* BugShakerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BugShakerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C52821361CA43F60003EA0D4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportPromptSpec.swift; sourceTree = ""; }; - C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewControllerSpec.swift; sourceTree = ""; }; - C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugShakerSpec.swift; sourceTree = ""; }; - E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.release.xcconfig"; sourceTree = ""; }; - FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BugShakerTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests.debug.xcconfig"; sourceTree = ""; }; + C52821151CA43E2B003EA0D4 /* BugShaker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugShaker.swift; sourceTree = ""; }; + C52821171CA43E31003EA0D4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ReportPromptSpec.swift; path = ../Tests/ReportPromptSpec.swift; sourceTree = ""; }; + C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewControllerSpec.swift; path = ../Tests/ViewControllerSpec.swift; sourceTree = ""; }; + C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BugShakerSpec.swift; path = ../Tests/BugShakerSpec.swift; sourceTree = ""; }; + C73F2369F12ADB74131D1378 /* Pods_BugShakerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BugShakerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - C52820F41CA43D40003EA0D4 /* Frameworks */ = { + C51FD83D1DCBADE700FC21FC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C51FD8451DCBADE700FC21FC /* BugShaker.framework in Frameworks */, + D29C3487E10C8FF0EE7B9A97 /* Pods_BugShakerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C528211B1CA43E70003EA0D4 /* Frameworks */ = { + C52820F41CA43D40003EA0D4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C52821231CA43E70003EA0D4 /* BugShaker.framework in Frameworks */, - E75140A53A95ED141B4078EA /* Pods_BugShakerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 78A95BB6521A780559156D7E /* Pods */ = { + 005459725D5694A9A52B563E /* Frameworks */ = { isa = PBXGroup; children = ( - FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */, - E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */, + C73F2369F12ADB74131D1378 /* Pods_BugShakerTests.framework */, ); - name = Pods; + name = Frameworks; sourceTree = ""; }; - 95C1BC90842C5A28B35B4183 /* Frameworks */ = { + C51FD8411DCBADE700FC21FC /* Tests */ = { isa = PBXGroup; children = ( - 56B45F1CDCC034FA4902615D /* Pods_BugShakerTests.framework */, + C51FD84B1DCBAE0600FC21FC /* Supporting Files */, + C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */, + C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */, + C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */, ); - name = Frameworks; + path = Tests; + sourceTree = ""; + }; + C51FD84B1DCBAE0600FC21FC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C51FD8441DCBADE700FC21FC /* Info.plist */, + ); + name = "Supporting Files"; sourceTree = ""; }; C52820EE1CA43D40003EA0D4 = { isa = PBXGroup; children = ( C52821121CA43D94003EA0D4 /* Sources */, - C52821391CA43F60003EA0D4 /* Tests */, + C51FD8411DCBADE700FC21FC /* Tests */, C52820F91CA43D40003EA0D4 /* Products */, - 95C1BC90842C5A28B35B4183 /* Frameworks */, - 78A95BB6521A780559156D7E /* Pods */, + DA5E65973A6A6CBCCB206E06 /* Pods */, + 005459725D5694A9A52B563E /* Frameworks */, ); sourceTree = ""; }; @@ -91,7 +98,7 @@ isa = PBXGroup; children = ( C52820F81CA43D40003EA0D4 /* BugShaker.framework */, - C528211E1CA43E70003EA0D4 /* BugShakerTests.xctest */, + C51FD8401DCBADE700FC21FC /* BugShakerTests.xctest */, ); name = Products; sourceTree = ""; @@ -102,7 +109,7 @@ C52821191CA43E34003EA0D4 /* Supporting Files */, C52821151CA43E2B003EA0D4 /* BugShaker.swift */, ); - name = Sources; + path = Sources; sourceTree = ""; }; C52821191CA43E34003EA0D4 /* Supporting Files */ = { @@ -113,23 +120,13 @@ name = "Supporting Files"; sourceTree = ""; }; - C52821391CA43F60003EA0D4 /* Tests */ = { + DA5E65973A6A6CBCCB206E06 /* Pods */ = { isa = PBXGroup; children = ( - C528213D1CA43F69003EA0D4 /* Supporting Files */, - C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */, - C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */, - C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */, + 1D3FE76D025D561ACB52AB42 /* Pods-BugShakerTests.debug.xcconfig */, + C1839A071CFB55B05586B118 /* Pods-BugShakerTests.release.xcconfig */, ); - path = Tests; - sourceTree = ""; - }; - C528213D1CA43F69003EA0D4 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - C52821361CA43F60003EA0D4 /* Info.plist */, - ); - name = "Supporting Files"; + name = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -145,6 +142,27 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + C51FD83F1DCBADE700FC21FC /* BugShakerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C51FD8481DCBADE700FC21FC /* Build configuration list for PBXNativeTarget "BugShakerTests" */; + buildPhases = ( + 74EC55E028362C1C68528181 /* [CP] Check Pods Manifest.lock */, + C51FD83C1DCBADE700FC21FC /* Sources */, + C51FD83D1DCBADE700FC21FC /* Frameworks */, + C51FD83E1DCBADE700FC21FC /* Resources */, + 83670774C514410A9CF2968E /* [CP] Embed Pods Frameworks */, + 65C42A37DFC1BFAB0A68C0BC /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + C51FD8471DCBADE700FC21FC /* PBXTargetDependency */, + ); + name = BugShakerTests; + productName = BugShakerTests; + productReference = C51FD8401DCBADE700FC21FC /* BugShakerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; C52820F71CA43D40003EA0D4 /* BugShaker */ = { isa = PBXNativeTarget; buildConfigurationList = C528210C1CA43D40003EA0D4 /* Build configuration list for PBXNativeTarget "BugShaker" */; @@ -163,41 +181,22 @@ productReference = C52820F81CA43D40003EA0D4 /* BugShaker.framework */; productType = "com.apple.product-type.framework"; }; - C528211D1CA43E70003EA0D4 /* BugShakerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C52821261CA43E70003EA0D4 /* Build configuration list for PBXNativeTarget "BugShakerTests" */; - buildPhases = ( - E0C437A7EAEE7C35C3A0559D /* Check Pods Manifest.lock */, - C528211A1CA43E70003EA0D4 /* Sources */, - C528211B1CA43E70003EA0D4 /* Frameworks */, - C528211C1CA43E70003EA0D4 /* Resources */, - BD4BC63FDE5E449698EFE129 /* Embed Pods Frameworks */, - 4DD23D5CA82C779C6CF7C5EF /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - C52821251CA43E70003EA0D4 /* PBXTargetDependency */, - ); - name = BugShakerTests; - productName = "BugShaker Tests"; - productReference = C528211E1CA43E70003EA0D4 /* BugShakerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ C52820EF1CA43D40003EA0D4 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0730; + LastSwiftUpdateCheck = 0810; + LastUpgradeCheck = 0810; ORGANIZATIONNAME = "Dan Trenz"; TargetAttributes = { - C52820F71CA43D40003EA0D4 = { - CreatedOnToolsVersion = 7.3; + C51FD83F1DCBADE700FC21FC = { + CreatedOnToolsVersion = 8.1; + DevelopmentTeam = 69MZ6T95LT; + ProvisioningStyle = Automatic; }; - C528211D1CA43E70003EA0D4 = { + C52820F71CA43D40003EA0D4 = { CreatedOnToolsVersion = 7.3; }; }; @@ -215,20 +214,20 @@ projectRoot = ""; targets = ( C52820F71CA43D40003EA0D4 /* BugShaker */, - C528211D1CA43E70003EA0D4 /* BugShakerTests */, + C51FD83F1DCBADE700FC21FC /* BugShakerTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - C52820F61CA43D40003EA0D4 /* Resources */ = { + C51FD83E1DCBADE700FC21FC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C528211C1CA43E70003EA0D4 /* Resources */ = { + C52820F61CA43D40003EA0D4 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -238,14 +237,14 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 4DD23D5CA82C779C6CF7C5EF /* Copy Pods Resources */ = { + 65C42A37DFC1BFAB0A68C0BC /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Copy Pods Resources"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -253,68 +252,98 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - BD4BC63FDE5E449698EFE129 /* Embed Pods Frameworks */ = { + 74EC55E028362C1C68528181 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; - E0C437A7EAEE7C35C3A0559D /* Check Pods Manifest.lock */ = { + 83670774C514410A9CF2968E /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BugShakerTests/Pods-BugShakerTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - C52820F31CA43D40003EA0D4 /* Sources */ = { + C51FD83C1DCBADE700FC21FC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C52821161CA43E2B003EA0D4 /* BugShaker.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C528211A1CA43E70003EA0D4 /* Sources */ = { + C52820F31CA43D40003EA0D4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C528213E1CA43F7B003EA0D4 /* ReportPromptSpec.swift in Sources */, - C528213F1CA43F7B003EA0D4 /* ViewControllerSpec.swift in Sources */, - C584AE541CA48B1B00CC65F2 /* BugShakerSpec.swift in Sources */, + C52821161CA43E2B003EA0D4 /* BugShaker.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C52821251CA43E70003EA0D4 /* PBXTargetDependency */ = { + C51FD8471DCBADE700FC21FC /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = C52820F71CA43D40003EA0D4 /* BugShaker */; - targetProxy = C52821241CA43E70003EA0D4 /* PBXContainerItemProxy */; + targetProxy = C51FD8461DCBADE700FC21FC /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + C51FD8491DCBADE700FC21FC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D3FE76D025D561ACB52AB42 /* Pods-BugShakerTests.debug.xcconfig */; + buildSettings = { + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + DEVELOPMENT_TEAM = 69MZ6T95LT; + INFOPLIST_FILE = Tests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.BugShakerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + C51FD84A1DCBADE700FC21FC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C1839A071CFB55B05586B118 /* Pods-BugShakerTests.release.xcconfig */; + buildSettings = { + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + DEVELOPMENT_TEAM = 69MZ6T95LT; + INFOPLIST_FILE = Tests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.BugShakerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; C528210A1CA43D40003EA0D4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -329,8 +358,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -341,6 +372,7 @@ ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -358,6 +390,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 2.3; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -378,8 +411,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -389,6 +424,7 @@ ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -399,6 +435,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.3; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 2.3; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -409,11 +447,14 @@ C528210D1CA43D40003EA0D4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_CODE_COVERAGE = YES; CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -427,11 +468,14 @@ C528210E1CA43D40003EA0D4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_CODE_COVERAGE = YES; CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -441,56 +485,32 @@ }; name = Release; }; - C52821271CA43E70003EA0D4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE9F6CA326F308370BB72F76 /* Pods-BugShakerTests.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_CODE_COVERAGE = NO; - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dtrenz.BugShaker-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - C52821281CA43E70003EA0D4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E16F4CB9EF5409E5E86AF02F /* Pods-BugShakerTests.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_CODE_COVERAGE = NO; - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dtrenz.BugShaker-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - C52820F21CA43D40003EA0D4 /* Build configuration list for PBXProject "BugShaker" */ = { + C51FD8481DCBADE700FC21FC /* Build configuration list for PBXNativeTarget "BugShakerTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - C528210A1CA43D40003EA0D4 /* Debug */, - C528210B1CA43D40003EA0D4 /* Release */, + C51FD8491DCBADE700FC21FC /* Debug */, + C51FD84A1DCBADE700FC21FC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C528210C1CA43D40003EA0D4 /* Build configuration list for PBXNativeTarget "BugShaker" */ = { + C52820F21CA43D40003EA0D4 /* Build configuration list for PBXProject "BugShaker" */ = { isa = XCConfigurationList; buildConfigurations = ( - C528210D1CA43D40003EA0D4 /* Debug */, - C528210E1CA43D40003EA0D4 /* Release */, + C528210A1CA43D40003EA0D4 /* Debug */, + C528210B1CA43D40003EA0D4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C52821261CA43E70003EA0D4 /* Build configuration list for PBXNativeTarget "BugShakerTests" */ = { + C528210C1CA43D40003EA0D4 /* Build configuration list for PBXNativeTarget "BugShaker" */ = { isa = XCConfigurationList; buildConfigurations = ( - C52821271CA43E70003EA0D4 /* Debug */, - C52821281CA43E70003EA0D4 /* Release */, + C528210D1CA43D40003EA0D4 /* Debug */, + C528210E1CA43D40003EA0D4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/BugShaker.xcodeproj/xcshareddata/xcschemes/BugShaker.xcscheme b/BugShaker.xcodeproj/xcshareddata/xcschemes/BugShaker.xcscheme index 0633905..a9dfc10 100644 --- a/BugShaker.xcodeproj/xcshareddata/xcschemes/BugShaker.xcscheme +++ b/BugShaker.xcodeproj/xcshareddata/xcschemes/BugShaker.xcscheme @@ -1,6 +1,6 @@ diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj index cbc58e3..2bc18ca 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/Example/Example.xcodeproj/project.pbxproj @@ -7,17 +7,34 @@ objects = { /* Begin PBXBuildFile section */ + C53DFA0C1DCB97A000634CE4 /* BugShaker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C53DFA0B1DCB97A000634CE4 /* BugShaker.framework */; }; + C53DFA0D1DCB97A000634CE4 /* BugShaker.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C53DFA0B1DCB97A000634CE4 /* BugShaker.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C573BD7E1CA443810021F8ED /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821521CA4403A003EA0D4 /* AppDelegate.swift */; }; C573BD7F1CA443A90021F8ED /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C52821531CA4403A003EA0D4 /* LaunchScreen.xib */; }; C573BD801CA443AE0021F8ED /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C52821551CA4403A003EA0D4 /* Main.storyboard */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + C53DFA0E1DCB97A000634CE4 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + C53DFA0D1DCB97A000634CE4 /* BugShaker.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ C52821521CA4403A003EA0D4 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C52821541CA4403A003EA0D4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; C52821561CA4403A003EA0D4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; C52821571CA4403A003EA0D4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C59755ED1CA450C700A21FAB /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = Example.app; path = "/Users/dtrenz/Dev/src/BugShaker/Example/build/Debug-iphoneos/Example.app"; sourceTree = ""; }; + C53DFA0B1DCB97A000634CE4 /* BugShaker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BugShaker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C58A4FB41DCB96A000BC029B /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -25,6 +42,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C53DFA0C1DCB97A000634CE4 /* BugShaker.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -34,7 +52,9 @@ 607FACC71AFB9204008FA782 = { isa = PBXGroup; children = ( + C53DFA0B1DCB97A000634CE4 /* BugShaker.framework */, C52821511CA4403A003EA0D4 /* Sources */, + C58A4FB41DCB96A000BC029B /* Example.app */, ); sourceTree = ""; }; @@ -75,6 +95,7 @@ C573BD681CA4436A0021F8ED /* Sources */, C573BD691CA4436A0021F8ED /* Frameworks */, C573BD6A1CA4436A0021F8ED /* Resources */, + C53DFA0E1DCB97A000634CE4 /* Embed Frameworks */, ); buildRules = ( ); @@ -82,7 +103,7 @@ ); name = Example; productName = "BugShaker Example"; - productReference = C59755ED1CA450C700A21FAB /* Example.app */; + productReference = C58A4FB41DCB96A000BC029B /* Example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -92,11 +113,13 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0810; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { C573BD6B1CA4436A0021F8ED = { CreatedOnToolsVersion = 7.3; + DevelopmentTeam = 4J9G6749JK; + LastSwiftMigration = 0810; }; }; }; @@ -174,8 +197,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -219,8 +244,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -240,6 +267,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.3; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -249,11 +277,13 @@ buildSettings = { CLANG_ANALYZER_NONNULL = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4J9G6749JK; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dtrenz.BugShaker-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 2.3; }; name = Debug; }; @@ -261,11 +291,13 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ANALYZER_NONNULL = YES; + DEVELOPMENT_TEAM = 4J9G6749JK; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dtrenz.BugShaker-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 2.3; }; name = Release; }; diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme index 465add5..957f2a3 100644 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme +++ b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme @@ -1,6 +1,6 @@ + + + + diff --git a/Example/Sources/AppDelegate.swift b/Example/Sources/AppDelegate.swift index bf9829a..1ccf22c 100644 --- a/Example/Sources/AppDelegate.swift +++ b/Example/Sources/AppDelegate.swift @@ -2,14 +2,14 @@ // AppDelegate.swift // BugShaker // -// Created by git on 12/18/2015. -// Copyright (c) 2015 git. All rights reserved. +// Created by Dan Trenz on 12/18/2015. +// Copyright (c) 2015 Dan Trenz. All rights reserved. // import UIKit - import BugShaker + @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { diff --git a/Example/Sources/Base.lproj/Main.storyboard b/Example/Sources/Base.lproj/Main.storyboard index 1ba5539..432d786 100644 --- a/Example/Sources/Base.lproj/Main.storyboard +++ b/Example/Sources/Base.lproj/Main.storyboard @@ -1,38 +1,42 @@ - - + + + + + - + + - + - + - + @@ -42,7 +46,6 @@ - diff --git a/Podfile b/Podfile index 7a2e479..5dc1a03 100644 --- a/Podfile +++ b/Podfile @@ -1,7 +1,16 @@ -source "https://github.com/CocoaPods/Specs.git" +source 'https://github.com/CocoaPods/Specs.git' use_frameworks! +platform :ios, '9.3' -target "BugShakerTests", :exclusive => true do - pod "Quick", "~> 0.9.1" - pod "Nimble", "3.2.0" +target 'BugShakerTests' do + pod 'Quick', '< 0.10' + pod 'Nimble', '< 5.0' +end + +post_install do | installer | + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['SWIFT_VERSION'] = '2.3' + end + end end diff --git a/Podfile.lock b/Podfile.lock index f830ac1..92919c0 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,13 +1,15 @@ PODS: - - Nimble (3.2.0) - - Quick (0.9.1) + - Nimble (4.1.0) + - Quick (0.9.3) DEPENDENCIES: - - Nimble (= 3.2.0) - - Quick (~> 0.9.1) + - Nimble (< 5.0) + - Quick (< 0.10) SPEC CHECKSUMS: - Nimble: 703854335d181df169bbca9c97117b5cf8c47c1d - Quick: a5221fc21788b6aeda934805e68b061839bc3165 + Nimble: 97a0a4cae5124c117115634b2d055d8c97d0af19 + Quick: 13a2a2b19a5d8e3ed4fd0c36ee46597fd77ebf71 -COCOAPODS: 0.38.2 +PODFILE CHECKSUM: c2fd7fb144dfe243e4bbb0f60c5b03bac40b13e9 + +COCOAPODS: 1.1.1 diff --git a/Sources/BugShaker.swift b/Sources/BugShaker.swift index 84ad0b4..b518a8c 100644 --- a/Sources/BugShaker.swift +++ b/Sources/BugShaker.swift @@ -9,164 +9,159 @@ import UIKit import MessageUI -public class BugShaker { - - /// Enable or disable shake detection - public static var enabled = true - - struct Config { - static var recipients: [String]? - static var subject: String? - static var body: String? - } - - // MARK: - Configuration - - /** - Set bug report email recipient(s), custom subject line and body. - - - Parameters: - - recipients: List of email addresses to which the report will be sent. - - subject: Custom subject line to use for the report email. - - body: Custom email body (plain text). - */ - public class func configure(to recipients: [String]!, subject: String?, body: String?) { - Config.recipients = recipients - Config.subject = subject - Config.body = body - } - - /** - Set bug report email recipient(s) & custom subject line. - Convenience method for `configure(to:, subject:, body:)` for use when not - specifying custom body text. - - - Parameters: +final public class BugShaker { + + /// Enable or disable shake detection + public static var enabled = true + + struct Config { + static var recipients: [String]? + static var subject: String? + static var body: String? + } + + // MARK: - Configuration + + /** + Set bug report email recipient(s), custom subject line and body. + + - Parameters: - recipients: List of email addresses to which the report will be sent. - subject: Custom subject line to use for the report email. - */ - public class func configure(to recipients: [String]!, subject: String?) { - configure(to: recipients, subject: subject, body: nil) - } - + - body: Custom email body (plain text). + */ + public class func configure(to recipients: [String]!, subject: String?, body: String?) { + Config.recipients = recipients + Config.subject = subject + Config.body = body + } + + /** + Set bug report email recipient(s) & custom subject line. + Convenience method for `configure(to:, subject:, body:)` for use when not + specifying custom body text. + + - Parameters: + - recipients: List of email addresses to which the report will be sent. + - subject: Custom subject line to use for the report email. + */ + public class func configure(to recipients: [String]!, subject: String?) { + configure(to: recipients, subject: subject, body: nil) + } + } extension UIViewController: MFMailComposeViewControllerDelegate { - - // MARK: - UIResponder - - override public func canBecomeFirstResponder() -> Bool { - return true - } - - override public func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) { - if motion == .MotionShake && BugShaker.enabled { - let cachedScreenshot = captureScreenshot() - - presentReportPrompt({ (action) -> Void in - self.presentReportComposeView(cachedScreenshot) - }) + + // MARK: - UIResponder + + override public func canBecomeFirstResponder() -> Bool { + return true } - } - - // MARK: - Alert - - func presentReportPrompt(reportActionHandler: (UIAlertAction) -> Void) { - let actionSheet = UIAlertController( - title: "Shake detected!", - message: "Would you like to report a bug?", - preferredStyle: .ActionSheet - ) - - let reportAction = UIAlertAction(title: "Report A Bug", style: .Default, handler: reportActionHandler) - let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { _ in } - - actionSheet.addAction(reportAction) - actionSheet.addAction(cancelAction) - - presentViewController(actionSheet, animated: true, completion: nil) - } - - - // MARK: - Report methods - - /** - Take a screenshot for the current screen state. - - - returns: Screenshot image. - */ - func captureScreenshot() -> UIImage? { - var screenshot: UIImage? = nil - - if let layer = UIApplication.sharedApplication().keyWindow?.layer { - let scale = UIScreen.mainScreen().scale - - UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale); - - if let context = UIGraphicsGetCurrentContext() { - layer.renderInContext(context) - } - - screenshot = UIGraphicsGetImageFromCurrentImageContext() - - UIGraphicsEndImageContext() + + override public func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) { + guard BugShaker.enabled && motion == .MotionShake else { return } + + let cachedScreenshot = captureScreenshot() + + presentReportPrompt { [weak self] (action) in + self?.presentReportComposeView(cachedScreenshot) + } } - - return screenshot; - } - - /** - Present the user with a mail compose view with the recipient(s), subject line and body - pre-populated, and the screenshot attached. - - - parameter screenshot: The screenshot to attach to the report. - */ - func presentReportComposeView(screenshot: UIImage?) { - if MFMailComposeViewController.canSendMail() { - let mailComposer = MFMailComposeViewController() - - guard let toRecipients = BugShaker.Config.recipients else { - print("BugShaker – Error: No recipients provided. Make sure that BugShaker.configure() is called.") - return - } - - mailComposer.setToRecipients(toRecipients) - mailComposer.setSubject(BugShaker.Config.subject ?? "Bug Report") - mailComposer.setMessageBody(BugShaker.Config.body ?? "", isHTML: false) - mailComposer.mailComposeDelegate = self - - if let screenshot = screenshot, let screenshotJPEG = UIImageJPEGRepresentation(screenshot, CGFloat(1.0)) { - mailComposer.addAttachmentData(screenshotJPEG, mimeType: "image/jpeg", fileName: "screenshot.jpeg") - } - - presentViewController(mailComposer, animated: true, completion: nil) + + // MARK: - Alert + + func presentReportPrompt(reportActionHandler: (UIAlertAction) -> Void) { + let actionSheet = UIAlertController( + title: "Shake detected!", + message: "Would you like to report a bug?", + preferredStyle: .ActionSheet + ) + + let reportAction = UIAlertAction(title: "Report A Bug", style: .Default, handler: reportActionHandler) + let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { _ in } + + actionSheet.addAction(reportAction) + actionSheet.addAction(cancelAction) + + presentViewController(actionSheet, animated: true, completion: nil) } - } - - // MARK: - MFMailComposeViewControllerDelegate - - public func mailComposeController(controller: MFMailComposeViewController, - result: MFMailComposeResult, - error: NSError?) { - if let error = error { - print("BugShaker – Error: \(error)") + + + // MARK: - Report methods + + /** + Take a screenshot for the current screen state. + + - returns: Screenshot image. + */ + func captureScreenshot() -> UIImage? { + guard let layer = UIApplication.sharedApplication().keyWindow?.layer else { return nil } + + defer { + UIGraphicsEndImageContext() + } + + UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, UIScreen.mainScreen().scale); + + guard let context = UIGraphicsGetCurrentContext() else { return nil } + + layer.renderInContext(context) + + return UIGraphicsGetImageFromCurrentImageContext() } - - switch result { - case MFMailComposeResultFailed: - print("BugShaker – Bug report send failed.") - break; - - case MFMailComposeResultSent: - print("BugShaker – Bug report sent!") - break; - - default: - // noop - break; + + /** + Present the user with a mail compose view with the recipient(s), subject line and body + pre-populated, and the screenshot attached. + + - parameter screenshot: The screenshot to attach to the report. + */ + func presentReportComposeView(screenshot: UIImage?) { + if MFMailComposeViewController.canSendMail() { + let mailComposer = MFMailComposeViewController() + + guard let toRecipients = BugShaker.Config.recipients else { + print("BugShaker – Error: No recipients provided. Make sure that BugShaker.configure() is called.") + return + } + + mailComposer.setToRecipients(toRecipients) + mailComposer.setSubject(BugShaker.Config.subject ?? "Bug Report") + mailComposer.setMessageBody(BugShaker.Config.body ?? "", isHTML: false) + mailComposer.mailComposeDelegate = self + + if let screenshot = screenshot, let screenshotJPEG = UIImageJPEGRepresentation(screenshot, CGFloat(1.0)) { + mailComposer.addAttachmentData(screenshotJPEG, mimeType: "image/jpeg", fileName: "screenshot.jpeg") + } + + presentViewController(mailComposer, animated: true, completion: nil) + } } - - dismissViewControllerAnimated(true, completion: nil) - } - + + // MARK: - MFMailComposeViewControllerDelegate + + public func mailComposeController(controller: MFMailComposeViewController, + didFinishWithResult result: MFMailComposeResult, error: NSError?) { + if let error = error { + print("BugShaker – Error: \(error)") + } + + switch result { + case .Failed: + print("BugShaker – Bug report send failed.") + break; + + case .Sent: + print("BugShaker – Bug report sent!") + break; + + default: + // noop + break; + } + + dismissViewControllerAnimated(true, completion: nil) + } + } diff --git a/Tests/Info.plist b/Tests/Info.plist index ba72822..6c6c23c 100644 --- a/Tests/Info.plist +++ b/Tests/Info.plist @@ -16,8 +16,6 @@ BNDL CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion 1 From 8b15c21453cf6c0545c06f7a4121a8b7f6ef49e6 Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Fri, 4 Nov 2016 11:16:41 -0400 Subject: [PATCH 4/7] Release 0.3.0 --- .swift-version | 1 + BugShaker.podspec | 46 +++++++++++++++-------------- BugShaker.xcodeproj/project.pbxproj | 4 +-- CHANGELOG.md | 11 ++++++- README.md | 5 ++-- Sources/Info.plist | 2 +- 6 files changed, 41 insertions(+), 28 deletions(-) create mode 100644 .swift-version diff --git a/.swift-version b/.swift-version new file mode 100644 index 0000000..bb576db --- /dev/null +++ b/.swift-version @@ -0,0 +1 @@ +2.3 diff --git a/BugShaker.podspec b/BugShaker.podspec index 2d00d94..4037725 100644 --- a/BugShaker.podspec +++ b/BugShaker.podspec @@ -1,23 +1,25 @@ -Pod::Spec.new do |s| - s.name = "BugShaker" - s.version = "0.2.1" - s.summary = "Shake to submit a bug report (w/ screenshot) via email." - s.description = <<-DESC - BugShaker allows your users to simply submit bug reports by shaking the device. - When a shake is detected, the current screen state is captured and the user is - prompted to submit a bug report via a mail composer with the screenshot attached. - DESC - s.homepage = "https://github.com/detroit-labs/BugShaker" - s.screenshots = [ - "https://raw.githubusercontent.com/dtrenz/BugShaker/develop/Screenshots/screenshot-1.png", - "https://raw.githubusercontent.com/dtrenz/BugShaker/develop/Screenshots/screenshot-2.png", - ] - s.license = "Apache 2.0" - s.author = { "Dan Trenz" => "dtrenz@gmail.com" } - s.source = { :git => "https://github.com/detroit-labs/BugShaker.git", :tag => s.version.to_s } - s.social_media_url = "https://twitter.com/dtrenz" - s.platform = :ios, "8.3" - s.requires_arc = true - s.source_files = "Sources/**/*" - s.frameworks = "UIKit", "MessageUI" +Pod::Spec.new do |spec| + spec.name = 'BugShaker' + spec.version = '0.3.0' + spec.license = { :type => 'Apache 2.0' } + spec.homepage = 'https://github.com/detroit-labs/BugShaker' + spec.documentation_url = 'http://dtrenz.github.io/BugShaker/' + spec.authors = { 'Dan Trenz' => 'dtrenz@gmail.com' } + spec.summary = 'Shake to submit a bug report (w/ screenshot) via email.' + spec.source = { :git => 'https://github.com/detroit-labs/BugShaker.git', :tag => spec.version.to_s } + spec.source_files = 'Sources/*.swift' + spec.platform = :ios, '9.0' + spec.frameworks = 'UIKit', 'MessageUI' + spec.requires_arc = true + spec.description = <<-DESC + BugShaker allows your users to simply submit bug reports by shaking the device. + When a shake is detected, the current screen state is captured and the user is + prompted to submit a bug report via a mail composer with the screenshot attached. + DESC + spec.screenshots = [ + 'https://raw.githubusercontent.com/dtrenz/BugShaker/develop/Screenshots/screenshot-1.png', + 'https://raw.githubusercontent.com/dtrenz/BugShaker/develop/Screenshots/screenshot-2.png', + ] + spec.social_media_url = 'https://twitter.com/dtrenz' + spec.source_files = 'Sources/**/*' end diff --git a/BugShaker.xcodeproj/project.pbxproj b/BugShaker.xcodeproj/project.pbxproj index 46fe42d..8493081 100644 --- a/BugShaker.xcodeproj/project.pbxproj +++ b/BugShaker.xcodeproj/project.pbxproj @@ -385,7 +385,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -432,7 +432,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; diff --git a/CHANGELOG.md b/CHANGELOG.md index c266f30..730debb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. `BugShaker` adheres to [Semantic Versioning](http://semver.org/). +## [0.3.0](https://github.com/dtrenz/BugShaker/releases/tag/0.3.0) +**Released:** 2016-11-04 + +#### Added + - Support for **Swift v2.3** + +--- + ## [0.2.1](https://github.com/dtrenz/BugShaker/releases/tag/0.2.1) **Released:** 2016-03-25 @@ -13,7 +21,8 @@ All notable changes to this project will be documented in this file. #### Fixed - Broken README images - - + +--- ## [0.2.0](https://github.com/dtrenz/BugShaker/releases/tag/0.2.0) **Released:** 2016-03-24 diff --git a/README.md b/README.md index eba2226..cee4ac8 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ Shake to send a bug report! [![CI Status](http://img.shields.io/travis/dtrenz/BugShaker.svg?style=flat)](https://travis-ci.org/dtrenz/BugShaker) [![Version](https://img.shields.io/cocoapods/v/BugShaker.svg?style=flat)](http://cocoapods.org/pods/BugShaker) -[![License](https://img.shields.io/cocoapods/l/BugShaker.svg?style=flat)](http://cocoapods.org/pods/BugShaker) -[![Platform](https://img.shields.io/cocoapods/p/BugShaker.svg?style=flat)](http://cocoapods.org/pods/BugShaker) +![License](https://img.shields.io/cocoapods/l/BugShaker.svg?style=flat) +![Platform](https://img.shields.io/cocoapods/p/BugShaker.svg?style=flat) +![Swift Version](https://img.shields.io/badge/swift-v2.3-blue.svg) [![codecov.io](https://codecov.io/github/dtrenz/BugShaker/coverage.svg?branch=master)](https://codecov.io/github/dtrenz/BugShaker?branch=master) [![Sponsored by Detroit Labs](https://img.shields.io/badge/sponsor-Detroit%20Labs-000000.svg?style=flat)](http://www.detroitlabs.com) diff --git a/Sources/Info.plist b/Sources/Info.plist index d3de8ee..f42ccf5 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + 0.3.0 CFBundleSignature ???? CFBundleVersion From c0f5044e985c246cc865b98e7be45a40d2842b29 Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Fri, 4 Nov 2016 11:48:47 -0400 Subject: [PATCH 5/7] Addressed swiftlint issues --- .swiftlint.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.swiftlint.yml b/.swiftlint.yml index 4c99493..497cbe1 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,5 +1,7 @@ disabled_rules: # rule identifiers to exclude from running + - conditional_binding_cascade - trailing_whitespace + - vertical_whitespace included: # paths to include during linting. `--path` is ignored if present. - Sources # parameterized rules can be customized from this configuration file From e6ed821067b4af1b8c39dac8c8549696f1e13d4c Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Fri, 4 Nov 2016 14:10:59 -0400 Subject: [PATCH 6/7] Updating xcode version for Travis CI --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b50fbac..9b15c4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ branches: - develop - master language: objective-c -osx_image: xcode7.3 +osx_image: xcode8 notifications: slack: rooms: From a9adee37bd0c8579412cdd7db9d61c3d29ed1542 Mon Sep 17 00:00:00 2001 From: Dan Trenz Date: Fri, 4 Nov 2016 14:44:32 -0400 Subject: [PATCH 7/7] Re-added test specs to test target --- BugShaker.xcodeproj/project.pbxproj | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/BugShaker.xcodeproj/project.pbxproj b/BugShaker.xcodeproj/project.pbxproj index 33652fe..587c7c2 100644 --- a/BugShaker.xcodeproj/project.pbxproj +++ b/BugShaker.xcodeproj/project.pbxproj @@ -9,6 +9,9 @@ /* Begin PBXBuildFile section */ C51FD8451DCBADE700FC21FC /* BugShaker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C52820F81CA43D40003EA0D4 /* BugShaker.framework */; }; C52821161CA43E2B003EA0D4 /* BugShaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821151CA43E2B003EA0D4 /* BugShaker.swift */; }; + C5CDEFB21DCD0E32003AC73D /* BugShakerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C584AE531CA48B1B00CC65F2 /* BugShakerSpec.swift */; }; + C5CDEFB31DCD0E32003AC73D /* ReportPromptSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821371CA43F60003EA0D4 /* ReportPromptSpec.swift */; }; + C5CDEFB41DCD0E32003AC73D /* ViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52821381CA43F60003EA0D4 /* ViewControllerSpec.swift */; }; D29C3487E10C8FF0EE7B9A97 /* Pods_BugShakerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C73F2369F12ADB74131D1378 /* Pods_BugShakerTests.framework */; }; /* End PBXBuildFile section */ @@ -264,7 +267,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run \'pod install\' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; 83670774C514410A9CF2968E /* [CP] Embed Pods Frameworks */ = { @@ -289,6 +292,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C5CDEFB41DCD0E32003AC73D /* ViewControllerSpec.swift in Sources */, + C5CDEFB31DCD0E32003AC73D /* ReportPromptSpec.swift in Sources */, + C5CDEFB21DCD0E32003AC73D /* BugShakerSpec.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -324,7 +330,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.BugShakerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 2.3; }; name = Debug; }; @@ -340,7 +346,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.BugShakerTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 2.3; }; name = Release; };