diff --git a/CameraManager/Info.plist b/CameraManager/Info.plist index cde50a8..d3de8ee 100644 --- a/CameraManager/Info.plist +++ b/CameraManager/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Podfile b/Podfile deleted file mode 100644 index 1f8213d..0000000 --- a/Podfile +++ /dev/null @@ -1,3 +0,0 @@ -platform :ios, '8.0' - -pod 'CameraManager', :git => 'https://gist.github.com/2204678.git' \ No newline at end of file diff --git a/camera.xcodeproj/project.pbxproj b/camera.xcodeproj/project.pbxproj index 29fa40f..92c29c5 100644 --- a/camera.xcodeproj/project.pbxproj +++ b/camera.xcodeproj/project.pbxproj @@ -202,7 +202,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0600; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = imaginaryCloud; TargetAttributes = { 454C1F4019E82E2500C81915 = { @@ -323,6 +323,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -389,6 +390,7 @@ INFOPLIST_FILE = camera/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = cameraDemo; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -400,6 +402,7 @@ INFOPLIST_FILE = camera/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = cameraDemo; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -422,6 +425,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -444,6 +448,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.imaginarycloud.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; diff --git a/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate b/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate index c4f0634..597e90e 100644 Binary files a/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate and b/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme b/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme index d5d217f..472e20c 100644 --- a/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme +++ b/camera.xcodeproj/xcshareddata/xcschemes/CameraManager.xcscheme @@ -1,6 +1,6 @@ + + + + - + - + CameraState { if self._canLoadCamera() { - if let validEmbedingView = self.embedingView { + if let _ = self.embedingView { if let validPreviewLayer = self.previewLayer { validPreviewLayer.removeFromSuperlayer() } @@ -466,7 +470,11 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { if (captureDevice.position == AVCaptureDevicePosition.Back) { let avTorchMode = AVCaptureTorchMode(rawValue: flashMode.rawValue) if (captureDevice.isTorchModeSupported(avTorchMode!)) { - captureDevice.lockForConfiguration(nil) + do { + try captureDevice.lockForConfiguration() + } catch { + return; + } captureDevice.torchMode = avTorchMode! captureDevice.unlockForConfiguration() } @@ -612,9 +620,12 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { { self.embedingView = view dispatch_async(dispatch_get_main_queue(), { () -> Void in - self.previewLayer?.frame = view.layer.bounds + guard let _ = self.previewLayer else { + return + } + self.previewLayer!.frame = view.layer.bounds view.clipsToBounds = true - view.layer.addSublayer(self.previewLayer) + view.layer.addSublayer(self.previewLayer!) }) } @@ -640,8 +651,6 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { private func _addVideoInput() { - var error: NSError? - if (self.frontCamera == nil) || (self.rearCamera == nil) { var videoFrontDevice: AVCaptureDevice? var videoBackDevice: AVCaptureDevice? @@ -652,18 +661,20 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { videoFrontDevice = device as? AVCaptureDevice } } - if (self.frontCamera == nil) { - if let validVideoFrontDevice = videoFrontDevice { - self.frontCamera = AVCaptureDeviceInput.deviceInputWithDevice(validVideoFrontDevice, error: &error) as! AVCaptureDeviceInput + do { + if (self.frontCamera == nil) { + if let validVideoFrontDevice = videoFrontDevice { + try self.frontCamera = AVCaptureDeviceInput(device: validVideoFrontDevice) + } } - } - if (self.rearCamera == nil) { - if let validVideoBackDevice = videoBackDevice { - self.rearCamera = AVCaptureDeviceInput.deviceInputWithDevice(validVideoBackDevice, error: &error) as! AVCaptureDeviceInput + if (self.rearCamera == nil) { + if let validVideoBackDevice = videoBackDevice { + try self.rearCamera = AVCaptureDeviceInput(device: validVideoBackDevice) + } } - } - if let validError = error { - self._show(NSLocalizedString("Device setup error occured", comment:""), message: validError.localizedDescription) + } catch let outError { + self._show(NSLocalizedString("Device setup error occured", comment:""), message: "\(outError)") + return } } self.cameraDevice = _cameraDevice @@ -672,12 +683,12 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { private func _setupMic() { if (self.mic == nil) { - var error: NSError? - let micDevice:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio); - self.mic = AVCaptureDeviceInput.deviceInputWithDevice(micDevice, error: &error) as? AVCaptureDeviceInput; - if let errorHappened = error { + let micDevice:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio) + do { + try self.mic = AVCaptureDeviceInput(device: micDevice) + } catch let outError { self.mic = nil - self._show(NSLocalizedString("Mic error", comment:""), message: errorHappened.description) + self._show(NSLocalizedString("Mic error", comment:""), message: "\(outError)") } } } @@ -762,7 +773,11 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { if (captureDevice.position == AVCaptureDevicePosition.Back) { let avFlashMode = AVCaptureFlashMode(rawValue: flashMode.rawValue) if (captureDevice.isFlashModeSupported(avFlashMode!)) { - captureDevice.lockForConfiguration(nil) + do { + try captureDevice.lockForConfiguration() + } catch { + return + } captureDevice.flashMode = avFlashMode! captureDevice.unlockForConfiguration() } diff --git a/camera/Info.plist b/camera/Info.plist index 18156b1..3d4c0b4 100644 --- a/camera/Info.plist +++ b/camera/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - cameraDemo + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/camera/ViewController.swift b/camera/ViewController.swift index 6178967..6677781 100644 --- a/camera/ViewController.swift +++ b/camera/ViewController.swift @@ -124,7 +124,6 @@ class ViewController: UIViewController { self.cameraManager.startRecordingVideo() } else { self.cameraManager.stopRecordingVideo({ (videoURL, error) -> Void in - println(videoURL) if let errorOccured = error { self.cameraManager.showErrorBlock(erTitle: "Error occurred", erMessage: errorOccured.localizedDescription) }