├── _Pods.xcodeproj ├── Resources └── preview.png ├── Sources └── MobilliumQRCodeReader │ ├── Assets │ └── Icons.xcassets │ │ ├── Contents.json │ │ └── ic_close.imageset │ │ ├── ic_close.pdf │ │ └── Contents.json │ └── Classes │ ├── ImageProvider.swift │ ├── QRCodeReaderPreviewLayer.swift │ ├── QRCodeReaderConfig.swift │ └── QRCodeReaderViewController.swift ├── Example ├── Pods │ ├── Target Support Files │ │ ├── MobilliumQRCodeReader │ │ │ ├── MobilliumQRCodeReader.modulemap │ │ │ ├── MobilliumQRCodeReader-dummy.m │ │ │ ├── MobilliumQRCodeReader-prefix.pch │ │ │ ├── MobilliumQRCodeReader-umbrella.h │ │ │ ├── MobilliumQRCodeReader.debug.xcconfig │ │ │ ├── MobilliumQRCodeReader.release.xcconfig │ │ │ ├── ResourceBundle-MobilliumQRCodeReader-MobilliumQRCodeReader-Info.plist │ │ │ └── MobilliumQRCodeReader-Info.plist │ │ ├── Pods-MobilliumQRCodeReader_Tests │ │ │ ├── Pods-MobilliumQRCodeReader_Tests-acknowledgements.markdown │ │ │ ├── Pods-MobilliumQRCodeReader_Tests.modulemap │ │ │ ├── Pods-MobilliumQRCodeReader_Tests-dummy.m │ │ │ ├── Pods-MobilliumQRCodeReader_Tests-umbrella.h │ │ │ ├── Pods-MobilliumQRCodeReader_Tests.debug.xcconfig │ │ │ ├── Pods-MobilliumQRCodeReader_Tests.release.xcconfig │ │ │ ├── Pods-MobilliumQRCodeReader_Tests-Info.plist │ │ │ └── Pods-MobilliumQRCodeReader_Tests-acknowledgements.plist │ │ └── Pods-MobilliumQRCodeReader_Example │ │ │ ├── Pods-MobilliumQRCodeReader_Example.modulemap │ │ │ ├── Pods-MobilliumQRCodeReader_Example-dummy.m │ │ │ ├── Pods-MobilliumQRCodeReader_Example-umbrella.h │ │ │ ├── Pods-MobilliumQRCodeReader_Example-Info.plist │ │ │ ├── Pods-MobilliumQRCodeReader_Example.debug.xcconfig │ │ │ ├── Pods-MobilliumQRCodeReader_Example.release.xcconfig │ │ │ ├── Pods-MobilliumQRCodeReader_Example-acknowledgements.markdown │ │ │ ├── Pods-MobilliumQRCodeReader_Example-acknowledgements.plist │ │ │ └── Pods-MobilliumQRCodeReader_Example-frameworks.sh │ ├── Manifest.lock │ ├── Local Podspecs │ │ └── MobilliumQRCodeReader.podspec.json │ └── Pods.xcodeproj │ │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── MobilliumQRCodeReader.xcscheme │ │ └── project.pbxproj ├── MobilliumQRCodeReader.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── MobilliumQRCodeReader-Example.xcscheme │ └── project.pbxproj ├── Podfile ├── MobilliumQRCodeReader.xcworkspace │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── contents.xcworkspacedata ├── Podfile.lock ├── MobilliumQRCodeReader │ ├── AppDelegate.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Info.plist │ └── HomeViewController.swift └── Tests │ ├── Info.plist │ └── Tests.swift ├── .github ├── PULL_REQUEST_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── Package.swift ├── MobilliumQRCodeReader.podspec └── README.md /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj -------------------------------------------------------------------------------- /Resources/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobillium/MobilliumQRCodeReader/HEAD/Resources/preview.png -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Assets/Icons.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Assets/Icons.xcassets/ic_close.imageset/ic_close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobillium/MobilliumQRCodeReader/HEAD/Sources/MobilliumQRCodeReader/Assets/Icons.xcassets/ic_close.imageset/ic_close.pdf -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader.modulemap: -------------------------------------------------------------------------------- 1 | framework module MobilliumQRCodeReader { 2 | umbrella header "MobilliumQRCodeReader-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MobilliumQRCodeReader : NSObject 3 | @end 4 | @implementation PodsDummy_MobilliumQRCodeReader 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_MobilliumQRCodeReader_Tests { 2 | umbrella header "Pods-MobilliumQRCodeReader_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | platform :ios, '11.0' 4 | 5 | target 'MobilliumQRCodeReader_Example' do 6 | pod 'MobilliumQRCodeReader', :path => '../' 7 | 8 | target 'MobilliumQRCodeReader_Tests' do 9 | inherit! :search_paths 10 | 11 | 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_MobilliumQRCodeReader_Example { 2 | umbrella header "Pods-MobilliumQRCodeReader_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_MobilliumQRCodeReader_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_MobilliumQRCodeReader_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_MobilliumQRCodeReader_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_MobilliumQRCodeReader_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - MobilliumQRCodeReader (1.1.0) 3 | 4 | DEPENDENCIES: 5 | - MobilliumQRCodeReader (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | MobilliumQRCodeReader: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | MobilliumQRCodeReader: f39910a38563f41ab0941ff24ae48395d6316687 13 | 14 | PODFILE CHECKSUM: 03c10264be126d6be06fcf64592071cb5258c7e9 15 | 16 | COCOAPODS: 1.11.3 17 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - MobilliumQRCodeReader (1.1.0) 3 | 4 | DEPENDENCIES: 5 | - MobilliumQRCodeReader (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | MobilliumQRCodeReader: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | MobilliumQRCodeReader: f39910a38563f41ab0941ff24ae48395d6316687 13 | 14 | PODFILE CHECKSUM: 03c10264be126d6be06fcf64592071cb5258c7e9 15 | 16 | COCOAPODS: 1.11.3 17 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Assets/Icons.xcassets/ic_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_close.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true, 14 | "template-rendering-intent" : "template" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Hello, before you open the pull request please read this guide. 2 | 3 | ### Before you start 4 | * If you are fixing a discussed issue, make sure to link the issue in here. If not, first create a new bug report or feature request after that open your pull request. 5 | 6 | ### Testing 7 | * Make sure existing tests pass after your contribution. 8 | * If you add new feature or fix a bug, add new test to cover your code. 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double MobilliumQRCodeReaderVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char MobilliumQRCodeReaderVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[FR]" 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | If you want to develop your feature by your own, fell free to open pull request and link it with your feature request. 11 | 12 | Once you've read this section, please delete it and fill out the rest of the template. 13 | 14 | ### Feature proposal 15 | 16 | Describe your use case and/or feature request here. 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_MobilliumQRCodeReader_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_MobilliumQRCodeReader_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_MobilliumQRCodeReader_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_MobilliumQRCodeReader_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Classes/ImageProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImageProvider.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by Murat Celebi on 30.03.2022. 6 | // 7 | 8 | import UIKit 9 | 10 | public class ImageProvider { 11 | 12 | // for any image located in bundle where this class has built 13 | public static func image(named: String) -> UIImage? { 14 | return UIImage(named: named, in: Bundle(for: self), compatibleWith: nil) 15 | } 16 | 17 | public static func getCloseImage() -> UIImage { 18 | return image(named: "ic_close") ?? UIImage() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[BUG]" 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Step 1: Describe your environment 11 | 12 | * Xcode version: 13 | * iOS version: 14 | * MobilliumQRCodeReader Version: 15 | * Installation method (Cocapods or SPM): 16 | 17 | ### Step 2: Describe the problem 18 | 19 | #### Problem description: 20 | 21 | What is the problem? 22 | 23 | #### Steps to reproduce [Good to Know]: 24 | 25 | How can we reproduce the problem? 26 | 27 | #### Output: 28 | 29 | Feel free to share log/console output. 30 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by mrtcelebi on 03/30/2022. 6 | // Copyright (c) 2022 mrtcelebi. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | let bounds = UIScreen.main.bounds 19 | window = UIWindow(frame: bounds) 20 | window?.rootViewController = HomeViewController() 21 | window?.makeKeyAndVisible() 22 | return true 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "MobilliumQRCodeReader" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "MobilliumQRCodeReader" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | import MobilliumQRCodeReader 3 | 4 | class Tests: XCTestCase { 5 | 6 | override func setUp() { 7 | super.setUp() 8 | // Put setup code here. This method is called before the invocation of each test method in the class. 9 | } 10 | 11 | override func tearDown() { 12 | // Put teardown code here. This method is called after the invocation of each test method in the class. 13 | super.tearDown() 14 | } 15 | 16 | func testExample() { 17 | // This is an example of a functional test case. 18 | XCTAssert(true, "Pass") 19 | } 20 | 21 | func testPerformanceExample() { 22 | // This is an example of a performance test case. 23 | self.measure() { 24 | // Put the code you want to measure the time of here. 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata/ 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 26 | # Carthage/Checkouts 27 | 28 | Carthage/Build 29 | 30 | # We recommend against adding the Pods directory to your .gitignore. However 31 | # you should judge for yourself, the pros and cons are mentioned at: 32 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 33 | # 34 | # Note: if you ignore the Pods directory, make sure to uncomment 35 | # `pod install` in .travis.yml 36 | # 37 | # Pods/ 38 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/ResourceBundle-MobilliumQRCodeReader-MobilliumQRCodeReader-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/MobilliumQRCodeReader.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MobilliumQRCodeReader", 3 | "version": "1.1.0", 4 | "summary": "Simple way to read QR Code by camera and from gallery", 5 | "description": "MobilliumQRCodeReader is a customisable qr code reader also you can read qr code from gallery image.", 6 | "homepage": "https://github.com/mobillium/MobilliumQRCodeReader", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "mrtcelebi": "mrttcelebi@gmail.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/mobillium/MobilliumQRCodeReader.git", 16 | "tag": "1.1.0" 17 | }, 18 | "social_media_url": "https://twitter.com/_mrtcelebi_", 19 | "platforms": { 20 | "ios": "11.0" 21 | }, 22 | "swift_versions": "5.0", 23 | "source_files": "Sources/MobilliumQRCodeReader/Classes/**/*", 24 | "resources": [ 25 | "Sources/MobilliumQRCodeReader/Assets/*.xcassets" 26 | ], 27 | "swift_version": "5.0" 28 | } 29 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022 mrtcelebi 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.6 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "MobilliumQRCodeReader", 8 | platforms: [ 9 | .iOS(.v11) 10 | ], 11 | products: [ 12 | // Products define the executables and libraries a package produces, and make them visible to other packages. 13 | .library( 14 | name: "MobilliumQRCodeReader", 15 | targets: ["MobilliumQRCodeReader"]), 16 | ], 17 | targets: [ 18 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 19 | // Targets can depend on other targets in this package, and on products in packages this package depends on. 20 | .target( 21 | name: "MobilliumQRCodeReader", 22 | dependencies: []), 23 | .testTarget( 24 | name: "MobilliumQRCodeReaderTests", 25 | dependencies: ["MobilliumQRCodeReader"]), 26 | ], 27 | swiftLanguageVersions: [ 28 | .v5 29 | ] 30 | ) 31 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework/Headers" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 8 | OTHER_LDFLAGS = $(inherited) -framework "MobilliumQRCodeReader" 9 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 13 | PODS_ROOT = ${SRCROOT}/Pods 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework/Headers" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 8 | OTHER_LDFLAGS = $(inherited) -framework "MobilliumQRCodeReader" 9 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 13 | PODS_ROOT = ${SRCROOT}/Pods 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /MobilliumQRCodeReader.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint MobilliumQRCodeReader.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = 'MobilliumQRCodeReader' 11 | s.version = '1.1.1' 12 | s.summary = 'Simple way to read QR Code by camera and from gallery' 13 | 14 | s.description = <<-DESC 15 | MobilliumQRCodeReader is a customisable qr code reader also you can read qr code from gallery image. 16 | DESC 17 | 18 | s.homepage = 'https://github.com/mobillium/MobilliumQRCodeReader' 19 | s.license = { :type => 'MIT', :file => 'LICENSE' } 20 | s.author = { 'mrtcelebi' => 'mrttcelebi@gmail.com' } 21 | s.source = { :git => 'https://github.com/mobillium/MobilliumQRCodeReader.git', :tag => s.version.to_s } 22 | s.social_media_url = 'https://twitter.com/_mrtcelebi_' 23 | 24 | s.ios.deployment_target = '11.0' 25 | s.swift_version = "5.0" 26 | s.source_files = 'Sources/MobilliumQRCodeReader/Classes/**/*' 27 | s.resources = ['Sources/MobilliumQRCodeReader/Assets/*.xcassets'] 28 | end 29 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## MobilliumQRCodeReader 5 | 6 | Copyright (c) 2022 mrtcelebi 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - https://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | NSCameraUsageDescription 36 | Kamera erişim izni gereklidir. 37 | UIUserInterfaceStyle 38 | Light 39 | 40 | 41 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: MobilliumQRCodeReader CI 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | Tests: 11 | runs-on: ${{ matrix.runsOn }} 12 | strategy: 13 | matrix: 14 | include: 15 | - destination: 'platform=iOS Simulator,name=iPhone 11,OS=13.7' 16 | runsOn: 'macOS-11' 17 | os: '13.7' 18 | xc_version: '12.5.1' 19 | xc_simulator_version: '11.7' 20 | - destination: 'platform=iOS Simulator,name=iPhone 12,OS=14.5' 21 | runsOn: 'macOS-11' 22 | os: '14.5' 23 | xc_version: '12.5.1' 24 | xc_simulator_version: '12.5.1' 25 | - destination: 'platform=iOS Simulator,name=iPhone 13,OS=15.5' 26 | runsOn: 'macOS-12' 27 | os: '15.5' 28 | xc_version: '14.2' 29 | xc_simulator_version: '13.4.1' 30 | - destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.2' 31 | runsOn: 'macOS-12' 32 | os: '16.2' 33 | xc_version: '14.2' 34 | xc_simulator_version: '14.2' 35 | env: 36 | XC_WORKSPACE: ${{ 'Example/MobilliumQRCodeReader.xcworkspace' }} 37 | XC_SCHEME: ${{ 'MobilliumQRCodeReader-Example' }} 38 | steps: 39 | - uses: actions/checkout@v3 40 | - name: Select latest Xcode 41 | run: "sudo xcode-select -s /Applications/Xcode_${{ matrix.xc_version }}.app" 42 | - name: Install Dependencies 43 | run: | 44 | cd Example 45 | pod install --repo-update 46 | - name: Link to iOS ${{ matrix.os }} Simulators 47 | run: | 48 | echo "Creating Runtimes folder if needed..." 49 | sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes 50 | echo "Creating symlink of the iOS ${{ matrix.os }} runtime..." 51 | sudo ln -s /Applications/Xcode_${{ matrix.xc_simulator_version }}.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ ${{ matrix.os }}.simruntime 52 | - name: Run Unit and UI Tests 53 | run: /usr/bin/xcodebuild test -workspace "$XC_WORKSPACE" -scheme "$XC_SCHEME" -destination '${{ matrix.destination }}' 54 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2022 mrtcelebi <mrttcelebi@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | License 38 | MIT 39 | Title 40 | MobilliumQRCodeReader 41 | Type 42 | PSGroupSpecifier 43 | 44 | 45 | FooterText 46 | Generated by CocoaPods - https://cocoapods.org 47 | Title 48 | 49 | Type 50 | PSGroupSpecifier 51 | 52 | 53 | StringsTable 54 | Acknowledgements 55 | Title 56 | Acknowledgements 57 | 58 | 59 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/MobilliumQRCodeReader.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Classes/QRCodeReaderPreviewLayer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScannerOverlayPreviewLayer.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by Murat Celebi on 28.03.2022. 6 | // 7 | 8 | import AVFoundation 9 | import UIKit 10 | 11 | public class QRCodeReaderPreviewLayer: AVCaptureVideoPreviewLayer { 12 | 13 | private let lineWidth: CGFloat 14 | private let lineColor: UIColor 15 | private let lineDashPattern: [NSNumber]? 16 | private let marginSize: CGFloat 17 | private let cornerRadiusSize: CGFloat 18 | 19 | public var rectOfInterest: CGRect { 20 | metadataOutputRectConverted(fromLayerRect: maskContainer) 21 | } 22 | 23 | public override var frame: CGRect { 24 | didSet { 25 | setNeedsDisplay() 26 | } 27 | } 28 | 29 | private var maskContainer: CGRect { 30 | let width = bounds.width - (marginSize * 2) 31 | return CGRect(x: marginSize, 32 | y: ((bounds.height / 2) - (width) / 2), 33 | width: width, 34 | height: width) 35 | } 36 | 37 | public init(session: AVCaptureSession, 38 | marginSize: CGFloat, 39 | lineWidth: CGFloat, 40 | lineColor: UIColor, 41 | lineDashPattern: [NSNumber]?, 42 | cornerRadiusSize: CGFloat) { 43 | self.marginSize = marginSize 44 | self.lineWidth = lineWidth 45 | self.lineColor = lineColor 46 | self.lineDashPattern = lineDashPattern 47 | self.cornerRadiusSize = cornerRadiusSize 48 | super.init(session: session) 49 | } 50 | 51 | required init?(coder: NSCoder) { 52 | fatalError("init(coder:) has not been implemented") 53 | } 54 | 55 | // MARK: - Drawing 56 | public override func draw(in ctx: CGContext) { 57 | super.draw(in: ctx) 58 | 59 | // MARK: - Background Mask 60 | let path = CGMutablePath() 61 | path.addRect(bounds) 62 | path.addRoundedRect(in: maskContainer, cornerWidth: cornerRadiusSize, cornerHeight: cornerRadiusSize) 63 | 64 | let maskLayer = CAShapeLayer() 65 | maskLayer.path = path 66 | maskLayer.fillColor = backgroundColor 67 | maskLayer.fillRule = .evenOdd 68 | addSublayer(maskLayer) 69 | 70 | // MARK: - Line Frame Mask 71 | let linePath = CGMutablePath() 72 | linePath.addRoundedRect(in: maskContainer, cornerWidth: cornerRadiusSize, cornerHeight: cornerRadiusSize) 73 | 74 | let shapeLayer = CAShapeLayer() 75 | shapeLayer.path = linePath 76 | shapeLayer.strokeColor = lineColor.cgColor 77 | shapeLayer.fillColor = UIColor.clear.cgColor 78 | shapeLayer.lineWidth = lineWidth 79 | shapeLayer.lineCap = .round 80 | shapeLayer.lineDashPattern = lineDashPattern 81 | addSublayer(shapeLayer) 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader/HomeViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by mrtcelebi on 03/30/2022. 6 | // 7 | 8 | import UIKit 9 | import MobilliumQRCodeReader 10 | 11 | class HomeViewController: UIViewController { 12 | 13 | private let outputLabel: UILabel = { 14 | let label = UILabel() 15 | label.translatesAutoresizingMaskIntoConstraints = false 16 | label.numberOfLines = 0 17 | label.textColor = .black 18 | label.font = .systemFont(ofSize: 20) 19 | label.textAlignment = .center 20 | return label 21 | }() 22 | 23 | private let readQRCodeButton: UIButton = { 24 | let button = UIButton() 25 | button.translatesAutoresizingMaskIntoConstraints = false 26 | button.layer.cornerRadius = 8 27 | button.clipsToBounds = true 28 | button.backgroundColor = .systemBlue 29 | button.setTitleColor(.white, for: .normal) 30 | button.contentEdgeInsets = .init(top: 8, left: 16, bottom: 8, right: 16) 31 | return button 32 | }() 33 | 34 | override func viewDidLoad() { 35 | super.viewDidLoad() 36 | addSubviews() 37 | configureContents() 38 | setLocalize() 39 | } 40 | } 41 | 42 | // MARK: - UILayout 43 | extension HomeViewController { 44 | 45 | private func addSubviews() { 46 | view.addSubview(outputLabel) 47 | outputLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16).isActive = true 48 | outputLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16).isActive = true 49 | outputLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 50 | 51 | view.addSubview(readQRCodeButton) 52 | readQRCodeButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 53 | readQRCodeButton.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 16).isActive = true 54 | readQRCodeButton.leadingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -16).isActive = true 55 | readQRCodeButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -32).isActive = true 56 | } 57 | } 58 | 59 | // MARK: - Configure & SetLocalize 60 | extension HomeViewController { 61 | 62 | private func configureContents() { 63 | view.backgroundColor = .white 64 | readQRCodeButton.addTarget(self, action: #selector(readQRCodeButtonTapped), for: .touchUpInside) 65 | } 66 | 67 | private func setLocalize() { 68 | readQRCodeButton.setTitle("QR Code Reader", for: .normal) 69 | outputLabel.text = "Test Scene" 70 | } 71 | } 72 | 73 | // MARK: - Actions 74 | extension HomeViewController { 75 | 76 | @objc 77 | private func readQRCodeButtonTapped() { 78 | let viewController = QRCodeReaderViewController() 79 | viewController.delegate = self 80 | viewController.present(on: self) 81 | } 82 | } 83 | 84 | extension HomeViewController: QRCodeReaderDelegate { 85 | 86 | func qrCodeReader(_ viewController: UIViewController, didSuccess qrCode: String) { 87 | outputLabel.text = qrCode 88 | } 89 | 90 | func qrCodeReaderFailed(_ viewController: UIViewController) { 91 | let alertController = UIAlertController(title: "Error", 92 | message: "An unexpected error occurred", 93 | preferredStyle: .alert) 94 | alertController.addAction(UIAlertAction(title: "OK", style: .default)) 95 | viewController.present(alertController, animated: true) 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader.xcodeproj/xcshareddata/xcschemes/MobilliumQRCodeReader-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 51 | 52 | 53 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 76 | 78 | 84 | 85 | 86 | 87 | 93 | 95 | 101 | 102 | 103 | 104 | 106 | 107 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Classes/QRCodeReaderConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // QrReaderDataModel.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by Murat Celebi on 29.03.2022. 6 | // 7 | 8 | import UIKit 9 | 10 | public struct QRCodeReaderConfig { 11 | public let closeButton: CloseButton 12 | public let infoLabel: InfoLabel 13 | public let galleryButton: GalleryButton 14 | public let previewLayer: PreviewLayer 15 | public let settingsAlert: SettingsAlert 16 | 17 | public init(closeButton: CloseButton = CloseButton(), 18 | infoLabel: InfoLabel = InfoLabel(), 19 | galleryButton: GalleryButton = GalleryButton(), 20 | previewLayer: PreviewLayer = PreviewLayer(), 21 | settingsAlert: SettingsAlert = SettingsAlert()) { 22 | self.closeButton = closeButton 23 | self.infoLabel = infoLabel 24 | self.galleryButton = galleryButton 25 | self.previewLayer = previewLayer 26 | self.settingsAlert = settingsAlert 27 | } 28 | } 29 | 30 | // MARK: - InfoLabel 31 | extension QRCodeReaderConfig { 32 | 33 | public struct InfoLabel { 34 | public let text: String? 35 | public let textColor: UIColor 36 | public let font: UIFont 37 | public let isHidden: Bool 38 | 39 | public init(text: String? = nil, 40 | textColor: UIColor = .white, 41 | font: UIFont = .systemFont(ofSize: 14), 42 | isHidden: Bool = false) { 43 | self.text = text 44 | self.textColor = textColor 45 | self.font = font 46 | self.isHidden = isHidden 47 | } 48 | } 49 | } 50 | 51 | // MARK: - CloseButton 52 | extension QRCodeReaderConfig { 53 | 54 | public struct CloseButton { 55 | public let image: UIImage 56 | public let tintColor: UIColor 57 | public let isHidden: Bool 58 | 59 | public init(image: UIImage = ImageProvider.getCloseImage(), 60 | tintColor: UIColor = .white, 61 | isHidden: Bool = false) { 62 | self.image = image 63 | self.tintColor = tintColor 64 | self.isHidden = isHidden 65 | } 66 | } 67 | } 68 | 69 | // MARK: - GalleryButton 70 | extension QRCodeReaderConfig { 71 | 72 | public struct GalleryButton { 73 | public let title: String? 74 | public let titleColor: UIColor 75 | public let font: UIFont 76 | public let backgroundColor: UIColor 77 | public let cornerRadius: CGFloat 78 | public let isHidden: Bool 79 | public let height: CGFloat 80 | 81 | public init(title: String? = "Choose from Gallery", 82 | titleColor: UIColor = .systemBlue, 83 | font: UIFont = .systemFont(ofSize: 14, weight: .semibold), 84 | backgroundColor: UIColor = .white, 85 | cornerRadius: CGFloat = 8, 86 | isHidden: Bool = false, 87 | height: CGFloat = 32) { 88 | self.title = title 89 | self.titleColor = titleColor 90 | self.font = font 91 | self.backgroundColor = backgroundColor 92 | self.cornerRadius = cornerRadius 93 | self.isHidden = isHidden 94 | self.height = height 95 | } 96 | } 97 | } 98 | 99 | // MARK: - PreviewLayer 100 | extension QRCodeReaderConfig { 101 | 102 | public struct PreviewLayer { 103 | public let backgroundColor: CGColor 104 | public let lineWidth: CGFloat 105 | public let lineColor: UIColor 106 | public let marginSize: CGFloat 107 | public let cornerRadius: CGFloat 108 | public let lineDashPattern: [NSNumber]? 109 | 110 | public init(backgroundColor: CGColor = UIColor.gray.withAlphaComponent(0.3).cgColor, 111 | lineWidth: CGFloat = 4, 112 | lineColor: UIColor = .white, 113 | marginSize: CGFloat = 32, 114 | cornerRadius: CGFloat = 24, 115 | lineDashPattern: [NSNumber]? = [25, 10]) { 116 | self.backgroundColor = backgroundColor 117 | self.lineWidth = lineWidth 118 | self.lineColor = lineColor 119 | self.marginSize = marginSize 120 | self.cornerRadius = cornerRadius 121 | self.lineDashPattern = lineDashPattern 122 | } 123 | } 124 | } 125 | 126 | // MARK: - SettingsAlert 127 | extension QRCodeReaderConfig { 128 | 129 | public struct SettingsAlert { 130 | public let title: String? 131 | public let message: String? 132 | public let actionButtonTitle: String? 133 | public let cancelButtonTitle: String? 134 | 135 | public init(title: String? = nil, 136 | message: String? = "Go to Settings?", 137 | actionButtonTitle: String? = "Settings", 138 | cancelButtonTitle: String? = "Cancel") { 139 | self.title = title 140 | self.message = message 141 | self.actionButtonTitle = actionButtonTitle 142 | self.cancelButtonTitle = cancelButtonTitle 143 | } 144 | } 145 | 146 | } 147 | 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MobilliumQRCodeReader 2 | 3 | [![Build Status](https://github.com/mobillium/MobilliumQRCodeReader/actions/workflows/ci.yml/badge.svg)](https://github.com/mobillium/MobilliumQRCodeReader/actions/workflows/ci.yml) 4 | [![Version](https://img.shields.io/cocoapods/v/MobilliumQRCodeReader.svg?style=flat)](https://cocoapods.org/pods/MobilliumQRCodeReader) 5 | [![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) 6 | [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) 7 | [![License](https://img.shields.io/cocoapods/l/MobilliumQRCodeReader.svg?style=flat)](https://cocoapods.org/pods/MobilliumQRCodeReader) 8 | [![Platform](https://img.shields.io/cocoapods/p/MobilliumQRCodeReader.svg?style=flat)](https://cocoapods.org/pods/MobilliumQRCodeReader) 9 | 10 | ![Preview](Resources/preview.png) 11 | 12 | ## Example 13 | 14 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 15 | 16 | ## Requirements 17 | - iOS 11.0+ 18 | - Swift 5.0+ 19 | 20 | ## Installation 21 | 22 | #### CocoaPods 23 | 24 | MobilliumQRCodeReader is available through [CocoaPods](https://cocoapods.org). To install 25 | it, simply add the following line to your Podfile: 26 | 27 | ```ruby 28 | pod 'MobilliumQRCodeReader' 29 | ``` 30 | 31 | #### Swift Package Manager 32 | 33 | The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. 34 | Once you have your Swift package set up, adding MobilliumQRCodeReader as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. 35 | 36 | ```swift 37 | dependencies: [ 38 | .package(url: "https://github.com/mobillium/MobilliumQRCodeReader.git", .upToNextMajor(from: "1.1.0")) 39 | ] 40 | ``` 41 | 42 | ### Carthage 43 | 44 | [Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate MobilliumQRCodeReader into your Xcode project using Carthage, specify it in your `Cartfile`: 45 | 46 | ```ogdl 47 | github "mobillium/MobilliumQRCodeReader" 48 | ``` 49 | 50 | ## Usage 51 | MobilliumQRCodeReader comes with these configs which you can customize for your requirements or you can continue with default values. 52 | Create own QRCodeReaderViewController and get result from QRCodeReaderDelegate. 53 | - PreviewLayer 54 | - CloseButton 55 | - InfoLabel 56 | - GalleryButton 57 | - SettingsAlert 58 | 59 | Basic usage: 60 | ```swift 61 | let viewController = QRCodeReaderViewController() 62 | viewController.delegate = self 63 | viewController.present(on: self) 64 | ``` 65 | 66 | Advanced usage: 67 | ```swift 68 | let closeButton = QRCodeReaderConfig.CloseButton(image: ImageProvider.getCloseImage(), 69 | tintColor: .white, 70 | isHidden: false) 71 | 72 | let infoLabel = QRCodeReaderConfig.InfoLabel(text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit", 73 | textColor: .white, 74 | font: .systemFont(ofSize: 14), 75 | isHidden: false) 76 | 77 | let galleryButton = QRCodeReaderConfig.GalleryButton(title: "Choose from Gallery", 78 | titleColor: .systemBlue, 79 | font: .systemFont(ofSize: 14, weight: .semibold), 80 | backgroundColor: .white, 81 | cornerRadius: 8, 82 | isHidden: false, 83 | height: 32) 84 | 85 | let previewLayer = QRCodeReaderConfig.PreviewLayer(backgroundColor: UIColor.gray.withAlphaComponent(0.3).cgColor, 86 | lineWidth: 4, 87 | lineColor: .white, 88 | marginSize: 32, 89 | cornerRadius: 24, 90 | lineDashPattern: [25, 10]) 91 | 92 | let settingsAlert = QRCodeReaderConfig.SettingsAlert(title: nil, 93 | message: "Go to Settings?", 94 | actionButtonTitle: "Settings", 95 | cancelButtonTitle: "Cancel") 96 | 97 | let config = QRCodeReaderConfig(closeButton: closeButton, 98 | infoLabel: infoLabel, 99 | galleryButton: galleryButton, 100 | previewLayer: previewLayer, 101 | settingsAlert: settingsAlert) 102 | let viewController = QRCodeReaderViewController(config: config) 103 | viewController.delegate = self 104 | viewController.present(on: self) 105 | ``` 106 | 107 | 108 | QRCodeReaderDelegate: 109 | ```swift 110 | func qrCodeReader(_ viewController: UIViewController, didSuccess qrCode: String) 111 | func qrCodeReaderFailed(_ viewController: UIViewController) 112 | func qrCodeReaderClosed(_ viewController: UIViewController) 113 | ``` 114 | 115 | ## License 116 | 117 | MobilliumQRCodeReader is available under the MIT license. See the LICENSE file for more info. 118 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | function on_error { 7 | echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" 8 | } 9 | trap 'on_error $LINENO' ERR 10 | 11 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 12 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 13 | # frameworks to, so exit 0 (signalling the script phase was successful). 14 | exit 0 15 | fi 16 | 17 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 18 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 19 | 20 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 21 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 22 | BCSYMBOLMAP_DIR="BCSymbolMaps" 23 | 24 | 25 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 26 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 27 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 28 | 29 | # Copies and strips a vendored framework 30 | install_framework() 31 | { 32 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 33 | local source="${BUILT_PRODUCTS_DIR}/$1" 34 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 35 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 36 | elif [ -r "$1" ]; then 37 | local source="$1" 38 | fi 39 | 40 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 41 | 42 | if [ -L "${source}" ]; then 43 | echo "Symlinked..." 44 | source="$(readlink "${source}")" 45 | fi 46 | 47 | if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then 48 | # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied 49 | find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do 50 | echo "Installing $f" 51 | install_bcsymbolmap "$f" "$destination" 52 | rm "$f" 53 | done 54 | rmdir "${source}/${BCSYMBOLMAP_DIR}" 55 | fi 56 | 57 | # Use filter instead of exclude so missing patterns don't throw errors. 58 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 59 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 60 | 61 | local basename 62 | basename="$(basename -s .framework "$1")" 63 | binary="${destination}/${basename}.framework/${basename}" 64 | 65 | if ! [ -r "$binary" ]; then 66 | binary="${destination}/${basename}" 67 | elif [ -L "${binary}" ]; then 68 | echo "Destination binary is symlinked..." 69 | dirname="$(dirname "${binary}")" 70 | binary="${dirname}/$(readlink "${binary}")" 71 | fi 72 | 73 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 74 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 75 | strip_invalid_archs "$binary" 76 | fi 77 | 78 | # Resign the code if required by the build settings to avoid unstable apps 79 | code_sign_if_enabled "${destination}/$(basename "$1")" 80 | 81 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 82 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 83 | local swift_runtime_libs 84 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) 85 | for lib in $swift_runtime_libs; do 86 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 87 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 88 | code_sign_if_enabled "${destination}/${lib}" 89 | done 90 | fi 91 | } 92 | # Copies and strips a vendored dSYM 93 | install_dsym() { 94 | local source="$1" 95 | warn_missing_arch=${2:-true} 96 | if [ -r "$source" ]; then 97 | # Copy the dSYM into the targets temp dir. 98 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 99 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 100 | 101 | local basename 102 | basename="$(basename -s .dSYM "$source")" 103 | binary_name="$(ls "$source/Contents/Resources/DWARF")" 104 | binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" 105 | 106 | # Strip invalid architectures from the dSYM. 107 | if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then 108 | strip_invalid_archs "$binary" "$warn_missing_arch" 109 | fi 110 | if [[ $STRIP_BINARY_RETVAL == 0 ]]; then 111 | # Move the stripped file into its final destination. 112 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 113 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 114 | else 115 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 116 | mkdir -p "${DWARF_DSYM_FOLDER_PATH}" 117 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" 118 | fi 119 | fi 120 | } 121 | 122 | # Used as a return value for each invocation of `strip_invalid_archs` function. 123 | STRIP_BINARY_RETVAL=0 124 | 125 | # Strip invalid architectures 126 | strip_invalid_archs() { 127 | binary="$1" 128 | warn_missing_arch=${2:-true} 129 | # Get architectures for current target binary 130 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 131 | # Intersect them with the architectures we are building for 132 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 133 | # If there are no archs supported by this binary then warn the user 134 | if [[ -z "$intersected_archs" ]]; then 135 | if [[ "$warn_missing_arch" == "true" ]]; then 136 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 137 | fi 138 | STRIP_BINARY_RETVAL=1 139 | return 140 | fi 141 | stripped="" 142 | for arch in $binary_archs; do 143 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 144 | # Strip non-valid architectures in-place 145 | lipo -remove "$arch" -output "$binary" "$binary" 146 | stripped="$stripped $arch" 147 | fi 148 | done 149 | if [[ "$stripped" ]]; then 150 | echo "Stripped $binary of architectures:$stripped" 151 | fi 152 | STRIP_BINARY_RETVAL=0 153 | } 154 | 155 | # Copies the bcsymbolmap files of a vendored framework 156 | install_bcsymbolmap() { 157 | local bcsymbolmap_path="$1" 158 | local destination="${BUILT_PRODUCTS_DIR}" 159 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" 160 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" 161 | } 162 | 163 | # Signs a framework with the provided identity 164 | code_sign_if_enabled() { 165 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 166 | # Use the current code_sign_identity 167 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 168 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 169 | 170 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 171 | code_sign_cmd="$code_sign_cmd &" 172 | fi 173 | echo "$code_sign_cmd" 174 | eval "$code_sign_cmd" 175 | fi 176 | } 177 | 178 | if [[ "$CONFIGURATION" == "Debug" ]]; then 179 | install_framework "${BUILT_PRODUCTS_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework" 180 | fi 181 | if [[ "$CONFIGURATION" == "Release" ]]; then 182 | install_framework "${BUILT_PRODUCTS_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework" 183 | fi 184 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 185 | wait 186 | fi 187 | -------------------------------------------------------------------------------- /Sources/MobilliumQRCodeReader/Classes/QRCodeReaderViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // QRCodeReaderViewController.swift 3 | // MobilliumQRCodeReader 4 | // 5 | // Created by Murat Celebi on 28.03.2022. 6 | // 7 | 8 | import AVFoundation 9 | import UIKit 10 | 11 | public protocol QRCodeReaderDelegate: AnyObject { 12 | func qrCodeReader(_ viewController: UIViewController, didSuccess qrCode: String) 13 | func qrCodeReaderFailed(_ viewController: UIViewController) 14 | func qrCodeReaderClosed(_ viewController: UIViewController) 15 | } 16 | 17 | public extension QRCodeReaderDelegate { 18 | func qrCodeReaderFailed(_ viewController: UIViewController) {} 19 | func qrCodeReaderClosed(_ viewController: UIViewController) {} 20 | } 21 | 22 | public class QRCodeReaderViewController: UIViewController { 23 | 24 | private let closeButton: UIButton = { 25 | let button = UIButton(type: .system) 26 | button.translatesAutoresizingMaskIntoConstraints = false 27 | button.contentEdgeInsets = .init(top: 8, left: 8, bottom: 8, right: 8) 28 | return button 29 | }() 30 | 31 | private let infoLabel: UILabel = { 32 | let label = UILabel() 33 | label.translatesAutoresizingMaskIntoConstraints = false 34 | label.numberOfLines = 0 35 | label.textAlignment = .center 36 | return label 37 | }() 38 | 39 | private let galleryButton: UIButton = { 40 | let button = UIButton(type: .system) 41 | button.translatesAutoresizingMaskIntoConstraints = false 42 | button.clipsToBounds = true 43 | button.contentEdgeInsets = .init(top: 0, left: 16, bottom: 0, right: 16) 44 | return button 45 | }() 46 | 47 | private var captureSession: AVCaptureSession! 48 | private var previewLayer: QRCodeReaderPreviewLayer! 49 | private let metadataOutput = AVCaptureMetadataOutput() 50 | private let config: QRCodeReaderConfig 51 | 52 | private let sMargin: CGFloat = 8 53 | private let mMargin: CGFloat = 16 54 | private let lMargin: CGFloat = 32 55 | 56 | private let imagePicker = UIImagePickerController() 57 | 58 | public weak var delegate: QRCodeReaderDelegate? 59 | 60 | public override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 61 | return .portrait 62 | } 63 | 64 | public init(config: QRCodeReaderConfig = QRCodeReaderConfig()) { 65 | self.config = config 66 | super.init(nibName: nil, bundle: nil) 67 | self.modalTransitionStyle = .coverVertical 68 | self.modalPresentationStyle = .fullScreen 69 | } 70 | 71 | required init?(coder: NSCoder) { 72 | fatalError("init(coder:) has not been implemented") 73 | } 74 | 75 | public override func viewDidLoad() { 76 | super.viewDidLoad() 77 | addSubviews() 78 | configureContents() 79 | } 80 | 81 | public override func viewWillAppear(_ animated: Bool) { 82 | super.viewWillAppear(animated) 83 | if captureSession?.isRunning == false { 84 | DispatchQueue.global(qos: .userInitiated).async { [weak self] in 85 | self?.captureSession.startRunning() 86 | } 87 | } 88 | } 89 | 90 | public override func viewWillDisappear(_ animated: Bool) { 91 | super.viewWillDisappear(animated) 92 | if captureSession?.isRunning == true { 93 | captureSession.stopRunning() 94 | } 95 | } 96 | 97 | public override func viewDidAppear(_ animated: Bool) { 98 | super.viewDidAppear(animated) 99 | checkCameraPermission() 100 | } 101 | 102 | private func dismissWithFailed() { 103 | self.dismiss(animated: true) { [weak self] in 104 | guard let self = self else { return } 105 | self.delegate?.qrCodeReaderFailed(self) 106 | } 107 | } 108 | 109 | private func dismissWithSuccess(qrCodeString: String) { 110 | self.dismiss(animated: true) { [weak self] in 111 | guard let self = self else { return } 112 | self.delegate?.qrCodeReader(self, didSuccess: qrCodeString) 113 | } 114 | } 115 | 116 | public func present(on viewController: UIViewController, animated: Bool = true, completion: (() -> Void)? = nil) { 117 | viewController.present(self, animated: animated, completion: completion) 118 | } 119 | } 120 | 121 | // MARK: - UILayout 122 | extension QRCodeReaderViewController { 123 | 124 | private func addSubviews() { 125 | view.addSubview(closeButton) 126 | closeButton.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: sMargin).isActive = true 127 | closeButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: sMargin).isActive = true 128 | closeButton.heightAnchor.constraint(equalToConstant: 32).isActive = true 129 | closeButton.widthAnchor.constraint(equalToConstant: 32).isActive = true 130 | 131 | view.addSubview(infoLabel) 132 | infoLabel.topAnchor.constraint(equalTo: closeButton.bottomAnchor, constant: sMargin).isActive = true 133 | infoLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: lMargin).isActive = true 134 | infoLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -lMargin).isActive = true 135 | 136 | view.addSubview(galleryButton) 137 | galleryButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 138 | galleryButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -mMargin).isActive = true 139 | galleryButton.heightAnchor.constraint(equalToConstant: config.galleryButton.height).isActive = true 140 | } 141 | } 142 | 143 | // MARK: - Configure 144 | extension QRCodeReaderViewController { 145 | 146 | private func configureContents() { 147 | configureCloseButton() 148 | configureInfoLabel() 149 | configureGalleryButton() 150 | configureQRCodeReader() 151 | } 152 | 153 | private func configureCloseButton() { 154 | closeButton.setImage(config.closeButton.image, for: .normal) 155 | closeButton.tintColor = config.closeButton.tintColor 156 | closeButton.isHidden = config.closeButton.isHidden 157 | closeButton.addTarget(self, action: #selector(closeButtonTapped), for: .touchUpInside) 158 | } 159 | 160 | private func configureInfoLabel() { 161 | infoLabel.text = config.infoLabel.text 162 | infoLabel.textColor = config.infoLabel.textColor 163 | infoLabel.font = config.infoLabel.font 164 | infoLabel.isHidden = config.infoLabel.isHidden 165 | } 166 | 167 | private func configureGalleryButton() { 168 | galleryButton.setTitle(config.galleryButton.title, for: .normal) 169 | galleryButton.setTitleColor(config.galleryButton.titleColor, for: .normal) 170 | galleryButton.backgroundColor = config.galleryButton.backgroundColor 171 | galleryButton.layer.cornerRadius = config.galleryButton.cornerRadius 172 | galleryButton.titleLabel?.font = config.galleryButton.font 173 | galleryButton.isHidden = config.galleryButton.isHidden 174 | galleryButton.addTarget(self, action: #selector(galleryButtonTapped), for: .touchUpInside) 175 | } 176 | 177 | private func configureQRCodeReader() { 178 | captureSession = AVCaptureSession() 179 | guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return } 180 | let videoInput: AVCaptureDeviceInput 181 | 182 | do { 183 | videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice) 184 | } catch { 185 | return 186 | } 187 | 188 | if captureSession.canAddInput(videoInput) { 189 | captureSession.addInput(videoInput) 190 | } else { 191 | captureSession = nil 192 | delegate?.qrCodeReaderFailed(self) 193 | return 194 | } 195 | 196 | if captureSession.canAddOutput(metadataOutput) { 197 | captureSession.addOutput(metadataOutput) 198 | metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) 199 | metadataOutput.metadataObjectTypes = [.qr] 200 | } else { 201 | captureSession = nil 202 | delegate?.qrCodeReaderFailed(self) 203 | return 204 | } 205 | 206 | previewLayer = QRCodeReaderPreviewLayer(session: captureSession, 207 | marginSize: config.previewLayer.marginSize, 208 | lineWidth: config.previewLayer.lineWidth, 209 | lineColor: config.previewLayer.lineColor, 210 | lineDashPattern: config.previewLayer.lineDashPattern, 211 | cornerRadiusSize: config.previewLayer.cornerRadius) 212 | previewLayer.frame = view.layer.bounds 213 | previewLayer.backgroundColor = config.previewLayer.backgroundColor 214 | previewLayer.videoGravity = .resizeAspectFill 215 | view.layer.addSublayer(previewLayer) 216 | 217 | view.bringSubviewToFront(closeButton) 218 | view.bringSubviewToFront(infoLabel) 219 | view.bringSubviewToFront(galleryButton) 220 | 221 | /// Captures only inside of reader square 222 | DispatchQueue.main.async { [weak self] in 223 | guard let self = self else { return } 224 | self.view.layoutIfNeeded() 225 | self.view.setNeedsLayout() 226 | self.metadataOutput.rectOfInterest = self.previewLayer.rectOfInterest 227 | } 228 | } 229 | } 230 | 231 | // MARK: - Actions 232 | extension QRCodeReaderViewController { 233 | 234 | @objc 235 | private func closeButtonTapped() { 236 | self.dismiss(animated: true) { [weak self] in 237 | guard let self = self else { return } 238 | self.delegate?.qrCodeReaderClosed(self) 239 | } 240 | } 241 | 242 | @objc 243 | private func galleryButtonTapped() { 244 | imagePicker.delegate = self 245 | imagePicker.sourceType = .photoLibrary 246 | present(imagePicker, animated: true, completion: nil) 247 | } 248 | } 249 | 250 | // MARK: - Check Camera Permission 251 | extension QRCodeReaderViewController { 252 | 253 | private func checkCameraPermission() { 254 | switch AVCaptureDevice.authorizationStatus(for: .video) { 255 | case .notDetermined: 256 | AVCaptureDevice.requestAccess(for: .video) { [weak self] granted in 257 | guard let self = self, !granted else { return } 258 | DispatchQueue.main.async { 259 | self.showOpenSettingsAlert() 260 | } 261 | } 262 | case .denied, .restricted: 263 | showOpenSettingsAlert() 264 | default: 265 | return 266 | } 267 | } 268 | 269 | private func showOpenSettingsAlert() { 270 | let alertController = UIAlertController (title: nil, message: config.settingsAlert.message, preferredStyle: .alert) 271 | let settingsAction = UIAlertAction(title: config.settingsAlert.actionButtonTitle, style: .default) { _ in 272 | 273 | guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else { return } 274 | if UIApplication.shared.canOpenURL(settingsUrl) { 275 | UIApplication.shared.open(settingsUrl, completionHandler: { (success) in 276 | print(success) 277 | }) 278 | } 279 | } 280 | let cancelAction = UIAlertAction(title: config.settingsAlert.cancelButtonTitle, style: .default, handler: nil) 281 | alertController.addAction(settingsAction) 282 | alertController.addAction(cancelAction) 283 | 284 | present(alertController, animated: true, completion: nil) 285 | } 286 | } 287 | 288 | // MARK: - AVCaptureMetadataOutputObjectsDelegate 289 | extension QRCodeReaderViewController: AVCaptureMetadataOutputObjectsDelegate { 290 | 291 | public func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) { 292 | captureSession.stopRunning() 293 | if let metadataObject = metadataObjects.first, 294 | metadataObject.type == .qr { 295 | let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject 296 | guard let qrCodeString = readableObject?.stringValue else { return } 297 | AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate)) 298 | self.dismissWithSuccess(qrCodeString: qrCodeString) 299 | } else { 300 | self.dismissWithFailed() 301 | } 302 | } 303 | } 304 | 305 | // MARK: - UIImagePickerControllerDelegate 306 | extension QRCodeReaderViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate { 307 | 308 | public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 309 | if let qrcodeImage = info[.originalImage] as? UIImage { 310 | if let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh]) { 311 | let ciImage = CIImage(image: qrcodeImage)! 312 | var qrCodeString = "" 313 | 314 | let features = detector.features(in: ciImage) 315 | for feature in features as! [CIQRCodeFeature] { 316 | qrCodeString += feature.messageString! 317 | } 318 | 319 | if qrCodeString.isEmpty { 320 | imagePicker.dismiss(animated: true, completion: { [weak self] in 321 | guard let self = self else { return } 322 | self.delegate?.qrCodeReaderFailed(self) 323 | }) 324 | } else { 325 | imagePicker.dismiss(animated: true, completion: { [weak self] in 326 | self?.dismissWithSuccess(qrCodeString: qrCodeString) 327 | }) 328 | } 329 | } 330 | } else { 331 | imagePicker.dismiss(animated: true, completion: { [weak self] in 332 | guard let self = self else { return } 333 | self.delegate?.qrCodeReaderFailed(self) 334 | }) 335 | } 336 | } 337 | } 338 | -------------------------------------------------------------------------------- /Example/MobilliumQRCodeReader.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 11 | 607FACD81AFB9204008FA782 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* HomeViewController.swift */; }; 12 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 13 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 14 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 15 | 7574D15A45BD6CFC71434284 /* Pods_MobilliumQRCodeReader_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E843C5E4C2311CAD99AE5B42 /* Pods_MobilliumQRCodeReader_Example.framework */; }; 16 | DEA7677D4B7FDBB7DEF6299E /* Pods_MobilliumQRCodeReader_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90B0394A676AF1ECEDA7A098 /* Pods_MobilliumQRCodeReader_Tests.framework */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXContainerItemProxy section */ 20 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 21 | isa = PBXContainerItemProxy; 22 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 23 | proxyType = 1; 24 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 25 | remoteInfo = MobilliumQRCodeReader; 26 | }; 27 | /* End PBXContainerItemProxy section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 0A1F4EE647DDA04AE0F59574 /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilliumQRCodeReader_Example.release.xcconfig"; path = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.release.xcconfig"; sourceTree = ""; }; 31 | 1566124522170AD0C469E473 /* MobilliumQRCodeReader.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = MobilliumQRCodeReader.podspec; path = ../MobilliumQRCodeReader.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 32 | 607FACD01AFB9204008FA782 /* MobilliumQRCodeReader_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MobilliumQRCodeReader_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 34 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 35 | 607FACD71AFB9204008FA782 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = ""; }; 36 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 37 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 38 | 607FACE51AFB9204008FA782 /* MobilliumQRCodeReader_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobilliumQRCodeReader_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 40 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 41 | 7F9B6CC76770B452DF79576F /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilliumQRCodeReader_Example.debug.xcconfig"; path = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.debug.xcconfig"; sourceTree = ""; }; 42 | 90B0394A676AF1ECEDA7A098 /* Pods_MobilliumQRCodeReader_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MobilliumQRCodeReader_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | BF6C5D3762F232393B3EF1C3 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilliumQRCodeReader_Tests.debug.xcconfig"; path = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.debug.xcconfig"; sourceTree = ""; }; 44 | DA3380020610746B645F84F1 /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilliumQRCodeReader_Tests.release.xcconfig"; path = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.release.xcconfig"; sourceTree = ""; }; 45 | E843C5E4C2311CAD99AE5B42 /* Pods_MobilliumQRCodeReader_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MobilliumQRCodeReader_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 46 | ECD2E5264C52028FC99FF5AD /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 47 | F36414921E49B2ECD69425EF /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 48 | /* End PBXFileReference section */ 49 | 50 | /* Begin PBXFrameworksBuildPhase section */ 51 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 52 | isa = PBXFrameworksBuildPhase; 53 | buildActionMask = 2147483647; 54 | files = ( 55 | 7574D15A45BD6CFC71434284 /* Pods_MobilliumQRCodeReader_Example.framework in Frameworks */, 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 60 | isa = PBXFrameworksBuildPhase; 61 | buildActionMask = 2147483647; 62 | files = ( 63 | DEA7677D4B7FDBB7DEF6299E /* Pods_MobilliumQRCodeReader_Tests.framework in Frameworks */, 64 | ); 65 | runOnlyForDeploymentPostprocessing = 0; 66 | }; 67 | /* End PBXFrameworksBuildPhase section */ 68 | 69 | /* Begin PBXGroup section */ 70 | 607FACC71AFB9204008FA782 = { 71 | isa = PBXGroup; 72 | children = ( 73 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 74 | 607FACD21AFB9204008FA782 /* Example for MobilliumQRCodeReader */, 75 | 607FACE81AFB9204008FA782 /* Tests */, 76 | 607FACD11AFB9204008FA782 /* Products */, 77 | 9F0FB1E1DC986B99F4E9B21E /* Pods */, 78 | A358F2A764C900C5A5A530E6 /* Frameworks */, 79 | ); 80 | sourceTree = ""; 81 | }; 82 | 607FACD11AFB9204008FA782 /* Products */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 607FACD01AFB9204008FA782 /* MobilliumQRCodeReader_Example.app */, 86 | 607FACE51AFB9204008FA782 /* MobilliumQRCodeReader_Tests.xctest */, 87 | ); 88 | name = Products; 89 | sourceTree = ""; 90 | }; 91 | 607FACD21AFB9204008FA782 /* Example for MobilliumQRCodeReader */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | A2C4F68B27F45C3600227D63 /* AppDelegate */, 95 | A2C4F68927F45BF200227D63 /* Scene */, 96 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 97 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 98 | 607FACD31AFB9204008FA782 /* Supporting Files */, 99 | ); 100 | name = "Example for MobilliumQRCodeReader"; 101 | path = MobilliumQRCodeReader; 102 | sourceTree = ""; 103 | }; 104 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | 607FACD41AFB9204008FA782 /* Info.plist */, 108 | ); 109 | name = "Supporting Files"; 110 | sourceTree = ""; 111 | }; 112 | 607FACE81AFB9204008FA782 /* Tests */ = { 113 | isa = PBXGroup; 114 | children = ( 115 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 116 | 607FACE91AFB9204008FA782 /* Supporting Files */, 117 | ); 118 | path = Tests; 119 | sourceTree = ""; 120 | }; 121 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | 607FACEA1AFB9204008FA782 /* Info.plist */, 125 | ); 126 | name = "Supporting Files"; 127 | sourceTree = ""; 128 | }; 129 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 130 | isa = PBXGroup; 131 | children = ( 132 | 1566124522170AD0C469E473 /* MobilliumQRCodeReader.podspec */, 133 | ECD2E5264C52028FC99FF5AD /* README.md */, 134 | F36414921E49B2ECD69425EF /* LICENSE */, 135 | ); 136 | name = "Podspec Metadata"; 137 | sourceTree = ""; 138 | }; 139 | 9F0FB1E1DC986B99F4E9B21E /* Pods */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | 7F9B6CC76770B452DF79576F /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */, 143 | 0A1F4EE647DDA04AE0F59574 /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */, 144 | BF6C5D3762F232393B3EF1C3 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */, 145 | DA3380020610746B645F84F1 /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */, 146 | ); 147 | path = Pods; 148 | sourceTree = ""; 149 | }; 150 | A2C4F68927F45BF200227D63 /* Scene */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | A2C4F68A27F45C1700227D63 /* Home */, 154 | ); 155 | name = Scene; 156 | sourceTree = ""; 157 | }; 158 | A2C4F68A27F45C1700227D63 /* Home */ = { 159 | isa = PBXGroup; 160 | children = ( 161 | 607FACD71AFB9204008FA782 /* HomeViewController.swift */, 162 | ); 163 | name = Home; 164 | sourceTree = ""; 165 | }; 166 | A2C4F68B27F45C3600227D63 /* AppDelegate */ = { 167 | isa = PBXGroup; 168 | children = ( 169 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 170 | ); 171 | name = AppDelegate; 172 | sourceTree = ""; 173 | }; 174 | A358F2A764C900C5A5A530E6 /* Frameworks */ = { 175 | isa = PBXGroup; 176 | children = ( 177 | E843C5E4C2311CAD99AE5B42 /* Pods_MobilliumQRCodeReader_Example.framework */, 178 | 90B0394A676AF1ECEDA7A098 /* Pods_MobilliumQRCodeReader_Tests.framework */, 179 | ); 180 | name = Frameworks; 181 | sourceTree = ""; 182 | }; 183 | /* End PBXGroup section */ 184 | 185 | /* Begin PBXNativeTarget section */ 186 | 607FACCF1AFB9204008FA782 /* MobilliumQRCodeReader_Example */ = { 187 | isa = PBXNativeTarget; 188 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader_Example" */; 189 | buildPhases = ( 190 | A8966AE892E2825930097CCC /* [CP] Check Pods Manifest.lock */, 191 | 607FACCC1AFB9204008FA782 /* Sources */, 192 | 607FACCD1AFB9204008FA782 /* Frameworks */, 193 | 607FACCE1AFB9204008FA782 /* Resources */, 194 | 0FA4FB08E5891D622F16A286 /* [CP] Embed Pods Frameworks */, 195 | ); 196 | buildRules = ( 197 | ); 198 | dependencies = ( 199 | ); 200 | name = MobilliumQRCodeReader_Example; 201 | productName = MobilliumQRCodeReader; 202 | productReference = 607FACD01AFB9204008FA782 /* MobilliumQRCodeReader_Example.app */; 203 | productType = "com.apple.product-type.application"; 204 | }; 205 | 607FACE41AFB9204008FA782 /* MobilliumQRCodeReader_Tests */ = { 206 | isa = PBXNativeTarget; 207 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader_Tests" */; 208 | buildPhases = ( 209 | 372A8E750762ED583C579B3C /* [CP] Check Pods Manifest.lock */, 210 | 607FACE11AFB9204008FA782 /* Sources */, 211 | 607FACE21AFB9204008FA782 /* Frameworks */, 212 | 607FACE31AFB9204008FA782 /* Resources */, 213 | ); 214 | buildRules = ( 215 | ); 216 | dependencies = ( 217 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 218 | ); 219 | name = MobilliumQRCodeReader_Tests; 220 | productName = Tests; 221 | productReference = 607FACE51AFB9204008FA782 /* MobilliumQRCodeReader_Tests.xctest */; 222 | productType = "com.apple.product-type.bundle.unit-test"; 223 | }; 224 | /* End PBXNativeTarget section */ 225 | 226 | /* Begin PBXProject section */ 227 | 607FACC81AFB9204008FA782 /* Project object */ = { 228 | isa = PBXProject; 229 | attributes = { 230 | LastSwiftUpdateCheck = 0830; 231 | LastUpgradeCheck = 1330; 232 | ORGANIZATIONNAME = CocoaPods; 233 | TargetAttributes = { 234 | 607FACCF1AFB9204008FA782 = { 235 | CreatedOnToolsVersion = 6.3.1; 236 | LastSwiftMigration = 1330; 237 | ProvisioningStyle = Manual; 238 | }; 239 | 607FACE41AFB9204008FA782 = { 240 | CreatedOnToolsVersion = 6.3.1; 241 | LastSwiftMigration = 1330; 242 | TestTargetID = 607FACCF1AFB9204008FA782; 243 | }; 244 | }; 245 | }; 246 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "MobilliumQRCodeReader" */; 247 | compatibilityVersion = "Xcode 3.2"; 248 | developmentRegion = en; 249 | hasScannedForEncodings = 0; 250 | knownRegions = ( 251 | en, 252 | Base, 253 | ); 254 | mainGroup = 607FACC71AFB9204008FA782; 255 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 256 | projectDirPath = ""; 257 | projectRoot = ""; 258 | targets = ( 259 | 607FACCF1AFB9204008FA782 /* MobilliumQRCodeReader_Example */, 260 | 607FACE41AFB9204008FA782 /* MobilliumQRCodeReader_Tests */, 261 | ); 262 | }; 263 | /* End PBXProject section */ 264 | 265 | /* Begin PBXResourcesBuildPhase section */ 266 | 607FACCE1AFB9204008FA782 /* Resources */ = { 267 | isa = PBXResourcesBuildPhase; 268 | buildActionMask = 2147483647; 269 | files = ( 270 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 271 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | 607FACE31AFB9204008FA782 /* Resources */ = { 276 | isa = PBXResourcesBuildPhase; 277 | buildActionMask = 2147483647; 278 | files = ( 279 | ); 280 | runOnlyForDeploymentPostprocessing = 0; 281 | }; 282 | /* End PBXResourcesBuildPhase section */ 283 | 284 | /* Begin PBXShellScriptBuildPhase section */ 285 | 0FA4FB08E5891D622F16A286 /* [CP] Embed Pods Frameworks */ = { 286 | isa = PBXShellScriptBuildPhase; 287 | buildActionMask = 2147483647; 288 | files = ( 289 | ); 290 | inputPaths = ( 291 | "${PODS_ROOT}/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-frameworks.sh", 292 | "${BUILT_PRODUCTS_DIR}/MobilliumQRCodeReader/MobilliumQRCodeReader.framework", 293 | ); 294 | name = "[CP] Embed Pods Frameworks"; 295 | outputPaths = ( 296 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilliumQRCodeReader.framework", 297 | ); 298 | runOnlyForDeploymentPostprocessing = 0; 299 | shellPath = /bin/sh; 300 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-frameworks.sh\"\n"; 301 | showEnvVarsInLog = 0; 302 | }; 303 | 372A8E750762ED583C579B3C /* [CP] Check Pods Manifest.lock */ = { 304 | isa = PBXShellScriptBuildPhase; 305 | buildActionMask = 2147483647; 306 | files = ( 307 | ); 308 | inputFileListPaths = ( 309 | ); 310 | inputPaths = ( 311 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 312 | "${PODS_ROOT}/Manifest.lock", 313 | ); 314 | name = "[CP] Check Pods Manifest.lock"; 315 | outputFileListPaths = ( 316 | ); 317 | outputPaths = ( 318 | "$(DERIVED_FILE_DIR)/Pods-MobilliumQRCodeReader_Tests-checkManifestLockResult.txt", 319 | ); 320 | runOnlyForDeploymentPostprocessing = 0; 321 | shellPath = /bin/sh; 322 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 323 | showEnvVarsInLog = 0; 324 | }; 325 | A8966AE892E2825930097CCC /* [CP] Check Pods Manifest.lock */ = { 326 | isa = PBXShellScriptBuildPhase; 327 | buildActionMask = 2147483647; 328 | files = ( 329 | ); 330 | inputFileListPaths = ( 331 | ); 332 | inputPaths = ( 333 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 334 | "${PODS_ROOT}/Manifest.lock", 335 | ); 336 | name = "[CP] Check Pods Manifest.lock"; 337 | outputFileListPaths = ( 338 | ); 339 | outputPaths = ( 340 | "$(DERIVED_FILE_DIR)/Pods-MobilliumQRCodeReader_Example-checkManifestLockResult.txt", 341 | ); 342 | runOnlyForDeploymentPostprocessing = 0; 343 | shellPath = /bin/sh; 344 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 345 | showEnvVarsInLog = 0; 346 | }; 347 | /* End PBXShellScriptBuildPhase section */ 348 | 349 | /* Begin PBXSourcesBuildPhase section */ 350 | 607FACCC1AFB9204008FA782 /* Sources */ = { 351 | isa = PBXSourcesBuildPhase; 352 | buildActionMask = 2147483647; 353 | files = ( 354 | 607FACD81AFB9204008FA782 /* HomeViewController.swift in Sources */, 355 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 356 | ); 357 | runOnlyForDeploymentPostprocessing = 0; 358 | }; 359 | 607FACE11AFB9204008FA782 /* Sources */ = { 360 | isa = PBXSourcesBuildPhase; 361 | buildActionMask = 2147483647; 362 | files = ( 363 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 364 | ); 365 | runOnlyForDeploymentPostprocessing = 0; 366 | }; 367 | /* End PBXSourcesBuildPhase section */ 368 | 369 | /* Begin PBXTargetDependency section */ 370 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 371 | isa = PBXTargetDependency; 372 | target = 607FACCF1AFB9204008FA782 /* MobilliumQRCodeReader_Example */; 373 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 374 | }; 375 | /* End PBXTargetDependency section */ 376 | 377 | /* Begin PBXVariantGroup section */ 378 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 379 | isa = PBXVariantGroup; 380 | children = ( 381 | 607FACDF1AFB9204008FA782 /* Base */, 382 | ); 383 | name = LaunchScreen.xib; 384 | sourceTree = ""; 385 | }; 386 | /* End PBXVariantGroup section */ 387 | 388 | /* Begin XCBuildConfiguration section */ 389 | 607FACED1AFB9204008FA782 /* Debug */ = { 390 | isa = XCBuildConfiguration; 391 | buildSettings = { 392 | ALWAYS_SEARCH_USER_PATHS = NO; 393 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 394 | CLANG_CXX_LIBRARY = "libc++"; 395 | CLANG_ENABLE_MODULES = YES; 396 | CLANG_ENABLE_OBJC_ARC = YES; 397 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 398 | CLANG_WARN_BOOL_CONVERSION = YES; 399 | CLANG_WARN_COMMA = YES; 400 | CLANG_WARN_CONSTANT_CONVERSION = YES; 401 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 402 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 403 | CLANG_WARN_EMPTY_BODY = YES; 404 | CLANG_WARN_ENUM_CONVERSION = YES; 405 | CLANG_WARN_INFINITE_RECURSION = YES; 406 | CLANG_WARN_INT_CONVERSION = YES; 407 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 408 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 409 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 410 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 411 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 412 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 413 | CLANG_WARN_STRICT_PROTOTYPES = YES; 414 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 415 | CLANG_WARN_UNREACHABLE_CODE = YES; 416 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 417 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 418 | COPY_PHASE_STRIP = NO; 419 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 420 | ENABLE_STRICT_OBJC_MSGSEND = YES; 421 | ENABLE_TESTABILITY = YES; 422 | GCC_C_LANGUAGE_STANDARD = gnu99; 423 | GCC_DYNAMIC_NO_PIC = NO; 424 | GCC_NO_COMMON_BLOCKS = YES; 425 | GCC_OPTIMIZATION_LEVEL = 0; 426 | GCC_PREPROCESSOR_DEFINITIONS = ( 427 | "DEBUG=1", 428 | "$(inherited)", 429 | ); 430 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 431 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 432 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 433 | GCC_WARN_UNDECLARED_SELECTOR = YES; 434 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 435 | GCC_WARN_UNUSED_FUNCTION = YES; 436 | GCC_WARN_UNUSED_VARIABLE = YES; 437 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 438 | MTL_ENABLE_DEBUG_INFO = YES; 439 | ONLY_ACTIVE_ARCH = YES; 440 | SDKROOT = iphoneos; 441 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 442 | }; 443 | name = Debug; 444 | }; 445 | 607FACEE1AFB9204008FA782 /* Release */ = { 446 | isa = XCBuildConfiguration; 447 | buildSettings = { 448 | ALWAYS_SEARCH_USER_PATHS = NO; 449 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 450 | CLANG_CXX_LIBRARY = "libc++"; 451 | CLANG_ENABLE_MODULES = YES; 452 | CLANG_ENABLE_OBJC_ARC = YES; 453 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 454 | CLANG_WARN_BOOL_CONVERSION = YES; 455 | CLANG_WARN_COMMA = YES; 456 | CLANG_WARN_CONSTANT_CONVERSION = YES; 457 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 458 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 459 | CLANG_WARN_EMPTY_BODY = YES; 460 | CLANG_WARN_ENUM_CONVERSION = YES; 461 | CLANG_WARN_INFINITE_RECURSION = YES; 462 | CLANG_WARN_INT_CONVERSION = YES; 463 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 464 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 465 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 466 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 467 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 468 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 469 | CLANG_WARN_STRICT_PROTOTYPES = YES; 470 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 471 | CLANG_WARN_UNREACHABLE_CODE = YES; 472 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 473 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 474 | COPY_PHASE_STRIP = NO; 475 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 476 | ENABLE_NS_ASSERTIONS = NO; 477 | ENABLE_STRICT_OBJC_MSGSEND = YES; 478 | GCC_C_LANGUAGE_STANDARD = gnu99; 479 | GCC_NO_COMMON_BLOCKS = YES; 480 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 481 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 482 | GCC_WARN_UNDECLARED_SELECTOR = YES; 483 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 484 | GCC_WARN_UNUSED_FUNCTION = YES; 485 | GCC_WARN_UNUSED_VARIABLE = YES; 486 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 487 | MTL_ENABLE_DEBUG_INFO = NO; 488 | SDKROOT = iphoneos; 489 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 490 | VALIDATE_PRODUCT = YES; 491 | }; 492 | name = Release; 493 | }; 494 | 607FACF01AFB9204008FA782 /* Debug */ = { 495 | isa = XCBuildConfiguration; 496 | baseConfigurationReference = 7F9B6CC76770B452DF79576F /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */; 497 | buildSettings = { 498 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 499 | CODE_SIGN_STYLE = Manual; 500 | DEVELOPMENT_TEAM = ""; 501 | INFOPLIST_FILE = MobilliumQRCodeReader/Info.plist; 502 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 503 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 504 | MODULE_NAME = ExampleApp; 505 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 506 | PRODUCT_NAME = "$(TARGET_NAME)"; 507 | PROVISIONING_PROFILE_SPECIFIER = ""; 508 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 509 | SWIFT_VERSION = 5.0; 510 | }; 511 | name = Debug; 512 | }; 513 | 607FACF11AFB9204008FA782 /* Release */ = { 514 | isa = XCBuildConfiguration; 515 | baseConfigurationReference = 0A1F4EE647DDA04AE0F59574 /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */; 516 | buildSettings = { 517 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 518 | CODE_SIGN_STYLE = Manual; 519 | DEVELOPMENT_TEAM = ""; 520 | INFOPLIST_FILE = MobilliumQRCodeReader/Info.plist; 521 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 522 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 523 | MODULE_NAME = ExampleApp; 524 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 525 | PRODUCT_NAME = "$(TARGET_NAME)"; 526 | PROVISIONING_PROFILE_SPECIFIER = ""; 527 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 528 | SWIFT_VERSION = 5.0; 529 | }; 530 | name = Release; 531 | }; 532 | 607FACF31AFB9204008FA782 /* Debug */ = { 533 | isa = XCBuildConfiguration; 534 | baseConfigurationReference = BF6C5D3762F232393B3EF1C3 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */; 535 | buildSettings = { 536 | FRAMEWORK_SEARCH_PATHS = ( 537 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 538 | "$(inherited)", 539 | ); 540 | GCC_PREPROCESSOR_DEFINITIONS = ( 541 | "DEBUG=1", 542 | "$(inherited)", 543 | ); 544 | INFOPLIST_FILE = Tests/Info.plist; 545 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 546 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 547 | PRODUCT_NAME = "$(TARGET_NAME)"; 548 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 549 | SWIFT_VERSION = 5.0; 550 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MobilliumQRCodeReader_Example.app/MobilliumQRCodeReader_Example"; 551 | }; 552 | name = Debug; 553 | }; 554 | 607FACF41AFB9204008FA782 /* Release */ = { 555 | isa = XCBuildConfiguration; 556 | baseConfigurationReference = DA3380020610746B645F84F1 /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */; 557 | buildSettings = { 558 | FRAMEWORK_SEARCH_PATHS = ( 559 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 560 | "$(inherited)", 561 | ); 562 | INFOPLIST_FILE = Tests/Info.plist; 563 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 564 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 565 | PRODUCT_NAME = "$(TARGET_NAME)"; 566 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 567 | SWIFT_VERSION = 5.0; 568 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MobilliumQRCodeReader_Example.app/MobilliumQRCodeReader_Example"; 569 | }; 570 | name = Release; 571 | }; 572 | /* End XCBuildConfiguration section */ 573 | 574 | /* Begin XCConfigurationList section */ 575 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "MobilliumQRCodeReader" */ = { 576 | isa = XCConfigurationList; 577 | buildConfigurations = ( 578 | 607FACED1AFB9204008FA782 /* Debug */, 579 | 607FACEE1AFB9204008FA782 /* Release */, 580 | ); 581 | defaultConfigurationIsVisible = 0; 582 | defaultConfigurationName = Release; 583 | }; 584 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader_Example" */ = { 585 | isa = XCConfigurationList; 586 | buildConfigurations = ( 587 | 607FACF01AFB9204008FA782 /* Debug */, 588 | 607FACF11AFB9204008FA782 /* Release */, 589 | ); 590 | defaultConfigurationIsVisible = 0; 591 | defaultConfigurationName = Release; 592 | }; 593 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader_Tests" */ = { 594 | isa = XCConfigurationList; 595 | buildConfigurations = ( 596 | 607FACF31AFB9204008FA782 /* Debug */, 597 | 607FACF41AFB9204008FA782 /* Release */, 598 | ); 599 | defaultConfigurationIsVisible = 0; 600 | defaultConfigurationName = Release; 601 | }; 602 | /* End XCConfigurationList section */ 603 | }; 604 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 605 | } 606 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 01B67D4BBB39759F237DCE459D7278BC /* MobilliumQRCodeReader-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D26342135563DC27E6BF59B7F062D0 /* MobilliumQRCodeReader-dummy.m */; }; 11 | 0BA68A8288EDA034519194A8AE1D46C7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 12 | 10324C8AED4A1E88ADE429F453EA85AB /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2130BB0D4AEBB3334EA56A9482C3A284 /* Icons.xcassets */; }; 13 | 2E3846CD92EE96004B3FED116DE898CD /* QRCodeReaderPreviewLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB7FC517B9E17A8B697827F0EABC172 /* QRCodeReaderPreviewLayer.swift */; }; 14 | 32025AC742B7C438EB0017DEBEE781B8 /* Pods-MobilliumQRCodeReader_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 54B4119D1EA97CB94E88BABBA40EE501 /* Pods-MobilliumQRCodeReader_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15 | 4C44DFA367161FAD3269F0D215EDC8B1 /* MobilliumQRCodeReader-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB6AC99ADA2310139AB8E9A51BCF340 /* MobilliumQRCodeReader-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 16 | 58E4366F23BBADB167E7F4DE26D13BF1 /* Pods-MobilliumQRCodeReader_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ECE5D786B52D306D72ACFD69E1BA24BC /* Pods-MobilliumQRCodeReader_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | 682CF0EFDDF64A583337ED71103EE964 /* QRCodeReaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1145E2656C53EA2845B0E2E42ED40F60 /* QRCodeReaderViewController.swift */; }; 18 | 9909B96944826690ADE8ABFA7DA9A1AE /* QRCodeReaderConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE0610B978491272D151D25EA28243BD /* QRCodeReaderConfig.swift */; }; 19 | A20A5FE5D42E00D654F653F4B013FEC3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 20 | E0D54F0085251678C9910068FE15EFA1 /* ImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064C5B20896CB6BA52B4D063A7591E07 /* ImageProvider.swift */; }; 21 | E287F5BF5C0CE855E84A0CD107C4A971 /* Pods-MobilliumQRCodeReader_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5983AA299B8BC8A8397E5C377FAF0C02 /* Pods-MobilliumQRCodeReader_Example-dummy.m */; }; 22 | E4C815C51AC7B621D3723C52650C8812 /* Pods-MobilliumQRCodeReader_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 013E7E052739BEBAA81F7631955A8B80 /* Pods-MobilliumQRCodeReader_Tests-dummy.m */; }; 23 | E896E723AA1C65E3051BAB0C26CAAFF4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXContainerItemProxy section */ 27 | 001038ADBB9B57CC61692F10FC35B35A /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 30 | proxyType = 1; 31 | remoteGlobalIDString = E4EB41D67DECEB5A7A498CB7B4CD94A7; 32 | remoteInfo = "Pods-MobilliumQRCodeReader_Example"; 33 | }; 34 | FBE271088618B599606E9E4538DC34F4 /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = C2D598EB705C8719CB9B04FEF15443B2; 39 | remoteInfo = MobilliumQRCodeReader; 40 | }; 41 | /* End PBXContainerItemProxy section */ 42 | 43 | /* Begin PBXFileReference section */ 44 | 013E7E052739BEBAA81F7631955A8B80 /* Pods-MobilliumQRCodeReader_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobilliumQRCodeReader_Tests-dummy.m"; sourceTree = ""; }; 45 | 064C5B20896CB6BA52B4D063A7591E07 /* ImageProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProvider.swift; path = Sources/MobilliumQRCodeReader/Classes/ImageProvider.swift; sourceTree = ""; }; 46 | 0AE399027E769EB99DDBCD0C40F37380 /* Pods-MobilliumQRCodeReader_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobilliumQRCodeReader_Example-acknowledgements.plist"; sourceTree = ""; }; 47 | 0E89668BE98959B2428583AB9402C175 /* MobilliumQRCodeReader-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MobilliumQRCodeReader-Info.plist"; sourceTree = ""; }; 48 | 1145E2656C53EA2845B0E2E42ED40F60 /* QRCodeReaderViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QRCodeReaderViewController.swift; path = Sources/MobilliumQRCodeReader/Classes/QRCodeReaderViewController.swift; sourceTree = ""; }; 49 | 11D8DD23BB61E2D4B8132D71E793D4B3 /* Pods-MobilliumQRCodeReader_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobilliumQRCodeReader_Tests.modulemap"; sourceTree = ""; }; 50 | 1EB7FC517B9E17A8B697827F0EABC172 /* QRCodeReaderPreviewLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QRCodeReaderPreviewLayer.swift; path = Sources/MobilliumQRCodeReader/Classes/QRCodeReaderPreviewLayer.swift; sourceTree = ""; }; 51 | 2130BB0D4AEBB3334EA56A9482C3A284 /* Icons.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Icons.xcassets; path = Sources/MobilliumQRCodeReader/Assets/Icons.xcassets; sourceTree = ""; }; 52 | 27EABA2C79D38114815EA1FF75BFDB7F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 53 | 306A41DD8409B7F72753C233EDA2132E /* Pods-MobilliumQRCodeReader_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobilliumQRCodeReader_Example.modulemap"; sourceTree = ""; }; 54 | 38F0F0AEFA9F70DA42FD16EBC6C06B10 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobilliumQRCodeReader_Tests.debug.xcconfig"; sourceTree = ""; }; 55 | 452F28776C2B37CE3F636D8FC9DB0660 /* MobilliumQRCodeReader.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MobilliumQRCodeReader.modulemap; sourceTree = ""; }; 56 | 54B4119D1EA97CB94E88BABBA40EE501 /* Pods-MobilliumQRCodeReader_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobilliumQRCodeReader_Example-umbrella.h"; sourceTree = ""; }; 57 | 5983AA299B8BC8A8397E5C377FAF0C02 /* Pods-MobilliumQRCodeReader_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobilliumQRCodeReader_Example-dummy.m"; sourceTree = ""; }; 58 | 5E9D2330EBBD7E5EACD96F5090D46441 /* Pods-MobilliumQRCodeReader_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobilliumQRCodeReader_Example-frameworks.sh"; sourceTree = ""; }; 59 | 6252D211381519E39A1518A86E037E3A /* Pods-MobilliumQRCodeReader_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobilliumQRCodeReader_Tests-acknowledgements.markdown"; sourceTree = ""; }; 60 | 62A94241FE0A32A7D2CCBE784E9594C3 /* MobilliumQRCodeReader */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MobilliumQRCodeReader; path = MobilliumQRCodeReader.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 61 | 6D96DDFAF2D3FE61330A7233B2572D0F /* Pods-MobilliumQRCodeReader_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobilliumQRCodeReader_Tests-Info.plist"; sourceTree = ""; }; 62 | 6EA888ECE34BE58D8BA645D78ABCFF6A /* MobilliumQRCodeReader.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MobilliumQRCodeReader.debug.xcconfig; sourceTree = ""; }; 63 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 64 | 7DB6AC99ADA2310139AB8E9A51BCF340 /* MobilliumQRCodeReader-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MobilliumQRCodeReader-umbrella.h"; sourceTree = ""; }; 65 | 8D54A7A2AA29672E49EAB7D553A2B757 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; 66 | 8FAA46CAD9C9A5D976A92D874004D0E7 /* Pods-MobilliumQRCodeReader_Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-MobilliumQRCodeReader_Tests"; path = Pods_MobilliumQRCodeReader_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 96F9DC3193269D5F223A4254CE35F9C3 /* Pods-MobilliumQRCodeReader_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobilliumQRCodeReader_Example-Info.plist"; sourceTree = ""; }; 68 | 9C27DE4AA2FCE8C2250FA7556EB41C3B /* Pods-MobilliumQRCodeReader_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-MobilliumQRCodeReader_Example"; path = Pods_MobilliumQRCodeReader_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 69 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 70 | A8A371BFCF6B602366A808F937BBFD07 /* MobilliumQRCodeReader.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = MobilliumQRCodeReader.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 71 | B3D68B99F97DC01D3A729467F7B570ED /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobilliumQRCodeReader_Example.release.xcconfig"; sourceTree = ""; }; 72 | B6C95008A0066429399D2FB457B26CAB /* Pods-MobilliumQRCodeReader_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobilliumQRCodeReader_Tests-acknowledgements.plist"; sourceTree = ""; }; 73 | C3D26342135563DC27E6BF59B7F062D0 /* MobilliumQRCodeReader-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MobilliumQRCodeReader-dummy.m"; sourceTree = ""; }; 74 | C5050D7B8966BA8F5C3D817CDF295F0D /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobilliumQRCodeReader_Tests.release.xcconfig"; sourceTree = ""; }; 75 | CE0610B978491272D151D25EA28243BD /* QRCodeReaderConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QRCodeReaderConfig.swift; path = Sources/MobilliumQRCodeReader/Classes/QRCodeReaderConfig.swift; sourceTree = ""; }; 76 | CF98E4E7A0750A8D38735EB2AA97B101 /* MobilliumQRCodeReader.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MobilliumQRCodeReader.release.xcconfig; sourceTree = ""; }; 77 | D0441276C081AFED54E54449F1FCC443 /* Pods-MobilliumQRCodeReader_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobilliumQRCodeReader_Example-acknowledgements.markdown"; sourceTree = ""; }; 78 | D4FDD8B94E09F91310D30F094AA3F489 /* MobilliumQRCodeReader-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MobilliumQRCodeReader-prefix.pch"; sourceTree = ""; }; 79 | ECE5D786B52D306D72ACFD69E1BA24BC /* Pods-MobilliumQRCodeReader_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobilliumQRCodeReader_Tests-umbrella.h"; sourceTree = ""; }; 80 | F2522D38C1BA0148BB061EB89B8B26A5 /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobilliumQRCodeReader_Example.debug.xcconfig"; sourceTree = ""; }; 81 | /* End PBXFileReference section */ 82 | 83 | /* Begin PBXFrameworksBuildPhase section */ 84 | 392B37EC8C4EB0ED1185435207A64439 /* Frameworks */ = { 85 | isa = PBXFrameworksBuildPhase; 86 | buildActionMask = 2147483647; 87 | files = ( 88 | A20A5FE5D42E00D654F653F4B013FEC3 /* Foundation.framework in Frameworks */, 89 | ); 90 | runOnlyForDeploymentPostprocessing = 0; 91 | }; 92 | 4B25645F8D40755A2519EF56B3339510 /* Frameworks */ = { 93 | isa = PBXFrameworksBuildPhase; 94 | buildActionMask = 2147483647; 95 | files = ( 96 | E896E723AA1C65E3051BAB0C26CAAFF4 /* Foundation.framework in Frameworks */, 97 | ); 98 | runOnlyForDeploymentPostprocessing = 0; 99 | }; 100 | EB24B4DA5E7226330FF056F2F0592956 /* Frameworks */ = { 101 | isa = PBXFrameworksBuildPhase; 102 | buildActionMask = 2147483647; 103 | files = ( 104 | 0BA68A8288EDA034519194A8AE1D46C7 /* Foundation.framework in Frameworks */, 105 | ); 106 | runOnlyForDeploymentPostprocessing = 0; 107 | }; 108 | /* End PBXFrameworksBuildPhase section */ 109 | 110 | /* Begin PBXGroup section */ 111 | 2E4D9E75285ABB0AC90B5A9A161BE9CF /* MobilliumQRCodeReader */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | 2130BB0D4AEBB3334EA56A9482C3A284 /* Icons.xcassets */, 115 | 064C5B20896CB6BA52B4D063A7591E07 /* ImageProvider.swift */, 116 | CE0610B978491272D151D25EA28243BD /* QRCodeReaderConfig.swift */, 117 | 1EB7FC517B9E17A8B697827F0EABC172 /* QRCodeReaderPreviewLayer.swift */, 118 | 1145E2656C53EA2845B0E2E42ED40F60 /* QRCodeReaderViewController.swift */, 119 | 9842E50A07F233DD9022CC833B7110E5 /* Pod */, 120 | 41E6629612C43E0B90C09F18C3DA13E9 /* Support Files */, 121 | ); 122 | name = MobilliumQRCodeReader; 123 | path = ../..; 124 | sourceTree = ""; 125 | }; 126 | 41E6629612C43E0B90C09F18C3DA13E9 /* Support Files */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | 452F28776C2B37CE3F636D8FC9DB0660 /* MobilliumQRCodeReader.modulemap */, 130 | C3D26342135563DC27E6BF59B7F062D0 /* MobilliumQRCodeReader-dummy.m */, 131 | 0E89668BE98959B2428583AB9402C175 /* MobilliumQRCodeReader-Info.plist */, 132 | D4FDD8B94E09F91310D30F094AA3F489 /* MobilliumQRCodeReader-prefix.pch */, 133 | 7DB6AC99ADA2310139AB8E9A51BCF340 /* MobilliumQRCodeReader-umbrella.h */, 134 | 6EA888ECE34BE58D8BA645D78ABCFF6A /* MobilliumQRCodeReader.debug.xcconfig */, 135 | CF98E4E7A0750A8D38735EB2AA97B101 /* MobilliumQRCodeReader.release.xcconfig */, 136 | ); 137 | name = "Support Files"; 138 | path = "Example/Pods/Target Support Files/MobilliumQRCodeReader"; 139 | sourceTree = ""; 140 | }; 141 | 578452D2E740E91742655AC8F1636D1F /* iOS */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, 145 | ); 146 | name = iOS; 147 | sourceTree = ""; 148 | }; 149 | 6870E033F26222441A384C178A4ECCAA /* Targets Support Files */ = { 150 | isa = PBXGroup; 151 | children = ( 152 | B769CD12AF16D90D5F3A39B695386BD3 /* Pods-MobilliumQRCodeReader_Example */, 153 | FB447E4148C8EBF9FF9EB2D22DFD98E2 /* Pods-MobilliumQRCodeReader_Tests */, 154 | ); 155 | name = "Targets Support Files"; 156 | sourceTree = ""; 157 | }; 158 | 8C04A746A30BD5B06891247BD2450ABD /* Development Pods */ = { 159 | isa = PBXGroup; 160 | children = ( 161 | 2E4D9E75285ABB0AC90B5A9A161BE9CF /* MobilliumQRCodeReader */, 162 | ); 163 | name = "Development Pods"; 164 | sourceTree = ""; 165 | }; 166 | 9842E50A07F233DD9022CC833B7110E5 /* Pod */ = { 167 | isa = PBXGroup; 168 | children = ( 169 | 8D54A7A2AA29672E49EAB7D553A2B757 /* LICENSE */, 170 | A8A371BFCF6B602366A808F937BBFD07 /* MobilliumQRCodeReader.podspec */, 171 | 27EABA2C79D38114815EA1FF75BFDB7F /* README.md */, 172 | ); 173 | name = Pod; 174 | sourceTree = ""; 175 | }; 176 | B769CD12AF16D90D5F3A39B695386BD3 /* Pods-MobilliumQRCodeReader_Example */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | 306A41DD8409B7F72753C233EDA2132E /* Pods-MobilliumQRCodeReader_Example.modulemap */, 180 | D0441276C081AFED54E54449F1FCC443 /* Pods-MobilliumQRCodeReader_Example-acknowledgements.markdown */, 181 | 0AE399027E769EB99DDBCD0C40F37380 /* Pods-MobilliumQRCodeReader_Example-acknowledgements.plist */, 182 | 5983AA299B8BC8A8397E5C377FAF0C02 /* Pods-MobilliumQRCodeReader_Example-dummy.m */, 183 | 5E9D2330EBBD7E5EACD96F5090D46441 /* Pods-MobilliumQRCodeReader_Example-frameworks.sh */, 184 | 96F9DC3193269D5F223A4254CE35F9C3 /* Pods-MobilliumQRCodeReader_Example-Info.plist */, 185 | 54B4119D1EA97CB94E88BABBA40EE501 /* Pods-MobilliumQRCodeReader_Example-umbrella.h */, 186 | F2522D38C1BA0148BB061EB89B8B26A5 /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */, 187 | B3D68B99F97DC01D3A729467F7B570ED /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */, 188 | ); 189 | name = "Pods-MobilliumQRCodeReader_Example"; 190 | path = "Target Support Files/Pods-MobilliumQRCodeReader_Example"; 191 | sourceTree = ""; 192 | }; 193 | CF1408CF629C7361332E53B88F7BD30C = { 194 | isa = PBXGroup; 195 | children = ( 196 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 197 | 8C04A746A30BD5B06891247BD2450ABD /* Development Pods */, 198 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 199 | DE20B7F0CBD2DF53A38FFA0B75B13411 /* Products */, 200 | 6870E033F26222441A384C178A4ECCAA /* Targets Support Files */, 201 | ); 202 | sourceTree = ""; 203 | }; 204 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { 205 | isa = PBXGroup; 206 | children = ( 207 | 578452D2E740E91742655AC8F1636D1F /* iOS */, 208 | ); 209 | name = Frameworks; 210 | sourceTree = ""; 211 | }; 212 | DE20B7F0CBD2DF53A38FFA0B75B13411 /* Products */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | 62A94241FE0A32A7D2CCBE784E9594C3 /* MobilliumQRCodeReader */, 216 | 9C27DE4AA2FCE8C2250FA7556EB41C3B /* Pods-MobilliumQRCodeReader_Example */, 217 | 8FAA46CAD9C9A5D976A92D874004D0E7 /* Pods-MobilliumQRCodeReader_Tests */, 218 | ); 219 | name = Products; 220 | sourceTree = ""; 221 | }; 222 | FB447E4148C8EBF9FF9EB2D22DFD98E2 /* Pods-MobilliumQRCodeReader_Tests */ = { 223 | isa = PBXGroup; 224 | children = ( 225 | 11D8DD23BB61E2D4B8132D71E793D4B3 /* Pods-MobilliumQRCodeReader_Tests.modulemap */, 226 | 6252D211381519E39A1518A86E037E3A /* Pods-MobilliumQRCodeReader_Tests-acknowledgements.markdown */, 227 | B6C95008A0066429399D2FB457B26CAB /* Pods-MobilliumQRCodeReader_Tests-acknowledgements.plist */, 228 | 013E7E052739BEBAA81F7631955A8B80 /* Pods-MobilliumQRCodeReader_Tests-dummy.m */, 229 | 6D96DDFAF2D3FE61330A7233B2572D0F /* Pods-MobilliumQRCodeReader_Tests-Info.plist */, 230 | ECE5D786B52D306D72ACFD69E1BA24BC /* Pods-MobilliumQRCodeReader_Tests-umbrella.h */, 231 | 38F0F0AEFA9F70DA42FD16EBC6C06B10 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */, 232 | C5050D7B8966BA8F5C3D817CDF295F0D /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */, 233 | ); 234 | name = "Pods-MobilliumQRCodeReader_Tests"; 235 | path = "Target Support Files/Pods-MobilliumQRCodeReader_Tests"; 236 | sourceTree = ""; 237 | }; 238 | /* End PBXGroup section */ 239 | 240 | /* Begin PBXHeadersBuildPhase section */ 241 | 05EF02BF63BEBD1AB4A77756C9CBB946 /* Headers */ = { 242 | isa = PBXHeadersBuildPhase; 243 | buildActionMask = 2147483647; 244 | files = ( 245 | 58E4366F23BBADB167E7F4DE26D13BF1 /* Pods-MobilliumQRCodeReader_Tests-umbrella.h in Headers */, 246 | ); 247 | runOnlyForDeploymentPostprocessing = 0; 248 | }; 249 | 7B25735D89BEEA5DF3100212FEBF2D45 /* Headers */ = { 250 | isa = PBXHeadersBuildPhase; 251 | buildActionMask = 2147483647; 252 | files = ( 253 | 32025AC742B7C438EB0017DEBEE781B8 /* Pods-MobilliumQRCodeReader_Example-umbrella.h in Headers */, 254 | ); 255 | runOnlyForDeploymentPostprocessing = 0; 256 | }; 257 | A55F3469BAB31ED43D34687916A4A413 /* Headers */ = { 258 | isa = PBXHeadersBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | 4C44DFA367161FAD3269F0D215EDC8B1 /* MobilliumQRCodeReader-umbrella.h in Headers */, 262 | ); 263 | runOnlyForDeploymentPostprocessing = 0; 264 | }; 265 | /* End PBXHeadersBuildPhase section */ 266 | 267 | /* Begin PBXNativeTarget section */ 268 | C2D598EB705C8719CB9B04FEF15443B2 /* MobilliumQRCodeReader */ = { 269 | isa = PBXNativeTarget; 270 | buildConfigurationList = FABB28F0C451755410ABF1617B9087E8 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader" */; 271 | buildPhases = ( 272 | A55F3469BAB31ED43D34687916A4A413 /* Headers */, 273 | B827C5D1BC9D610CAB22FDDD6211AF8E /* Sources */, 274 | 392B37EC8C4EB0ED1185435207A64439 /* Frameworks */, 275 | 3E48F620A8B94568D3A81246089DD1D2 /* Resources */, 276 | ); 277 | buildRules = ( 278 | ); 279 | dependencies = ( 280 | ); 281 | name = MobilliumQRCodeReader; 282 | productName = MobilliumQRCodeReader; 283 | productReference = 62A94241FE0A32A7D2CCBE784E9594C3 /* MobilliumQRCodeReader */; 284 | productType = "com.apple.product-type.framework"; 285 | }; 286 | E4EB41D67DECEB5A7A498CB7B4CD94A7 /* Pods-MobilliumQRCodeReader_Example */ = { 287 | isa = PBXNativeTarget; 288 | buildConfigurationList = A37BB8E406E984858B0CBD65BF575614 /* Build configuration list for PBXNativeTarget "Pods-MobilliumQRCodeReader_Example" */; 289 | buildPhases = ( 290 | 7B25735D89BEEA5DF3100212FEBF2D45 /* Headers */, 291 | A9CAAB629F752A481ECC17336B7703F0 /* Sources */, 292 | 4B25645F8D40755A2519EF56B3339510 /* Frameworks */, 293 | F341318123F557BB4A3CA603034C3607 /* Resources */, 294 | ); 295 | buildRules = ( 296 | ); 297 | dependencies = ( 298 | 3788A3FC61344FB1E197775D09B5F7CC /* PBXTargetDependency */, 299 | ); 300 | name = "Pods-MobilliumQRCodeReader_Example"; 301 | productName = Pods_MobilliumQRCodeReader_Example; 302 | productReference = 9C27DE4AA2FCE8C2250FA7556EB41C3B /* Pods-MobilliumQRCodeReader_Example */; 303 | productType = "com.apple.product-type.framework"; 304 | }; 305 | EA25772E95115F7B84F863E2F3864101 /* Pods-MobilliumQRCodeReader_Tests */ = { 306 | isa = PBXNativeTarget; 307 | buildConfigurationList = 72DAA714B46555355BFFAFCEC03C9C2B /* Build configuration list for PBXNativeTarget "Pods-MobilliumQRCodeReader_Tests" */; 308 | buildPhases = ( 309 | 05EF02BF63BEBD1AB4A77756C9CBB946 /* Headers */, 310 | D8B1738B8C1C872449A50AD410D0DC04 /* Sources */, 311 | EB24B4DA5E7226330FF056F2F0592956 /* Frameworks */, 312 | C3FA9FAB5D2EAE0542120463D5F3C4C8 /* Resources */, 313 | ); 314 | buildRules = ( 315 | ); 316 | dependencies = ( 317 | 3B864697E4610CC37275641B2A9573EE /* PBXTargetDependency */, 318 | ); 319 | name = "Pods-MobilliumQRCodeReader_Tests"; 320 | productName = Pods_MobilliumQRCodeReader_Tests; 321 | productReference = 8FAA46CAD9C9A5D976A92D874004D0E7 /* Pods-MobilliumQRCodeReader_Tests */; 322 | productType = "com.apple.product-type.framework"; 323 | }; 324 | /* End PBXNativeTarget section */ 325 | 326 | /* Begin PBXProject section */ 327 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 328 | isa = PBXProject; 329 | attributes = { 330 | LastSwiftUpdateCheck = 1240; 331 | LastUpgradeCheck = 1240; 332 | }; 333 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 334 | compatibilityVersion = "Xcode 3.2"; 335 | developmentRegion = en; 336 | hasScannedForEncodings = 0; 337 | knownRegions = ( 338 | Base, 339 | en, 340 | ); 341 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 342 | productRefGroup = DE20B7F0CBD2DF53A38FFA0B75B13411 /* Products */; 343 | projectDirPath = ""; 344 | projectRoot = ""; 345 | targets = ( 346 | C2D598EB705C8719CB9B04FEF15443B2 /* MobilliumQRCodeReader */, 347 | E4EB41D67DECEB5A7A498CB7B4CD94A7 /* Pods-MobilliumQRCodeReader_Example */, 348 | EA25772E95115F7B84F863E2F3864101 /* Pods-MobilliumQRCodeReader_Tests */, 349 | ); 350 | }; 351 | /* End PBXProject section */ 352 | 353 | /* Begin PBXResourcesBuildPhase section */ 354 | 3E48F620A8B94568D3A81246089DD1D2 /* Resources */ = { 355 | isa = PBXResourcesBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | 10324C8AED4A1E88ADE429F453EA85AB /* Icons.xcassets in Resources */, 359 | ); 360 | runOnlyForDeploymentPostprocessing = 0; 361 | }; 362 | C3FA9FAB5D2EAE0542120463D5F3C4C8 /* Resources */ = { 363 | isa = PBXResourcesBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | ); 367 | runOnlyForDeploymentPostprocessing = 0; 368 | }; 369 | F341318123F557BB4A3CA603034C3607 /* Resources */ = { 370 | isa = PBXResourcesBuildPhase; 371 | buildActionMask = 2147483647; 372 | files = ( 373 | ); 374 | runOnlyForDeploymentPostprocessing = 0; 375 | }; 376 | /* End PBXResourcesBuildPhase section */ 377 | 378 | /* Begin PBXSourcesBuildPhase section */ 379 | A9CAAB629F752A481ECC17336B7703F0 /* Sources */ = { 380 | isa = PBXSourcesBuildPhase; 381 | buildActionMask = 2147483647; 382 | files = ( 383 | E287F5BF5C0CE855E84A0CD107C4A971 /* Pods-MobilliumQRCodeReader_Example-dummy.m in Sources */, 384 | ); 385 | runOnlyForDeploymentPostprocessing = 0; 386 | }; 387 | B827C5D1BC9D610CAB22FDDD6211AF8E /* Sources */ = { 388 | isa = PBXSourcesBuildPhase; 389 | buildActionMask = 2147483647; 390 | files = ( 391 | E0D54F0085251678C9910068FE15EFA1 /* ImageProvider.swift in Sources */, 392 | 01B67D4BBB39759F237DCE459D7278BC /* MobilliumQRCodeReader-dummy.m in Sources */, 393 | 9909B96944826690ADE8ABFA7DA9A1AE /* QRCodeReaderConfig.swift in Sources */, 394 | 2E3846CD92EE96004B3FED116DE898CD /* QRCodeReaderPreviewLayer.swift in Sources */, 395 | 682CF0EFDDF64A583337ED71103EE964 /* QRCodeReaderViewController.swift in Sources */, 396 | ); 397 | runOnlyForDeploymentPostprocessing = 0; 398 | }; 399 | D8B1738B8C1C872449A50AD410D0DC04 /* Sources */ = { 400 | isa = PBXSourcesBuildPhase; 401 | buildActionMask = 2147483647; 402 | files = ( 403 | E4C815C51AC7B621D3723C52650C8812 /* Pods-MobilliumQRCodeReader_Tests-dummy.m in Sources */, 404 | ); 405 | runOnlyForDeploymentPostprocessing = 0; 406 | }; 407 | /* End PBXSourcesBuildPhase section */ 408 | 409 | /* Begin PBXTargetDependency section */ 410 | 3788A3FC61344FB1E197775D09B5F7CC /* PBXTargetDependency */ = { 411 | isa = PBXTargetDependency; 412 | name = MobilliumQRCodeReader; 413 | target = C2D598EB705C8719CB9B04FEF15443B2 /* MobilliumQRCodeReader */; 414 | targetProxy = FBE271088618B599606E9E4538DC34F4 /* PBXContainerItemProxy */; 415 | }; 416 | 3B864697E4610CC37275641B2A9573EE /* PBXTargetDependency */ = { 417 | isa = PBXTargetDependency; 418 | name = "Pods-MobilliumQRCodeReader_Example"; 419 | target = E4EB41D67DECEB5A7A498CB7B4CD94A7 /* Pods-MobilliumQRCodeReader_Example */; 420 | targetProxy = 001038ADBB9B57CC61692F10FC35B35A /* PBXContainerItemProxy */; 421 | }; 422 | /* End PBXTargetDependency section */ 423 | 424 | /* Begin XCBuildConfiguration section */ 425 | 81B709FF305A186B589FBDED898E96D6 /* Release */ = { 426 | isa = XCBuildConfiguration; 427 | baseConfigurationReference = C5050D7B8966BA8F5C3D817CDF295F0D /* Pods-MobilliumQRCodeReader_Tests.release.xcconfig */; 428 | buildSettings = { 429 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 430 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 431 | CLANG_ENABLE_OBJC_WEAK = NO; 432 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 433 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 434 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 435 | CURRENT_PROJECT_VERSION = 1; 436 | DEFINES_MODULE = YES; 437 | DYLIB_COMPATIBILITY_VERSION = 1; 438 | DYLIB_CURRENT_VERSION = 1; 439 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 440 | INFOPLIST_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-Info.plist"; 441 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 442 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 443 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 444 | MACH_O_TYPE = staticlib; 445 | MODULEMAP_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.modulemap"; 446 | OTHER_LDFLAGS = ""; 447 | OTHER_LIBTOOLFLAGS = ""; 448 | PODS_ROOT = "$(SRCROOT)"; 449 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 450 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 451 | SDKROOT = iphoneos; 452 | SKIP_INSTALL = YES; 453 | TARGETED_DEVICE_FAMILY = "1,2"; 454 | VALIDATE_PRODUCT = YES; 455 | VERSIONING_SYSTEM = "apple-generic"; 456 | VERSION_INFO_PREFIX = ""; 457 | }; 458 | name = Release; 459 | }; 460 | 903A0004D3E6651EFD5D2E16214D101B /* Release */ = { 461 | isa = XCBuildConfiguration; 462 | buildSettings = { 463 | ALWAYS_SEARCH_USER_PATHS = NO; 464 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 465 | CLANG_ANALYZER_NONNULL = YES; 466 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 467 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 468 | CLANG_CXX_LIBRARY = "libc++"; 469 | CLANG_ENABLE_MODULES = YES; 470 | CLANG_ENABLE_OBJC_ARC = YES; 471 | CLANG_ENABLE_OBJC_WEAK = YES; 472 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 473 | CLANG_WARN_BOOL_CONVERSION = YES; 474 | CLANG_WARN_COMMA = YES; 475 | CLANG_WARN_CONSTANT_CONVERSION = YES; 476 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 477 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 478 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 479 | CLANG_WARN_EMPTY_BODY = YES; 480 | CLANG_WARN_ENUM_CONVERSION = YES; 481 | CLANG_WARN_INFINITE_RECURSION = YES; 482 | CLANG_WARN_INT_CONVERSION = YES; 483 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 484 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 485 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 486 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 487 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 488 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 489 | CLANG_WARN_STRICT_PROTOTYPES = YES; 490 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 491 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 492 | CLANG_WARN_UNREACHABLE_CODE = YES; 493 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 494 | COPY_PHASE_STRIP = NO; 495 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 496 | ENABLE_NS_ASSERTIONS = NO; 497 | ENABLE_STRICT_OBJC_MSGSEND = YES; 498 | GCC_C_LANGUAGE_STANDARD = gnu11; 499 | GCC_NO_COMMON_BLOCKS = YES; 500 | GCC_PREPROCESSOR_DEFINITIONS = ( 501 | "POD_CONFIGURATION_RELEASE=1", 502 | "$(inherited)", 503 | ); 504 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 505 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 506 | GCC_WARN_UNDECLARED_SELECTOR = YES; 507 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 508 | GCC_WARN_UNUSED_FUNCTION = YES; 509 | GCC_WARN_UNUSED_VARIABLE = YES; 510 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 511 | MTL_ENABLE_DEBUG_INFO = NO; 512 | MTL_FAST_MATH = YES; 513 | PRODUCT_NAME = "$(TARGET_NAME)"; 514 | STRIP_INSTALLED_PRODUCT = NO; 515 | SWIFT_COMPILATION_MODE = wholemodule; 516 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 517 | SWIFT_VERSION = 5.0; 518 | SYMROOT = "${SRCROOT}/../build"; 519 | }; 520 | name = Release; 521 | }; 522 | 92062B6F149FB2CA6C248EE977721014 /* Debug */ = { 523 | isa = XCBuildConfiguration; 524 | baseConfigurationReference = 6EA888ECE34BE58D8BA645D78ABCFF6A /* MobilliumQRCodeReader.debug.xcconfig */; 525 | buildSettings = { 526 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 527 | CLANG_ENABLE_OBJC_WEAK = NO; 528 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 529 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 530 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 531 | CURRENT_PROJECT_VERSION = 1; 532 | DEFINES_MODULE = YES; 533 | DYLIB_COMPATIBILITY_VERSION = 1; 534 | DYLIB_CURRENT_VERSION = 1; 535 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 536 | GCC_PREFIX_HEADER = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-prefix.pch"; 537 | INFOPLIST_FILE = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-Info.plist"; 538 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 539 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 540 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 541 | MODULEMAP_FILE = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader.modulemap"; 542 | PRODUCT_MODULE_NAME = MobilliumQRCodeReader; 543 | PRODUCT_NAME = MobilliumQRCodeReader; 544 | SDKROOT = iphoneos; 545 | SKIP_INSTALL = YES; 546 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 547 | SWIFT_VERSION = 5.0; 548 | TARGETED_DEVICE_FAMILY = "1,2"; 549 | VERSIONING_SYSTEM = "apple-generic"; 550 | VERSION_INFO_PREFIX = ""; 551 | }; 552 | name = Debug; 553 | }; 554 | 93509A3EE3C224FA37811588FB5F5504 /* Release */ = { 555 | isa = XCBuildConfiguration; 556 | baseConfigurationReference = CF98E4E7A0750A8D38735EB2AA97B101 /* MobilliumQRCodeReader.release.xcconfig */; 557 | buildSettings = { 558 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 559 | CLANG_ENABLE_OBJC_WEAK = NO; 560 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 561 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 562 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 563 | CURRENT_PROJECT_VERSION = 1; 564 | DEFINES_MODULE = YES; 565 | DYLIB_COMPATIBILITY_VERSION = 1; 566 | DYLIB_CURRENT_VERSION = 1; 567 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 568 | GCC_PREFIX_HEADER = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-prefix.pch"; 569 | INFOPLIST_FILE = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader-Info.plist"; 570 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 571 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 572 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 573 | MODULEMAP_FILE = "Target Support Files/MobilliumQRCodeReader/MobilliumQRCodeReader.modulemap"; 574 | PRODUCT_MODULE_NAME = MobilliumQRCodeReader; 575 | PRODUCT_NAME = MobilliumQRCodeReader; 576 | SDKROOT = iphoneos; 577 | SKIP_INSTALL = YES; 578 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 579 | SWIFT_VERSION = 5.0; 580 | TARGETED_DEVICE_FAMILY = "1,2"; 581 | VALIDATE_PRODUCT = YES; 582 | VERSIONING_SYSTEM = "apple-generic"; 583 | VERSION_INFO_PREFIX = ""; 584 | }; 585 | name = Release; 586 | }; 587 | B4EFE046ACF8F37157F6E322C7FCFC28 /* Debug */ = { 588 | isa = XCBuildConfiguration; 589 | buildSettings = { 590 | ALWAYS_SEARCH_USER_PATHS = NO; 591 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 592 | CLANG_ANALYZER_NONNULL = YES; 593 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 594 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 595 | CLANG_CXX_LIBRARY = "libc++"; 596 | CLANG_ENABLE_MODULES = YES; 597 | CLANG_ENABLE_OBJC_ARC = YES; 598 | CLANG_ENABLE_OBJC_WEAK = YES; 599 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 600 | CLANG_WARN_BOOL_CONVERSION = YES; 601 | CLANG_WARN_COMMA = YES; 602 | CLANG_WARN_CONSTANT_CONVERSION = YES; 603 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 604 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 605 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 606 | CLANG_WARN_EMPTY_BODY = YES; 607 | CLANG_WARN_ENUM_CONVERSION = YES; 608 | CLANG_WARN_INFINITE_RECURSION = YES; 609 | CLANG_WARN_INT_CONVERSION = YES; 610 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 611 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 612 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 613 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 614 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 615 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 616 | CLANG_WARN_STRICT_PROTOTYPES = YES; 617 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 618 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 619 | CLANG_WARN_UNREACHABLE_CODE = YES; 620 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 621 | COPY_PHASE_STRIP = NO; 622 | DEBUG_INFORMATION_FORMAT = dwarf; 623 | ENABLE_STRICT_OBJC_MSGSEND = YES; 624 | ENABLE_TESTABILITY = YES; 625 | GCC_C_LANGUAGE_STANDARD = gnu11; 626 | GCC_DYNAMIC_NO_PIC = NO; 627 | GCC_NO_COMMON_BLOCKS = YES; 628 | GCC_OPTIMIZATION_LEVEL = 0; 629 | GCC_PREPROCESSOR_DEFINITIONS = ( 630 | "POD_CONFIGURATION_DEBUG=1", 631 | "DEBUG=1", 632 | "$(inherited)", 633 | ); 634 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 635 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 636 | GCC_WARN_UNDECLARED_SELECTOR = YES; 637 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 638 | GCC_WARN_UNUSED_FUNCTION = YES; 639 | GCC_WARN_UNUSED_VARIABLE = YES; 640 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 641 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 642 | MTL_FAST_MATH = YES; 643 | ONLY_ACTIVE_ARCH = YES; 644 | PRODUCT_NAME = "$(TARGET_NAME)"; 645 | STRIP_INSTALLED_PRODUCT = NO; 646 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 647 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 648 | SWIFT_VERSION = 5.0; 649 | SYMROOT = "${SRCROOT}/../build"; 650 | }; 651 | name = Debug; 652 | }; 653 | D795C2B60EB62BC06FBA15F57932BB19 /* Debug */ = { 654 | isa = XCBuildConfiguration; 655 | baseConfigurationReference = F2522D38C1BA0148BB061EB89B8B26A5 /* Pods-MobilliumQRCodeReader_Example.debug.xcconfig */; 656 | buildSettings = { 657 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 658 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 659 | CLANG_ENABLE_OBJC_WEAK = NO; 660 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 661 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 662 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 663 | CURRENT_PROJECT_VERSION = 1; 664 | DEFINES_MODULE = YES; 665 | DYLIB_COMPATIBILITY_VERSION = 1; 666 | DYLIB_CURRENT_VERSION = 1; 667 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 668 | INFOPLIST_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-Info.plist"; 669 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 670 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 671 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 672 | MACH_O_TYPE = staticlib; 673 | MODULEMAP_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.modulemap"; 674 | OTHER_LDFLAGS = ""; 675 | OTHER_LIBTOOLFLAGS = ""; 676 | PODS_ROOT = "$(SRCROOT)"; 677 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 678 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 679 | SDKROOT = iphoneos; 680 | SKIP_INSTALL = YES; 681 | TARGETED_DEVICE_FAMILY = "1,2"; 682 | VERSIONING_SYSTEM = "apple-generic"; 683 | VERSION_INFO_PREFIX = ""; 684 | }; 685 | name = Debug; 686 | }; 687 | E0C79FC8F9193CBAC5E1DAC6B8397DC5 /* Release */ = { 688 | isa = XCBuildConfiguration; 689 | baseConfigurationReference = B3D68B99F97DC01D3A729467F7B570ED /* Pods-MobilliumQRCodeReader_Example.release.xcconfig */; 690 | buildSettings = { 691 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 692 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 693 | CLANG_ENABLE_OBJC_WEAK = NO; 694 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 695 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 696 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 697 | CURRENT_PROJECT_VERSION = 1; 698 | DEFINES_MODULE = YES; 699 | DYLIB_COMPATIBILITY_VERSION = 1; 700 | DYLIB_CURRENT_VERSION = 1; 701 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 702 | INFOPLIST_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example-Info.plist"; 703 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 704 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 705 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 706 | MACH_O_TYPE = staticlib; 707 | MODULEMAP_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Example/Pods-MobilliumQRCodeReader_Example.modulemap"; 708 | OTHER_LDFLAGS = ""; 709 | OTHER_LIBTOOLFLAGS = ""; 710 | PODS_ROOT = "$(SRCROOT)"; 711 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 712 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 713 | SDKROOT = iphoneos; 714 | SKIP_INSTALL = YES; 715 | TARGETED_DEVICE_FAMILY = "1,2"; 716 | VALIDATE_PRODUCT = YES; 717 | VERSIONING_SYSTEM = "apple-generic"; 718 | VERSION_INFO_PREFIX = ""; 719 | }; 720 | name = Release; 721 | }; 722 | E0F47740AF5A3C3F42D465CFEC949B4E /* Debug */ = { 723 | isa = XCBuildConfiguration; 724 | baseConfigurationReference = 38F0F0AEFA9F70DA42FD16EBC6C06B10 /* Pods-MobilliumQRCodeReader_Tests.debug.xcconfig */; 725 | buildSettings = { 726 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 727 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 728 | CLANG_ENABLE_OBJC_WEAK = NO; 729 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 730 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 731 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 732 | CURRENT_PROJECT_VERSION = 1; 733 | DEFINES_MODULE = YES; 734 | DYLIB_COMPATIBILITY_VERSION = 1; 735 | DYLIB_CURRENT_VERSION = 1; 736 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 737 | INFOPLIST_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests-Info.plist"; 738 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 739 | IPHONEOS_DEPLOYMENT_TARGET = 11.0; 740 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 741 | MACH_O_TYPE = staticlib; 742 | MODULEMAP_FILE = "Target Support Files/Pods-MobilliumQRCodeReader_Tests/Pods-MobilliumQRCodeReader_Tests.modulemap"; 743 | OTHER_LDFLAGS = ""; 744 | OTHER_LIBTOOLFLAGS = ""; 745 | PODS_ROOT = "$(SRCROOT)"; 746 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 747 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 748 | SDKROOT = iphoneos; 749 | SKIP_INSTALL = YES; 750 | TARGETED_DEVICE_FAMILY = "1,2"; 751 | VERSIONING_SYSTEM = "apple-generic"; 752 | VERSION_INFO_PREFIX = ""; 753 | }; 754 | name = Debug; 755 | }; 756 | /* End XCBuildConfiguration section */ 757 | 758 | /* Begin XCConfigurationList section */ 759 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 760 | isa = XCConfigurationList; 761 | buildConfigurations = ( 762 | B4EFE046ACF8F37157F6E322C7FCFC28 /* Debug */, 763 | 903A0004D3E6651EFD5D2E16214D101B /* Release */, 764 | ); 765 | defaultConfigurationIsVisible = 0; 766 | defaultConfigurationName = Release; 767 | }; 768 | 72DAA714B46555355BFFAFCEC03C9C2B /* Build configuration list for PBXNativeTarget "Pods-MobilliumQRCodeReader_Tests" */ = { 769 | isa = XCConfigurationList; 770 | buildConfigurations = ( 771 | E0F47740AF5A3C3F42D465CFEC949B4E /* Debug */, 772 | 81B709FF305A186B589FBDED898E96D6 /* Release */, 773 | ); 774 | defaultConfigurationIsVisible = 0; 775 | defaultConfigurationName = Release; 776 | }; 777 | A37BB8E406E984858B0CBD65BF575614 /* Build configuration list for PBXNativeTarget "Pods-MobilliumQRCodeReader_Example" */ = { 778 | isa = XCConfigurationList; 779 | buildConfigurations = ( 780 | D795C2B60EB62BC06FBA15F57932BB19 /* Debug */, 781 | E0C79FC8F9193CBAC5E1DAC6B8397DC5 /* Release */, 782 | ); 783 | defaultConfigurationIsVisible = 0; 784 | defaultConfigurationName = Release; 785 | }; 786 | FABB28F0C451755410ABF1617B9087E8 /* Build configuration list for PBXNativeTarget "MobilliumQRCodeReader" */ = { 787 | isa = XCConfigurationList; 788 | buildConfigurations = ( 789 | 92062B6F149FB2CA6C248EE977721014 /* Debug */, 790 | 93509A3EE3C224FA37811588FB5F5504 /* Release */, 791 | ); 792 | defaultConfigurationIsVisible = 0; 793 | defaultConfigurationName = Release; 794 | }; 795 | /* End XCConfigurationList section */ 796 | }; 797 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 798 | } 799 | --------------------------------------------------------------------------------