├── .gitignore ├── .travis.yml ├── KoinSwift.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── KoinSwift ├── KoinSwift Tests │ ├── BeanDefinition.swift │ └── BeanRegistryTests.swift ├── KoinSwift iOS Tests │ └── Info.plist ├── KoinSwift iOS │ ├── Info.plist │ └── KoinSwift.h ├── KoinSwift macOS Tests │ └── Info.plist ├── KoinSwift macOS │ ├── Info.plist │ └── KoinSwift.h ├── KoinSwift tvOS Tests │ └── Info.plist ├── KoinSwift tvOS │ ├── Info.plist │ └── KoinSwift.h ├── KoinSwift.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── KoinSwift iOS.xcscheme │ │ ├── KoinSwift macOS.xcscheme │ │ └── KoinSwift tvOS.xcscheme └── KoinSwift │ ├── Core │ ├── Context │ │ └── GlobalContext.swift │ ├── Definition │ │ ├── BeanDefinition.swift │ │ ├── Definition.swift │ │ ├── DefinitionFactory.swift │ │ └── Kind.swift │ ├── Error │ │ └── KoinErrors.swift │ ├── Koin.swift │ ├── KoinInjectable.swift │ ├── Module │ │ ├── Module.swift │ │ └── ModuleDeclaration.swift │ ├── Qualifier │ │ └── Qualifier.swift │ └── Registry │ │ └── BeanRegistry.swift │ └── Dsl │ ├── Dsl.swift │ ├── KoinConfig.swift │ └── ModuleExt.swift ├── KoinThermosiphon.playground ├── Contents.swift ├── contents.xcplayground └── playground.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | ## Build generated 3 | build/ 4 | DerivedData/ 5 | 6 | ## Various Settings 7 | xcuserdata/ 8 | *.pbxuser 9 | !default.pbxuser 10 | 11 | ## Obj-C/Swift specific 12 | *.hmap 13 | *.ipa 14 | 15 | ## Breakpoints 16 | Breakpoints_v2.xcbkptlist 17 | 18 | ## Other 19 | *.xccheckout 20 | *.xcuserdatad 21 | UserInterfaceState.xcuserstate 22 | .DS_Store 23 | ##*.xcworkspace 24 | ##!default.xcworkspace 25 | ##!Pulsar.xcworkspace/xcshareddata 26 | ##!Pulsar.xcodeproj/xcshareddata/xcschemes/* 27 | !*.xcschemes 28 | 29 | ## Carthage Folder 30 | Carthage/ 31 | Cartfile.resolved 32 | 33 | ## Fastlane folder 34 | fastlane/screenshots/ 35 | fastlane/report.xml 36 | 37 | KoinSwift.framework.zip 38 | 39 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | osx_image: xcode10.2 3 | xcode_workspace: KoinSwift.xcworkspace 4 | env: 5 | global: 6 | - IOS_FRAMEWORK_SCHEME="KoinSwift iOS" 7 | - TVOS_FRAMEWORK_SCHEME="KoinSwift tvOS" 8 | - MACOS_FRAMEWORK_SCHEME="KoinSwift macOS" 9 | matrix: 10 | - DESTINATION="platform=iOS Simulator,name=iPhone 6,OS=12.1" SCHEME="$IOS_FRAMEWORK_SCHEME" 11 | # - DESTINATION="platform=tvOS Simulator,name=Apple TV,OS=12.1" SCHEME="$TVOS_FRAMEWORK_SCHEME" 12 | - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" 13 | script: 14 | - set -o pipefail 15 | - xcodebuild -version 16 | - xcodebuild -workspace "$TRAVIS_XCODE_WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" clean build test | xcpretty 17 | before_deploy: 18 | - brew update 19 | - brew outdated carthage || brew upgrade carthage 20 | - carthage version 21 | - carthage build --no-skip-current --platform ios,tvos,mac 22 | - carthage archive KoinSwift 23 | deploy: 24 | provider: releases 25 | api_key: 26 | secure: MOHALhMbWh8Ng5ZFQfn/embALGu3YYKQ+337FFNwRyrIJ2j0vaakX16QVyMSDrFikJ/a4bf7HgOTy4+HNXlU4drdR4gjobg5QribkZWWodFfi5A0aYsaN0KtSMdx5fDAvs+BBNHoWdYn4j6fJFj6wFEoJHyF1X5+sfCV9dq6Vi8UBWBzq/Oxs3Xd6RU+0HgPEq/upm6o4BoQa5hx/3VWteiFd8wl5whbpEWqaHe/jG4MdebmfqYz3szd2IoFiArEkUewUwwhKaekiXYUhVPCF3YKoJnSYBBy9cH0bNf0Sn70XmWwq382N1kfrCRIAwjT/Y/NZ/YjlAuBK91Uq7FiQ6JJo65IuvXwVkbdA4IdzfDx2isvoW+GFK7w12ANUorFpF6qAwRtSebnJ3w7hEqm3DvtchjNbiBrh66UzlHrvHIl6Uehtk6hSIRN93E7Zw0elURFTSehnqZ6VsLjgQ+4jshdyMJlTM3hzmMQtVP52YgwiuRriPMzIbh48L0e8NunvF7ZsZM6LHb14fae6xwbkijZDVdTXOqfNnHjXG5XreSDmWgUqWZVYiDEM99Nes+wLc6hmnEzj6kao0gc+mMeq8kORrQ/nOn7bvvaDI1zSMGTH3Kh1XmYab+zfepI5kgaRehgRpOe1pqCEqvLreLZbtl/yJMFsC/pBbaFv/nMlOA= 27 | file: KoinSwift.framework.zip 28 | skip_cleanup: true 29 | on: 30 | repo: InsertKoinIO/koin-swift 31 | tags: true 32 | -------------------------------------------------------------------------------- /KoinSwift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /KoinSwift.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift Tests/BeanDefinition.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BeanDefinition.swift 3 | // KoinSwift Tests 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import XCTest 12 | @testable import KoinSwift 13 | 14 | class BeanDefinitionTests: XCTestCase { 15 | 16 | func testSingle() { 17 | let koin = MockKoin() 18 | 19 | let def1 = BeanDefinition( 20 | definition: { _ throws in "def1"}, 21 | qualifier: nil, 22 | kind: .single 23 | ) 24 | do { 25 | let value1 = try def1.resolveInstance(koin: koin) 26 | let value2 = try def1.resolveInstance(koin: koin) 27 | XCTAssertEqual(value1, value2, "\(value1) != \(value2)") 28 | } catch { 29 | XCTAssertTrue(false, "Exception throws: \(error)" ) 30 | } 31 | } 32 | 33 | } 34 | 35 | class MockKoin: KoinInjectable { 36 | func get(qualifier: Qualifier? = nil) throws -> T { 37 | throw KoinErrors.notImplementedYet 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift Tests/BeanRegistryTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BeanRegistryTest.swift 3 | // KoinSwift Tests 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import KoinSwift 11 | 12 | class BeanRegistryTests: XCTestCase { 13 | func testDefinitionFound() { 14 | let beanRegistry = BeanRegistry() 15 | beanRegistry.definitions.insert( 16 | AnyHashable(BeanDefinition(definition: { _ in "" })) 17 | ) 18 | XCTAssertNoThrow(try beanRegistry.retrieveDefinition() as BeanDefinition) 19 | } 20 | func testDefinitionNotFound() { 21 | let beanRegistry = BeanRegistry() 22 | XCTAssertThrowsError(try beanRegistry.retrieveDefinition() as BeanDefinition) 23 | } 24 | func testDefinitionWithQualifier() { 25 | let beanRegistry = BeanRegistry() 26 | let def1 = BeanDefinition( 27 | definition: { _ in "" } 28 | ) 29 | let def2 = BeanDefinition( 30 | definition: { _ in "withQualifier" }, 31 | qualifier: "withQualifier" 32 | ) 33 | beanRegistry.definitions.insert(AnyHashable(def1)) 34 | beanRegistry.definitions.insert(AnyHashable(def2)) 35 | do { 36 | let definition: BeanDefinition = try beanRegistry.retrieveDefinition(withQualifier: "withQualifier") 37 | XCTAssertEqual(definition, def2, "") 38 | } catch { 39 | XCTAssertTrue(false, "Exception throws: \(error)" ) 40 | } 41 | } 42 | func testOverrideDefinition() { 43 | let beanRegistry = BeanRegistry() 44 | let def1 = BeanDefinition( 45 | definition: { _ in "" } 46 | ) 47 | let def2 = BeanDefinition( 48 | definition: { _ in "" } 49 | ) 50 | XCTAssertNoThrow(try beanRegistry.insertDefinition(definition: def1)) 51 | XCTAssertThrowsError(try beanRegistry.insertDefinition(definition: def2), 52 | "Should throw exception when try to override def") 53 | } 54 | func testInsertSameTypeButWithQualifierDefinition() { 55 | let beanRegistry = BeanRegistry() 56 | let def1 = BeanDefinition( 57 | definition: { _ in "withoutQualifier" } 58 | ) 59 | let def2 = BeanDefinition( 60 | definition: { _ in "withQualifier" }, 61 | qualifier: "withQualifier" 62 | ) 63 | XCTAssertNoThrow(try beanRegistry.insertDefinition(definition: def1)) 64 | XCTAssertNoThrow(try beanRegistry.insertDefinition(definition: def2), 65 | "Should not throw exception when try to insert def whith different qualifier") 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift iOS Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | $(LIBRARY_VERSION) 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | LSApplicationCategoryType 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift iOS/KoinSwift.h: -------------------------------------------------------------------------------- 1 | // 2 | // KoinSwiftIos.h 3 | // KoinSwiftIos 4 | // 5 | // Created by DE NADAI Julien on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for KoinSwiftIos. 12 | FOUNDATION_EXPORT double KoinSwiftIosVersionNumber; 13 | 14 | //! Project version string for KoinSwiftIos. 15 | FOUNDATION_EXPORT const unsigned char KoinSwiftIosVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift macOS Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift macOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | $(LIBRARY_VERSION) 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift macOS/KoinSwift.h: -------------------------------------------------------------------------------- 1 | // 2 | // KoinSwiftOsx.h 3 | // KoinSwiftOsx 4 | // 5 | // Created by DE NADAI Julien on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for KoinSwiftOsx. 12 | FOUNDATION_EXPORT double KoinSwiftOsxVersionNumber; 13 | 14 | //! Project version string for KoinSwiftOsx. 15 | FOUNDATION_EXPORT const unsigned char KoinSwiftOsxVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift tvOS Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | $(LIBRARY_VERSION) 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift tvOS/KoinSwift.h: -------------------------------------------------------------------------------- 1 | // 2 | // KoinSwift_tvOS.h 3 | // KoinSwift tvOS 4 | // 5 | // Created by DE NADAI Julien on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for KoinSwift_tvOS. 12 | FOUNDATION_EXPORT double KoinSwift_tvOSVersionNumber; 13 | 14 | //! Project version string for KoinSwift_tvOS. 15 | FOUNDATION_EXPORT const unsigned char KoinSwift_tvOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | A3D0F19422784EE500DB6073 /* KoinSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D0F18A22784EE500DB6073 /* KoinSwift.framework */; }; 11 | A3D0F19B22784EE500DB6073 /* KoinSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = A3D0F18D22784EE500DB6073 /* KoinSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | A3D0F1B022784F0400DB6073 /* KoinSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D0F1A722784F0400DB6073 /* KoinSwift.framework */; }; 13 | A3D0F1B722784F0400DB6073 /* KoinSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = A3D0F1A922784F0400DB6073 /* KoinSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14 | A3D0F1F4227850A100DB6073 /* GlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E1227850A100DB6073 /* GlobalContext.swift */; }; 15 | A3D0F1F5227850A100DB6073 /* Koin.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E2227850A100DB6073 /* Koin.swift */; }; 16 | A3D0F1F6227850A100DB6073 /* Qualifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E4227850A100DB6073 /* Qualifier.swift */; }; 17 | A3D0F1F8227850A100DB6073 /* KoinInjectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E7227850A100DB6073 /* KoinInjectable.swift */; }; 18 | A3D0F1F9227850A100DB6073 /* DefinitionFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E9227850A100DB6073 /* DefinitionFactory.swift */; }; 19 | A3D0F1FA227850A100DB6073 /* Kind.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EA227850A100DB6073 /* Kind.swift */; }; 20 | A3D0F1FB227850A100DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EB227850A100DB6073 /* BeanDefinition.swift */; }; 21 | A3D0F1FC227850A100DB6073 /* Definition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EC227850A100DB6073 /* Definition.swift */; }; 22 | A3D0F1FD227850A100DB6073 /* BeanRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EE227850A100DB6073 /* BeanRegistry.swift */; }; 23 | A3D0F1FE227850A100DB6073 /* ModuleDeclaration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F0227850A100DB6073 /* ModuleDeclaration.swift */; }; 24 | A3D0F1FF227850A100DB6073 /* Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F1227850A100DB6073 /* Module.swift */; }; 25 | A3D0F200227850A100DB6073 /* KoinErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F3227850A100DB6073 /* KoinErrors.swift */; }; 26 | A3D0F205227850BC00DB6073 /* ModuleExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F202227850BC00DB6073 /* ModuleExt.swift */; }; 27 | A3D0F206227850BC00DB6073 /* KoinConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F203227850BC00DB6073 /* KoinConfig.swift */; }; 28 | A3D0F207227850BC00DB6073 /* Dsl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F204227850BC00DB6073 /* Dsl.swift */; }; 29 | A3D0F2082278512200DB6073 /* GlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E1227850A100DB6073 /* GlobalContext.swift */; }; 30 | A3D0F2092278512200DB6073 /* DefinitionFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E9227850A100DB6073 /* DefinitionFactory.swift */; }; 31 | A3D0F20A2278512200DB6073 /* Kind.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EA227850A100DB6073 /* Kind.swift */; }; 32 | A3D0F20B2278512200DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EB227850A100DB6073 /* BeanDefinition.swift */; }; 33 | A3D0F20C2278512200DB6073 /* Definition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EC227850A100DB6073 /* Definition.swift */; }; 34 | A3D0F20D2278512200DB6073 /* KoinErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F3227850A100DB6073 /* KoinErrors.swift */; }; 35 | A3D0F20E2278512200DB6073 /* Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F1227850A100DB6073 /* Module.swift */; }; 36 | A3D0F20F2278512200DB6073 /* ModuleDeclaration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F0227850A100DB6073 /* ModuleDeclaration.swift */; }; 37 | A3D0F2102278512200DB6073 /* Qualifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E4227850A100DB6073 /* Qualifier.swift */; }; 38 | A3D0F2112278512200DB6073 /* BeanRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EE227850A100DB6073 /* BeanRegistry.swift */; }; 39 | A3D0F2122278512200DB6073 /* Koin.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E2227850A100DB6073 /* Koin.swift */; }; 40 | A3D0F2132278512200DB6073 /* KoinInjectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E7227850A100DB6073 /* KoinInjectable.swift */; }; 41 | A3D0F2142278512800DB6073 /* ModuleExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F202227850BC00DB6073 /* ModuleExt.swift */; }; 42 | A3D0F2152278512800DB6073 /* KoinConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F203227850BC00DB6073 /* KoinConfig.swift */; }; 43 | A3D0F2162278512800DB6073 /* Dsl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F204227850BC00DB6073 /* Dsl.swift */; }; 44 | A3D0F23A22786FA300DB6073 /* KoinSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D0F23122786FA300DB6073 /* KoinSwift.framework */; }; 45 | A3D0F24122786FA300DB6073 /* KoinSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = A3D0F23322786FA300DB6073 /* KoinSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 46 | A3D0F2552278742500DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2522278740900DB6073 /* BeanDefinition.swift */; }; 47 | A3D0F2562278742500DB6073 /* BeanRegistryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2512278740900DB6073 /* BeanRegistryTests.swift */; }; 48 | A3D0F2572278742600DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2522278740900DB6073 /* BeanDefinition.swift */; }; 49 | A3D0F2582278742600DB6073 /* BeanRegistryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2512278740900DB6073 /* BeanRegistryTests.swift */; }; 50 | A3D0F2592278742600DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2522278740900DB6073 /* BeanDefinition.swift */; }; 51 | A3D0F25A2278742600DB6073 /* BeanRegistryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F2512278740900DB6073 /* BeanRegistryTests.swift */; }; 52 | A3D0F25B2278743200DB6073 /* GlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E1227850A100DB6073 /* GlobalContext.swift */; }; 53 | A3D0F25C2278743200DB6073 /* DefinitionFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E9227850A100DB6073 /* DefinitionFactory.swift */; }; 54 | A3D0F25D2278743200DB6073 /* Kind.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EA227850A100DB6073 /* Kind.swift */; }; 55 | A3D0F25E2278743200DB6073 /* BeanDefinition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EB227850A100DB6073 /* BeanDefinition.swift */; }; 56 | A3D0F25F2278743200DB6073 /* Definition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EC227850A100DB6073 /* Definition.swift */; }; 57 | A3D0F2602278743200DB6073 /* KoinErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F3227850A100DB6073 /* KoinErrors.swift */; }; 58 | A3D0F2612278743200DB6073 /* Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F1227850A100DB6073 /* Module.swift */; }; 59 | A3D0F2622278743200DB6073 /* ModuleDeclaration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1F0227850A100DB6073 /* ModuleDeclaration.swift */; }; 60 | A3D0F2632278743200DB6073 /* Qualifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E4227850A100DB6073 /* Qualifier.swift */; }; 61 | A3D0F2642278743200DB6073 /* BeanRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1EE227850A100DB6073 /* BeanRegistry.swift */; }; 62 | A3D0F2652278743200DB6073 /* Koin.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E2227850A100DB6073 /* Koin.swift */; }; 63 | A3D0F2662278743200DB6073 /* KoinInjectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F1E7227850A100DB6073 /* KoinInjectable.swift */; }; 64 | A3D0F2672278743200DB6073 /* ModuleExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F202227850BC00DB6073 /* ModuleExt.swift */; }; 65 | A3D0F2682278743200DB6073 /* KoinConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F203227850BC00DB6073 /* KoinConfig.swift */; }; 66 | A3D0F2692278743200DB6073 /* Dsl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D0F204227850BC00DB6073 /* Dsl.swift */; }; 67 | /* End PBXBuildFile section */ 68 | 69 | /* Begin PBXContainerItemProxy section */ 70 | A3D0F19522784EE500DB6073 /* PBXContainerItemProxy */ = { 71 | isa = PBXContainerItemProxy; 72 | containerPortal = A3D0F17F22784E9000DB6073 /* Project object */; 73 | proxyType = 1; 74 | remoteGlobalIDString = A3D0F18922784EE500DB6073; 75 | remoteInfo = KoinSwiftIos; 76 | }; 77 | A3D0F1B122784F0400DB6073 /* PBXContainerItemProxy */ = { 78 | isa = PBXContainerItemProxy; 79 | containerPortal = A3D0F17F22784E9000DB6073 /* Project object */; 80 | proxyType = 1; 81 | remoteGlobalIDString = A3D0F1A622784F0400DB6073; 82 | remoteInfo = KoinSwiftOsx; 83 | }; 84 | A3D0F23B22786FA300DB6073 /* PBXContainerItemProxy */ = { 85 | isa = PBXContainerItemProxy; 86 | containerPortal = A3D0F17F22784E9000DB6073 /* Project object */; 87 | proxyType = 1; 88 | remoteGlobalIDString = A3D0F23022786FA300DB6073; 89 | remoteInfo = "KoinSwift tvOS"; 90 | }; 91 | /* End PBXContainerItemProxy section */ 92 | 93 | /* Begin PBXFileReference section */ 94 | A3D0F18A22784EE500DB6073 /* KoinSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KoinSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 95 | A3D0F18D22784EE500DB6073 /* KoinSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KoinSwift.h; sourceTree = ""; }; 96 | A3D0F18E22784EE500DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 97 | A3D0F19322784EE500DB6073 /* KoinSwift iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "KoinSwift iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 98 | A3D0F19A22784EE500DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 99 | A3D0F1A722784F0400DB6073 /* KoinSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KoinSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 100 | A3D0F1A922784F0400DB6073 /* KoinSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KoinSwift.h; sourceTree = ""; }; 101 | A3D0F1AA22784F0400DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 102 | A3D0F1AF22784F0400DB6073 /* KoinSwift macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "KoinSwift macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 103 | A3D0F1B622784F0400DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 104 | A3D0F1E1227850A100DB6073 /* GlobalContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalContext.swift; sourceTree = ""; }; 105 | A3D0F1E2227850A100DB6073 /* Koin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Koin.swift; sourceTree = ""; }; 106 | A3D0F1E4227850A100DB6073 /* Qualifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Qualifier.swift; sourceTree = ""; }; 107 | A3D0F1E7227850A100DB6073 /* KoinInjectable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KoinInjectable.swift; sourceTree = ""; }; 108 | A3D0F1E9227850A100DB6073 /* DefinitionFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefinitionFactory.swift; sourceTree = ""; }; 109 | A3D0F1EA227850A100DB6073 /* Kind.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Kind.swift; sourceTree = ""; }; 110 | A3D0F1EB227850A100DB6073 /* BeanDefinition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeanDefinition.swift; sourceTree = ""; }; 111 | A3D0F1EC227850A100DB6073 /* Definition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Definition.swift; sourceTree = ""; }; 112 | A3D0F1EE227850A100DB6073 /* BeanRegistry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeanRegistry.swift; sourceTree = ""; }; 113 | A3D0F1F0227850A100DB6073 /* ModuleDeclaration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModuleDeclaration.swift; sourceTree = ""; }; 114 | A3D0F1F1227850A100DB6073 /* Module.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Module.swift; sourceTree = ""; }; 115 | A3D0F1F3227850A100DB6073 /* KoinErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KoinErrors.swift; sourceTree = ""; }; 116 | A3D0F202227850BC00DB6073 /* ModuleExt.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModuleExt.swift; sourceTree = ""; }; 117 | A3D0F203227850BC00DB6073 /* KoinConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KoinConfig.swift; sourceTree = ""; }; 118 | A3D0F204227850BC00DB6073 /* Dsl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dsl.swift; sourceTree = ""; }; 119 | A3D0F23122786FA300DB6073 /* KoinSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KoinSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 120 | A3D0F23322786FA300DB6073 /* KoinSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KoinSwift.h; sourceTree = ""; }; 121 | A3D0F23422786FA300DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 122 | A3D0F23922786FA300DB6073 /* KoinSwift tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "KoinSwift tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 123 | A3D0F24022786FA300DB6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 124 | A3D0F2512278740900DB6073 /* BeanRegistryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeanRegistryTests.swift; sourceTree = ""; }; 125 | A3D0F2522278740900DB6073 /* BeanDefinition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeanDefinition.swift; sourceTree = ""; }; 126 | /* End PBXFileReference section */ 127 | 128 | /* Begin PBXFrameworksBuildPhase section */ 129 | A3D0F18722784EE500DB6073 /* Frameworks */ = { 130 | isa = PBXFrameworksBuildPhase; 131 | buildActionMask = 2147483647; 132 | files = ( 133 | ); 134 | runOnlyForDeploymentPostprocessing = 0; 135 | }; 136 | A3D0F19022784EE500DB6073 /* Frameworks */ = { 137 | isa = PBXFrameworksBuildPhase; 138 | buildActionMask = 2147483647; 139 | files = ( 140 | A3D0F19422784EE500DB6073 /* KoinSwift.framework in Frameworks */, 141 | ); 142 | runOnlyForDeploymentPostprocessing = 0; 143 | }; 144 | A3D0F1A422784F0400DB6073 /* Frameworks */ = { 145 | isa = PBXFrameworksBuildPhase; 146 | buildActionMask = 2147483647; 147 | files = ( 148 | ); 149 | runOnlyForDeploymentPostprocessing = 0; 150 | }; 151 | A3D0F1AC22784F0400DB6073 /* Frameworks */ = { 152 | isa = PBXFrameworksBuildPhase; 153 | buildActionMask = 2147483647; 154 | files = ( 155 | A3D0F1B022784F0400DB6073 /* KoinSwift.framework in Frameworks */, 156 | ); 157 | runOnlyForDeploymentPostprocessing = 0; 158 | }; 159 | A3D0F22E22786FA300DB6073 /* Frameworks */ = { 160 | isa = PBXFrameworksBuildPhase; 161 | buildActionMask = 2147483647; 162 | files = ( 163 | ); 164 | runOnlyForDeploymentPostprocessing = 0; 165 | }; 166 | A3D0F23622786FA300DB6073 /* Frameworks */ = { 167 | isa = PBXFrameworksBuildPhase; 168 | buildActionMask = 2147483647; 169 | files = ( 170 | A3D0F23A22786FA300DB6073 /* KoinSwift.framework in Frameworks */, 171 | ); 172 | runOnlyForDeploymentPostprocessing = 0; 173 | }; 174 | /* End PBXFrameworksBuildPhase section */ 175 | 176 | /* Begin PBXGroup section */ 177 | A3D0F17E22784E9000DB6073 = { 178 | isa = PBXGroup; 179 | children = ( 180 | A3D0F1DB2278500E00DB6073 /* KoinSwift */, 181 | A3D0F18C22784EE500DB6073 /* KoinSwift iOS */, 182 | A3D0F23222786FA300DB6073 /* KoinSwift tvOS */, 183 | A3D0F1A822784F0400DB6073 /* KoinSwift macOS */, 184 | A3D0F250227873D500DB6073 /* KoinSwift Tests */, 185 | A3D0F19722784EE500DB6073 /* KoinSwift iOS Tests */, 186 | A3D0F23D22786FA300DB6073 /* KoinSwift tvOS Tests */, 187 | A3D0F1B322784F0400DB6073 /* KoinSwift macOS Tests */, 188 | A3D0F18B22784EE500DB6073 /* Products */, 189 | ); 190 | sourceTree = ""; 191 | }; 192 | A3D0F18B22784EE500DB6073 /* Products */ = { 193 | isa = PBXGroup; 194 | children = ( 195 | A3D0F18A22784EE500DB6073 /* KoinSwift.framework */, 196 | A3D0F19322784EE500DB6073 /* KoinSwift iOS Tests.xctest */, 197 | A3D0F1A722784F0400DB6073 /* KoinSwift.framework */, 198 | A3D0F1AF22784F0400DB6073 /* KoinSwift macOS Tests.xctest */, 199 | A3D0F23122786FA300DB6073 /* KoinSwift.framework */, 200 | A3D0F23922786FA300DB6073 /* KoinSwift tvOS Tests.xctest */, 201 | ); 202 | name = Products; 203 | sourceTree = ""; 204 | }; 205 | A3D0F18C22784EE500DB6073 /* KoinSwift iOS */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | A3D0F18D22784EE500DB6073 /* KoinSwift.h */, 209 | A3D0F18E22784EE500DB6073 /* Info.plist */, 210 | ); 211 | path = "KoinSwift iOS"; 212 | sourceTree = ""; 213 | }; 214 | A3D0F19722784EE500DB6073 /* KoinSwift iOS Tests */ = { 215 | isa = PBXGroup; 216 | children = ( 217 | A3D0F19A22784EE500DB6073 /* Info.plist */, 218 | ); 219 | path = "KoinSwift iOS Tests"; 220 | sourceTree = ""; 221 | }; 222 | A3D0F1A822784F0400DB6073 /* KoinSwift macOS */ = { 223 | isa = PBXGroup; 224 | children = ( 225 | A3D0F1A922784F0400DB6073 /* KoinSwift.h */, 226 | A3D0F1AA22784F0400DB6073 /* Info.plist */, 227 | ); 228 | path = "KoinSwift macOS"; 229 | sourceTree = ""; 230 | }; 231 | A3D0F1B322784F0400DB6073 /* KoinSwift macOS Tests */ = { 232 | isa = PBXGroup; 233 | children = ( 234 | A3D0F1B622784F0400DB6073 /* Info.plist */, 235 | ); 236 | path = "KoinSwift macOS Tests"; 237 | sourceTree = ""; 238 | }; 239 | A3D0F1DB2278500E00DB6073 /* KoinSwift */ = { 240 | isa = PBXGroup; 241 | children = ( 242 | A3D0F1DF227850A100DB6073 /* Core */, 243 | A3D0F201227850BC00DB6073 /* Dsl */, 244 | ); 245 | path = KoinSwift; 246 | sourceTree = ""; 247 | }; 248 | A3D0F1DF227850A100DB6073 /* Core */ = { 249 | isa = PBXGroup; 250 | children = ( 251 | A3D0F1E0227850A100DB6073 /* Context */, 252 | A3D0F1E8227850A100DB6073 /* Definition */, 253 | A3D0F1F2227850A100DB6073 /* Error */, 254 | A3D0F1E5227850A100DB6073 /* Module */, 255 | A3D0F1E3227850A100DB6073 /* Qualifier */, 256 | A3D0F1ED227850A100DB6073 /* Registry */, 257 | A3D0F1E2227850A100DB6073 /* Koin.swift */, 258 | A3D0F1E7227850A100DB6073 /* KoinInjectable.swift */, 259 | ); 260 | path = Core; 261 | sourceTree = ""; 262 | }; 263 | A3D0F1E0227850A100DB6073 /* Context */ = { 264 | isa = PBXGroup; 265 | children = ( 266 | A3D0F1E1227850A100DB6073 /* GlobalContext.swift */, 267 | ); 268 | path = Context; 269 | sourceTree = ""; 270 | }; 271 | A3D0F1E3227850A100DB6073 /* Qualifier */ = { 272 | isa = PBXGroup; 273 | children = ( 274 | A3D0F1E4227850A100DB6073 /* Qualifier.swift */, 275 | ); 276 | path = Qualifier; 277 | sourceTree = ""; 278 | }; 279 | A3D0F1E5227850A100DB6073 /* Module */ = { 280 | isa = PBXGroup; 281 | children = ( 282 | A3D0F1F1227850A100DB6073 /* Module.swift */, 283 | A3D0F1F0227850A100DB6073 /* ModuleDeclaration.swift */, 284 | ); 285 | path = Module; 286 | sourceTree = ""; 287 | }; 288 | A3D0F1E8227850A100DB6073 /* Definition */ = { 289 | isa = PBXGroup; 290 | children = ( 291 | A3D0F1E9227850A100DB6073 /* DefinitionFactory.swift */, 292 | A3D0F1EA227850A100DB6073 /* Kind.swift */, 293 | A3D0F1EB227850A100DB6073 /* BeanDefinition.swift */, 294 | A3D0F1EC227850A100DB6073 /* Definition.swift */, 295 | ); 296 | path = Definition; 297 | sourceTree = ""; 298 | }; 299 | A3D0F1ED227850A100DB6073 /* Registry */ = { 300 | isa = PBXGroup; 301 | children = ( 302 | A3D0F1EE227850A100DB6073 /* BeanRegistry.swift */, 303 | ); 304 | path = Registry; 305 | sourceTree = ""; 306 | }; 307 | A3D0F1F2227850A100DB6073 /* Error */ = { 308 | isa = PBXGroup; 309 | children = ( 310 | A3D0F1F3227850A100DB6073 /* KoinErrors.swift */, 311 | ); 312 | path = Error; 313 | sourceTree = ""; 314 | }; 315 | A3D0F201227850BC00DB6073 /* Dsl */ = { 316 | isa = PBXGroup; 317 | children = ( 318 | A3D0F202227850BC00DB6073 /* ModuleExt.swift */, 319 | A3D0F203227850BC00DB6073 /* KoinConfig.swift */, 320 | A3D0F204227850BC00DB6073 /* Dsl.swift */, 321 | ); 322 | path = Dsl; 323 | sourceTree = ""; 324 | }; 325 | A3D0F23222786FA300DB6073 /* KoinSwift tvOS */ = { 326 | isa = PBXGroup; 327 | children = ( 328 | A3D0F23322786FA300DB6073 /* KoinSwift.h */, 329 | A3D0F23422786FA300DB6073 /* Info.plist */, 330 | ); 331 | path = "KoinSwift tvOS"; 332 | sourceTree = ""; 333 | }; 334 | A3D0F23D22786FA300DB6073 /* KoinSwift tvOS Tests */ = { 335 | isa = PBXGroup; 336 | children = ( 337 | A3D0F24022786FA300DB6073 /* Info.plist */, 338 | ); 339 | path = "KoinSwift tvOS Tests"; 340 | sourceTree = ""; 341 | }; 342 | A3D0F250227873D500DB6073 /* KoinSwift Tests */ = { 343 | isa = PBXGroup; 344 | children = ( 345 | A3D0F2522278740900DB6073 /* BeanDefinition.swift */, 346 | A3D0F2512278740900DB6073 /* BeanRegistryTests.swift */, 347 | ); 348 | path = "KoinSwift Tests"; 349 | sourceTree = ""; 350 | }; 351 | /* End PBXGroup section */ 352 | 353 | /* Begin PBXHeadersBuildPhase section */ 354 | A3D0F18522784EE500DB6073 /* Headers */ = { 355 | isa = PBXHeadersBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | A3D0F19B22784EE500DB6073 /* KoinSwift.h in Headers */, 359 | ); 360 | runOnlyForDeploymentPostprocessing = 0; 361 | }; 362 | A3D0F1A222784F0400DB6073 /* Headers */ = { 363 | isa = PBXHeadersBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | A3D0F1B722784F0400DB6073 /* KoinSwift.h in Headers */, 367 | ); 368 | runOnlyForDeploymentPostprocessing = 0; 369 | }; 370 | A3D0F22C22786FA300DB6073 /* Headers */ = { 371 | isa = PBXHeadersBuildPhase; 372 | buildActionMask = 2147483647; 373 | files = ( 374 | A3D0F24122786FA300DB6073 /* KoinSwift.h in Headers */, 375 | ); 376 | runOnlyForDeploymentPostprocessing = 0; 377 | }; 378 | /* End PBXHeadersBuildPhase section */ 379 | 380 | /* Begin PBXNativeTarget section */ 381 | A3D0F18922784EE500DB6073 /* KoinSwift iOS */ = { 382 | isa = PBXNativeTarget; 383 | buildConfigurationList = A3D0F19C22784EE500DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift iOS" */; 384 | buildPhases = ( 385 | A3D0F18522784EE500DB6073 /* Headers */, 386 | A3D0F18622784EE500DB6073 /* Sources */, 387 | A3D0F18722784EE500DB6073 /* Frameworks */, 388 | A3D0F18822784EE500DB6073 /* Resources */, 389 | A3C3796C228AEC8200A14618 /* Swiftlint */, 390 | ); 391 | buildRules = ( 392 | ); 393 | dependencies = ( 394 | ); 395 | name = "KoinSwift iOS"; 396 | productName = KoinSwiftIos; 397 | productReference = A3D0F18A22784EE500DB6073 /* KoinSwift.framework */; 398 | productType = "com.apple.product-type.framework"; 399 | }; 400 | A3D0F19222784EE500DB6073 /* KoinSwift iOS Tests */ = { 401 | isa = PBXNativeTarget; 402 | buildConfigurationList = A3D0F19F22784EE500DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift iOS Tests" */; 403 | buildPhases = ( 404 | A3D0F18F22784EE500DB6073 /* Sources */, 405 | A3D0F19022784EE500DB6073 /* Frameworks */, 406 | A3D0F19122784EE500DB6073 /* Resources */, 407 | ); 408 | buildRules = ( 409 | ); 410 | dependencies = ( 411 | A3D0F19622784EE500DB6073 /* PBXTargetDependency */, 412 | ); 413 | name = "KoinSwift iOS Tests"; 414 | productName = KoinSwiftIosTests; 415 | productReference = A3D0F19322784EE500DB6073 /* KoinSwift iOS Tests.xctest */; 416 | productType = "com.apple.product-type.bundle.unit-test"; 417 | }; 418 | A3D0F1A622784F0400DB6073 /* KoinSwift macOS */ = { 419 | isa = PBXNativeTarget; 420 | buildConfigurationList = A3D0F1B822784F0400DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift macOS" */; 421 | buildPhases = ( 422 | A3D0F1A222784F0400DB6073 /* Headers */, 423 | A3D0F1A322784F0400DB6073 /* Sources */, 424 | A3D0F1A422784F0400DB6073 /* Frameworks */, 425 | A3D0F1A522784F0400DB6073 /* Resources */, 426 | A3C37969228AEC5500A14618 /* Swiftlint */, 427 | ); 428 | buildRules = ( 429 | ); 430 | dependencies = ( 431 | ); 432 | name = "KoinSwift macOS"; 433 | productName = KoinSwiftOsx; 434 | productReference = A3D0F1A722784F0400DB6073 /* KoinSwift.framework */; 435 | productType = "com.apple.product-type.framework"; 436 | }; 437 | A3D0F1AE22784F0400DB6073 /* KoinSwift macOS Tests */ = { 438 | isa = PBXNativeTarget; 439 | buildConfigurationList = A3D0F1BB22784F0400DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift macOS Tests" */; 440 | buildPhases = ( 441 | A3D0F1AB22784F0400DB6073 /* Sources */, 442 | A3D0F1AC22784F0400DB6073 /* Frameworks */, 443 | A3D0F1AD22784F0400DB6073 /* Resources */, 444 | ); 445 | buildRules = ( 446 | ); 447 | dependencies = ( 448 | A3D0F1B222784F0400DB6073 /* PBXTargetDependency */, 449 | ); 450 | name = "KoinSwift macOS Tests"; 451 | productName = KoinSwiftOsxTests; 452 | productReference = A3D0F1AF22784F0400DB6073 /* KoinSwift macOS Tests.xctest */; 453 | productType = "com.apple.product-type.bundle.unit-test"; 454 | }; 455 | A3D0F23022786FA300DB6073 /* KoinSwift tvOS */ = { 456 | isa = PBXNativeTarget; 457 | buildConfigurationList = A3D0F24222786FA300DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift tvOS" */; 458 | buildPhases = ( 459 | A3D0F22C22786FA300DB6073 /* Headers */, 460 | A3D0F22D22786FA300DB6073 /* Sources */, 461 | A3D0F22E22786FA300DB6073 /* Frameworks */, 462 | A3D0F22F22786FA300DB6073 /* Resources */, 463 | A3C3796B228AEC7400A14618 /* Swiftlint */, 464 | ); 465 | buildRules = ( 466 | ); 467 | dependencies = ( 468 | ); 469 | name = "KoinSwift tvOS"; 470 | productName = "KoinSwift tvOS"; 471 | productReference = A3D0F23122786FA300DB6073 /* KoinSwift.framework */; 472 | productType = "com.apple.product-type.framework"; 473 | }; 474 | A3D0F23822786FA300DB6073 /* KoinSwift tvOS Tests */ = { 475 | isa = PBXNativeTarget; 476 | buildConfigurationList = A3D0F24522786FA300DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift tvOS Tests" */; 477 | buildPhases = ( 478 | A3D0F23522786FA300DB6073 /* Sources */, 479 | A3D0F23622786FA300DB6073 /* Frameworks */, 480 | A3D0F23722786FA300DB6073 /* Resources */, 481 | ); 482 | buildRules = ( 483 | ); 484 | dependencies = ( 485 | A3D0F23C22786FA300DB6073 /* PBXTargetDependency */, 486 | ); 487 | name = "KoinSwift tvOS Tests"; 488 | productName = "KoinSwift tvOSTests"; 489 | productReference = A3D0F23922786FA300DB6073 /* KoinSwift tvOS Tests.xctest */; 490 | productType = "com.apple.product-type.bundle.unit-test"; 491 | }; 492 | /* End PBXNativeTarget section */ 493 | 494 | /* Begin PBXProject section */ 495 | A3D0F17F22784E9000DB6073 /* Project object */ = { 496 | isa = PBXProject; 497 | attributes = { 498 | LastSwiftUpdateCheck = 1010; 499 | LastUpgradeCheck = 1010; 500 | TargetAttributes = { 501 | A3D0F18922784EE500DB6073 = { 502 | CreatedOnToolsVersion = 10.1; 503 | }; 504 | A3D0F19222784EE500DB6073 = { 505 | CreatedOnToolsVersion = 10.1; 506 | }; 507 | A3D0F1A622784F0400DB6073 = { 508 | CreatedOnToolsVersion = 10.1; 509 | }; 510 | A3D0F1AE22784F0400DB6073 = { 511 | CreatedOnToolsVersion = 10.1; 512 | }; 513 | A3D0F23022786FA300DB6073 = { 514 | CreatedOnToolsVersion = 10.1; 515 | }; 516 | A3D0F23822786FA300DB6073 = { 517 | CreatedOnToolsVersion = 10.1; 518 | }; 519 | }; 520 | }; 521 | buildConfigurationList = A3D0F18222784E9000DB6073 /* Build configuration list for PBXProject "KoinSwift" */; 522 | compatibilityVersion = "Xcode 9.3"; 523 | developmentRegion = en; 524 | hasScannedForEncodings = 0; 525 | knownRegions = ( 526 | en, 527 | ); 528 | mainGroup = A3D0F17E22784E9000DB6073; 529 | productRefGroup = A3D0F18B22784EE500DB6073 /* Products */; 530 | projectDirPath = ""; 531 | projectRoot = ""; 532 | targets = ( 533 | A3D0F18922784EE500DB6073 /* KoinSwift iOS */, 534 | A3D0F23022786FA300DB6073 /* KoinSwift tvOS */, 535 | A3D0F1A622784F0400DB6073 /* KoinSwift macOS */, 536 | A3D0F19222784EE500DB6073 /* KoinSwift iOS Tests */, 537 | A3D0F23822786FA300DB6073 /* KoinSwift tvOS Tests */, 538 | A3D0F1AE22784F0400DB6073 /* KoinSwift macOS Tests */, 539 | ); 540 | }; 541 | /* End PBXProject section */ 542 | 543 | /* Begin PBXResourcesBuildPhase section */ 544 | A3D0F18822784EE500DB6073 /* Resources */ = { 545 | isa = PBXResourcesBuildPhase; 546 | buildActionMask = 2147483647; 547 | files = ( 548 | ); 549 | runOnlyForDeploymentPostprocessing = 0; 550 | }; 551 | A3D0F19122784EE500DB6073 /* Resources */ = { 552 | isa = PBXResourcesBuildPhase; 553 | buildActionMask = 2147483647; 554 | files = ( 555 | ); 556 | runOnlyForDeploymentPostprocessing = 0; 557 | }; 558 | A3D0F1A522784F0400DB6073 /* Resources */ = { 559 | isa = PBXResourcesBuildPhase; 560 | buildActionMask = 2147483647; 561 | files = ( 562 | ); 563 | runOnlyForDeploymentPostprocessing = 0; 564 | }; 565 | A3D0F1AD22784F0400DB6073 /* Resources */ = { 566 | isa = PBXResourcesBuildPhase; 567 | buildActionMask = 2147483647; 568 | files = ( 569 | ); 570 | runOnlyForDeploymentPostprocessing = 0; 571 | }; 572 | A3D0F22F22786FA300DB6073 /* Resources */ = { 573 | isa = PBXResourcesBuildPhase; 574 | buildActionMask = 2147483647; 575 | files = ( 576 | ); 577 | runOnlyForDeploymentPostprocessing = 0; 578 | }; 579 | A3D0F23722786FA300DB6073 /* Resources */ = { 580 | isa = PBXResourcesBuildPhase; 581 | buildActionMask = 2147483647; 582 | files = ( 583 | ); 584 | runOnlyForDeploymentPostprocessing = 0; 585 | }; 586 | /* End PBXResourcesBuildPhase section */ 587 | 588 | /* Begin PBXShellScriptBuildPhase section */ 589 | A3C37969228AEC5500A14618 /* Swiftlint */ = { 590 | isa = PBXShellScriptBuildPhase; 591 | buildActionMask = 2147483647; 592 | files = ( 593 | ); 594 | inputFileListPaths = ( 595 | ); 596 | inputPaths = ( 597 | ); 598 | name = Swiftlint; 599 | outputFileListPaths = ( 600 | ); 601 | outputPaths = ( 602 | ); 603 | runOnlyForDeploymentPostprocessing = 0; 604 | shellPath = /bin/sh; 605 | shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; 606 | }; 607 | A3C3796B228AEC7400A14618 /* Swiftlint */ = { 608 | isa = PBXShellScriptBuildPhase; 609 | buildActionMask = 2147483647; 610 | files = ( 611 | ); 612 | inputFileListPaths = ( 613 | ); 614 | inputPaths = ( 615 | ); 616 | name = Swiftlint; 617 | outputFileListPaths = ( 618 | ); 619 | outputPaths = ( 620 | ); 621 | runOnlyForDeploymentPostprocessing = 0; 622 | shellPath = /bin/sh; 623 | shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; 624 | }; 625 | A3C3796C228AEC8200A14618 /* Swiftlint */ = { 626 | isa = PBXShellScriptBuildPhase; 627 | buildActionMask = 2147483647; 628 | files = ( 629 | ); 630 | inputFileListPaths = ( 631 | ); 632 | inputPaths = ( 633 | ); 634 | name = Swiftlint; 635 | outputFileListPaths = ( 636 | ); 637 | outputPaths = ( 638 | ); 639 | runOnlyForDeploymentPostprocessing = 0; 640 | shellPath = /bin/sh; 641 | shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; 642 | }; 643 | /* End PBXShellScriptBuildPhase section */ 644 | 645 | /* Begin PBXSourcesBuildPhase section */ 646 | A3D0F18622784EE500DB6073 /* Sources */ = { 647 | isa = PBXSourcesBuildPhase; 648 | buildActionMask = 2147483647; 649 | files = ( 650 | A3D0F1F5227850A100DB6073 /* Koin.swift in Sources */, 651 | A3D0F205227850BC00DB6073 /* ModuleExt.swift in Sources */, 652 | A3D0F206227850BC00DB6073 /* KoinConfig.swift in Sources */, 653 | A3D0F1FC227850A100DB6073 /* Definition.swift in Sources */, 654 | A3D0F1FD227850A100DB6073 /* BeanRegistry.swift in Sources */, 655 | A3D0F1FA227850A100DB6073 /* Kind.swift in Sources */, 656 | A3D0F1F9227850A100DB6073 /* DefinitionFactory.swift in Sources */, 657 | A3D0F207227850BC00DB6073 /* Dsl.swift in Sources */, 658 | A3D0F1FF227850A100DB6073 /* Module.swift in Sources */, 659 | A3D0F200227850A100DB6073 /* KoinErrors.swift in Sources */, 660 | A3D0F1F8227850A100DB6073 /* KoinInjectable.swift in Sources */, 661 | A3D0F1F6227850A100DB6073 /* Qualifier.swift in Sources */, 662 | A3D0F1FB227850A100DB6073 /* BeanDefinition.swift in Sources */, 663 | A3D0F1F4227850A100DB6073 /* GlobalContext.swift in Sources */, 664 | A3D0F1FE227850A100DB6073 /* ModuleDeclaration.swift in Sources */, 665 | ); 666 | runOnlyForDeploymentPostprocessing = 0; 667 | }; 668 | A3D0F18F22784EE500DB6073 /* Sources */ = { 669 | isa = PBXSourcesBuildPhase; 670 | buildActionMask = 2147483647; 671 | files = ( 672 | A3D0F2562278742500DB6073 /* BeanRegistryTests.swift in Sources */, 673 | A3D0F2552278742500DB6073 /* BeanDefinition.swift in Sources */, 674 | ); 675 | runOnlyForDeploymentPostprocessing = 0; 676 | }; 677 | A3D0F1A322784F0400DB6073 /* Sources */ = { 678 | isa = PBXSourcesBuildPhase; 679 | buildActionMask = 2147483647; 680 | files = ( 681 | A3D0F2082278512200DB6073 /* GlobalContext.swift in Sources */, 682 | A3D0F2092278512200DB6073 /* DefinitionFactory.swift in Sources */, 683 | A3D0F2112278512200DB6073 /* BeanRegistry.swift in Sources */, 684 | A3D0F20C2278512200DB6073 /* Definition.swift in Sources */, 685 | A3D0F20B2278512200DB6073 /* BeanDefinition.swift in Sources */, 686 | A3D0F2102278512200DB6073 /* Qualifier.swift in Sources */, 687 | A3D0F2122278512200DB6073 /* Koin.swift in Sources */, 688 | A3D0F20E2278512200DB6073 /* Module.swift in Sources */, 689 | A3D0F2162278512800DB6073 /* Dsl.swift in Sources */, 690 | A3D0F2142278512800DB6073 /* ModuleExt.swift in Sources */, 691 | A3D0F20A2278512200DB6073 /* Kind.swift in Sources */, 692 | A3D0F2152278512800DB6073 /* KoinConfig.swift in Sources */, 693 | A3D0F2132278512200DB6073 /* KoinInjectable.swift in Sources */, 694 | A3D0F20F2278512200DB6073 /* ModuleDeclaration.swift in Sources */, 695 | A3D0F20D2278512200DB6073 /* KoinErrors.swift in Sources */, 696 | ); 697 | runOnlyForDeploymentPostprocessing = 0; 698 | }; 699 | A3D0F1AB22784F0400DB6073 /* Sources */ = { 700 | isa = PBXSourcesBuildPhase; 701 | buildActionMask = 2147483647; 702 | files = ( 703 | A3D0F25A2278742600DB6073 /* BeanRegistryTests.swift in Sources */, 704 | A3D0F2592278742600DB6073 /* BeanDefinition.swift in Sources */, 705 | ); 706 | runOnlyForDeploymentPostprocessing = 0; 707 | }; 708 | A3D0F22D22786FA300DB6073 /* Sources */ = { 709 | isa = PBXSourcesBuildPhase; 710 | buildActionMask = 2147483647; 711 | files = ( 712 | A3D0F25B2278743200DB6073 /* GlobalContext.swift in Sources */, 713 | A3D0F25C2278743200DB6073 /* DefinitionFactory.swift in Sources */, 714 | A3D0F2642278743200DB6073 /* BeanRegistry.swift in Sources */, 715 | A3D0F25F2278743200DB6073 /* Definition.swift in Sources */, 716 | A3D0F25E2278743200DB6073 /* BeanDefinition.swift in Sources */, 717 | A3D0F2632278743200DB6073 /* Qualifier.swift in Sources */, 718 | A3D0F2652278743200DB6073 /* Koin.swift in Sources */, 719 | A3D0F2612278743200DB6073 /* Module.swift in Sources */, 720 | A3D0F2692278743200DB6073 /* Dsl.swift in Sources */, 721 | A3D0F2672278743200DB6073 /* ModuleExt.swift in Sources */, 722 | A3D0F25D2278743200DB6073 /* Kind.swift in Sources */, 723 | A3D0F2682278743200DB6073 /* KoinConfig.swift in Sources */, 724 | A3D0F2662278743200DB6073 /* KoinInjectable.swift in Sources */, 725 | A3D0F2622278743200DB6073 /* ModuleDeclaration.swift in Sources */, 726 | A3D0F2602278743200DB6073 /* KoinErrors.swift in Sources */, 727 | ); 728 | runOnlyForDeploymentPostprocessing = 0; 729 | }; 730 | A3D0F23522786FA300DB6073 /* Sources */ = { 731 | isa = PBXSourcesBuildPhase; 732 | buildActionMask = 2147483647; 733 | files = ( 734 | A3D0F2582278742600DB6073 /* BeanRegistryTests.swift in Sources */, 735 | A3D0F2572278742600DB6073 /* BeanDefinition.swift in Sources */, 736 | ); 737 | runOnlyForDeploymentPostprocessing = 0; 738 | }; 739 | /* End PBXSourcesBuildPhase section */ 740 | 741 | /* Begin PBXTargetDependency section */ 742 | A3D0F19622784EE500DB6073 /* PBXTargetDependency */ = { 743 | isa = PBXTargetDependency; 744 | target = A3D0F18922784EE500DB6073 /* KoinSwift iOS */; 745 | targetProxy = A3D0F19522784EE500DB6073 /* PBXContainerItemProxy */; 746 | }; 747 | A3D0F1B222784F0400DB6073 /* PBXTargetDependency */ = { 748 | isa = PBXTargetDependency; 749 | target = A3D0F1A622784F0400DB6073 /* KoinSwift macOS */; 750 | targetProxy = A3D0F1B122784F0400DB6073 /* PBXContainerItemProxy */; 751 | }; 752 | A3D0F23C22786FA300DB6073 /* PBXTargetDependency */ = { 753 | isa = PBXTargetDependency; 754 | target = A3D0F23022786FA300DB6073 /* KoinSwift tvOS */; 755 | targetProxy = A3D0F23B22786FA300DB6073 /* PBXContainerItemProxy */; 756 | }; 757 | /* End PBXTargetDependency section */ 758 | 759 | /* Begin XCBuildConfiguration section */ 760 | A3D0F18322784E9000DB6073 /* Debug */ = { 761 | isa = XCBuildConfiguration; 762 | buildSettings = { 763 | LIBRARY_VERSION = 0.1; 764 | PRODUCT_NAME = KoinSwift; 765 | }; 766 | name = Debug; 767 | }; 768 | A3D0F18422784E9000DB6073 /* Release */ = { 769 | isa = XCBuildConfiguration; 770 | buildSettings = { 771 | LIBRARY_VERSION = 0.1; 772 | PRODUCT_NAME = KoinSwift; 773 | }; 774 | name = Release; 775 | }; 776 | A3D0F19D22784EE500DB6073 /* Debug */ = { 777 | isa = XCBuildConfiguration; 778 | buildSettings = { 779 | ALWAYS_SEARCH_USER_PATHS = NO; 780 | CLANG_ANALYZER_NONNULL = YES; 781 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 782 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 783 | CLANG_CXX_LIBRARY = "libc++"; 784 | CLANG_ENABLE_MODULES = YES; 785 | CLANG_ENABLE_OBJC_ARC = YES; 786 | CLANG_ENABLE_OBJC_WEAK = YES; 787 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 788 | CLANG_WARN_BOOL_CONVERSION = YES; 789 | CLANG_WARN_COMMA = YES; 790 | CLANG_WARN_CONSTANT_CONVERSION = YES; 791 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 792 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 793 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 794 | CLANG_WARN_EMPTY_BODY = YES; 795 | CLANG_WARN_ENUM_CONVERSION = YES; 796 | CLANG_WARN_INFINITE_RECURSION = YES; 797 | CLANG_WARN_INT_CONVERSION = YES; 798 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 799 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 800 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 801 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 802 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 803 | CLANG_WARN_STRICT_PROTOTYPES = YES; 804 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 805 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 806 | CLANG_WARN_UNREACHABLE_CODE = YES; 807 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 808 | CODE_SIGN_IDENTITY = "iPhone Developer"; 809 | CODE_SIGN_STYLE = Automatic; 810 | COPY_PHASE_STRIP = NO; 811 | CURRENT_PROJECT_VERSION = 1; 812 | DEBUG_INFORMATION_FORMAT = dwarf; 813 | DEFINES_MODULE = YES; 814 | DYLIB_COMPATIBILITY_VERSION = 1; 815 | DYLIB_CURRENT_VERSION = 1; 816 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 817 | ENABLE_STRICT_OBJC_MSGSEND = YES; 818 | ENABLE_TESTABILITY = YES; 819 | GCC_C_LANGUAGE_STANDARD = gnu11; 820 | GCC_DYNAMIC_NO_PIC = NO; 821 | GCC_NO_COMMON_BLOCKS = YES; 822 | GCC_OPTIMIZATION_LEVEL = 0; 823 | GCC_PREPROCESSOR_DEFINITIONS = ( 824 | "DEBUG=1", 825 | "$(inherited)", 826 | ); 827 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 828 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 829 | GCC_WARN_UNDECLARED_SELECTOR = YES; 830 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 831 | GCC_WARN_UNUSED_FUNCTION = YES; 832 | GCC_WARN_UNUSED_VARIABLE = YES; 833 | INFOPLIST_FILE = "KoinSwift iOS/Info.plist"; 834 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 835 | IPHONEOS_DEPLOYMENT_TARGET = 12.1; 836 | LD_RUNPATH_SEARCH_PATHS = ( 837 | "$(inherited)", 838 | "@executable_path/Frameworks", 839 | "@loader_path/Frameworks", 840 | ); 841 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 842 | MTL_FAST_MATH = YES; 843 | ONLY_ACTIVE_ARCH = YES; 844 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 845 | SDKROOT = iphoneos; 846 | SKIP_INSTALL = YES; 847 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 848 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 849 | SWIFT_VERSION = 4.2; 850 | TARGETED_DEVICE_FAMILY = "1,2"; 851 | VERSIONING_SYSTEM = "apple-generic"; 852 | VERSION_INFO_PREFIX = ""; 853 | }; 854 | name = Debug; 855 | }; 856 | A3D0F19E22784EE500DB6073 /* Release */ = { 857 | isa = XCBuildConfiguration; 858 | buildSettings = { 859 | ALWAYS_SEARCH_USER_PATHS = NO; 860 | CLANG_ANALYZER_NONNULL = YES; 861 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 862 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 863 | CLANG_CXX_LIBRARY = "libc++"; 864 | CLANG_ENABLE_MODULES = YES; 865 | CLANG_ENABLE_OBJC_ARC = YES; 866 | CLANG_ENABLE_OBJC_WEAK = YES; 867 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 868 | CLANG_WARN_BOOL_CONVERSION = YES; 869 | CLANG_WARN_COMMA = YES; 870 | CLANG_WARN_CONSTANT_CONVERSION = YES; 871 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 872 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 873 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 874 | CLANG_WARN_EMPTY_BODY = YES; 875 | CLANG_WARN_ENUM_CONVERSION = YES; 876 | CLANG_WARN_INFINITE_RECURSION = YES; 877 | CLANG_WARN_INT_CONVERSION = YES; 878 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 879 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 880 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 881 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 882 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 883 | CLANG_WARN_STRICT_PROTOTYPES = YES; 884 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 885 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 886 | CLANG_WARN_UNREACHABLE_CODE = YES; 887 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 888 | CODE_SIGN_IDENTITY = "iPhone Developer"; 889 | CODE_SIGN_STYLE = Automatic; 890 | COPY_PHASE_STRIP = NO; 891 | CURRENT_PROJECT_VERSION = 1; 892 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 893 | DEFINES_MODULE = YES; 894 | DYLIB_COMPATIBILITY_VERSION = 1; 895 | DYLIB_CURRENT_VERSION = 1; 896 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 897 | ENABLE_NS_ASSERTIONS = NO; 898 | ENABLE_STRICT_OBJC_MSGSEND = YES; 899 | GCC_C_LANGUAGE_STANDARD = gnu11; 900 | GCC_NO_COMMON_BLOCKS = YES; 901 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 902 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 903 | GCC_WARN_UNDECLARED_SELECTOR = YES; 904 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 905 | GCC_WARN_UNUSED_FUNCTION = YES; 906 | GCC_WARN_UNUSED_VARIABLE = YES; 907 | INFOPLIST_FILE = "KoinSwift iOS/Info.plist"; 908 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 909 | IPHONEOS_DEPLOYMENT_TARGET = 12.1; 910 | LD_RUNPATH_SEARCH_PATHS = ( 911 | "$(inherited)", 912 | "@executable_path/Frameworks", 913 | "@loader_path/Frameworks", 914 | ); 915 | MTL_ENABLE_DEBUG_INFO = NO; 916 | MTL_FAST_MATH = YES; 917 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 918 | SDKROOT = iphoneos; 919 | SKIP_INSTALL = YES; 920 | SWIFT_COMPILATION_MODE = wholemodule; 921 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 922 | SWIFT_VERSION = 4.2; 923 | TARGETED_DEVICE_FAMILY = "1,2"; 924 | VALIDATE_PRODUCT = YES; 925 | VERSIONING_SYSTEM = "apple-generic"; 926 | VERSION_INFO_PREFIX = ""; 927 | }; 928 | name = Release; 929 | }; 930 | A3D0F1A022784EE500DB6073 /* Debug */ = { 931 | isa = XCBuildConfiguration; 932 | buildSettings = { 933 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 934 | ALWAYS_SEARCH_USER_PATHS = NO; 935 | CLANG_ANALYZER_NONNULL = YES; 936 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 937 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 938 | CLANG_CXX_LIBRARY = "libc++"; 939 | CLANG_ENABLE_MODULES = YES; 940 | CLANG_ENABLE_OBJC_ARC = YES; 941 | CLANG_ENABLE_OBJC_WEAK = YES; 942 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 943 | CLANG_WARN_BOOL_CONVERSION = YES; 944 | CLANG_WARN_COMMA = YES; 945 | CLANG_WARN_CONSTANT_CONVERSION = YES; 946 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 947 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 948 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 949 | CLANG_WARN_EMPTY_BODY = YES; 950 | CLANG_WARN_ENUM_CONVERSION = YES; 951 | CLANG_WARN_INFINITE_RECURSION = YES; 952 | CLANG_WARN_INT_CONVERSION = YES; 953 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 954 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 955 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 956 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 957 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 958 | CLANG_WARN_STRICT_PROTOTYPES = YES; 959 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 960 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 961 | CLANG_WARN_UNREACHABLE_CODE = YES; 962 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 963 | CODE_SIGN_IDENTITY = "iPhone Developer"; 964 | CODE_SIGN_STYLE = Automatic; 965 | COPY_PHASE_STRIP = NO; 966 | DEBUG_INFORMATION_FORMAT = dwarf; 967 | ENABLE_STRICT_OBJC_MSGSEND = YES; 968 | ENABLE_TESTABILITY = YES; 969 | GCC_C_LANGUAGE_STANDARD = gnu11; 970 | GCC_DYNAMIC_NO_PIC = NO; 971 | GCC_NO_COMMON_BLOCKS = YES; 972 | GCC_OPTIMIZATION_LEVEL = 0; 973 | GCC_PREPROCESSOR_DEFINITIONS = ( 974 | "DEBUG=1", 975 | "$(inherited)", 976 | ); 977 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 978 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 979 | GCC_WARN_UNDECLARED_SELECTOR = YES; 980 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 981 | GCC_WARN_UNUSED_FUNCTION = YES; 982 | GCC_WARN_UNUSED_VARIABLE = YES; 983 | INFOPLIST_FILE = "KoinSwift iOS Tests/Info.plist"; 984 | IPHONEOS_DEPLOYMENT_TARGET = 12.1; 985 | LD_RUNPATH_SEARCH_PATHS = ( 986 | "$(inherited)", 987 | "@executable_path/Frameworks", 988 | "@loader_path/Frameworks", 989 | ); 990 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 991 | MTL_FAST_MATH = YES; 992 | ONLY_ACTIVE_ARCH = YES; 993 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.ios.KoinSwiftIosTests; 994 | PRODUCT_NAME = "$(TARGET_NAME)"; 995 | SDKROOT = iphoneos; 996 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 997 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 998 | SWIFT_VERSION = 4.2; 999 | TARGETED_DEVICE_FAMILY = "1,2"; 1000 | }; 1001 | name = Debug; 1002 | }; 1003 | A3D0F1A122784EE500DB6073 /* Release */ = { 1004 | isa = XCBuildConfiguration; 1005 | buildSettings = { 1006 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1007 | ALWAYS_SEARCH_USER_PATHS = NO; 1008 | CLANG_ANALYZER_NONNULL = YES; 1009 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1010 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1011 | CLANG_CXX_LIBRARY = "libc++"; 1012 | CLANG_ENABLE_MODULES = YES; 1013 | CLANG_ENABLE_OBJC_ARC = YES; 1014 | CLANG_ENABLE_OBJC_WEAK = YES; 1015 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1016 | CLANG_WARN_BOOL_CONVERSION = YES; 1017 | CLANG_WARN_COMMA = YES; 1018 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1019 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1020 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1021 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1022 | CLANG_WARN_EMPTY_BODY = YES; 1023 | CLANG_WARN_ENUM_CONVERSION = YES; 1024 | CLANG_WARN_INFINITE_RECURSION = YES; 1025 | CLANG_WARN_INT_CONVERSION = YES; 1026 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1027 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1028 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1029 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1030 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1031 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1032 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1033 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1034 | CLANG_WARN_UNREACHABLE_CODE = YES; 1035 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1036 | CODE_SIGN_IDENTITY = "iPhone Developer"; 1037 | CODE_SIGN_STYLE = Automatic; 1038 | COPY_PHASE_STRIP = NO; 1039 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1040 | ENABLE_NS_ASSERTIONS = NO; 1041 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1042 | GCC_C_LANGUAGE_STANDARD = gnu11; 1043 | GCC_NO_COMMON_BLOCKS = YES; 1044 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1045 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1046 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1047 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1048 | GCC_WARN_UNUSED_FUNCTION = YES; 1049 | GCC_WARN_UNUSED_VARIABLE = YES; 1050 | INFOPLIST_FILE = "KoinSwift iOS Tests/Info.plist"; 1051 | IPHONEOS_DEPLOYMENT_TARGET = 12.1; 1052 | LD_RUNPATH_SEARCH_PATHS = ( 1053 | "$(inherited)", 1054 | "@executable_path/Frameworks", 1055 | "@loader_path/Frameworks", 1056 | ); 1057 | MTL_ENABLE_DEBUG_INFO = NO; 1058 | MTL_FAST_MATH = YES; 1059 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.ios.KoinSwiftIosTests; 1060 | PRODUCT_NAME = "$(TARGET_NAME)"; 1061 | SDKROOT = iphoneos; 1062 | SWIFT_COMPILATION_MODE = wholemodule; 1063 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1064 | SWIFT_VERSION = 4.2; 1065 | TARGETED_DEVICE_FAMILY = "1,2"; 1066 | VALIDATE_PRODUCT = YES; 1067 | }; 1068 | name = Release; 1069 | }; 1070 | A3D0F1B922784F0400DB6073 /* Debug */ = { 1071 | isa = XCBuildConfiguration; 1072 | buildSettings = { 1073 | ALWAYS_SEARCH_USER_PATHS = NO; 1074 | CLANG_ANALYZER_NONNULL = YES; 1075 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1076 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1077 | CLANG_CXX_LIBRARY = "libc++"; 1078 | CLANG_ENABLE_MODULES = YES; 1079 | CLANG_ENABLE_OBJC_ARC = YES; 1080 | CLANG_ENABLE_OBJC_WEAK = YES; 1081 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1082 | CLANG_WARN_BOOL_CONVERSION = YES; 1083 | CLANG_WARN_COMMA = YES; 1084 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1085 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1086 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1087 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1088 | CLANG_WARN_EMPTY_BODY = YES; 1089 | CLANG_WARN_ENUM_CONVERSION = YES; 1090 | CLANG_WARN_INFINITE_RECURSION = YES; 1091 | CLANG_WARN_INT_CONVERSION = YES; 1092 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1093 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1094 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1095 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1096 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1097 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1098 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1099 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1100 | CLANG_WARN_UNREACHABLE_CODE = YES; 1101 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1102 | CODE_SIGN_IDENTITY = "-"; 1103 | CODE_SIGN_STYLE = Automatic; 1104 | COMBINE_HIDPI_IMAGES = YES; 1105 | COPY_PHASE_STRIP = NO; 1106 | CURRENT_PROJECT_VERSION = 1; 1107 | DEBUG_INFORMATION_FORMAT = dwarf; 1108 | DEFINES_MODULE = YES; 1109 | DYLIB_COMPATIBILITY_VERSION = 1; 1110 | DYLIB_CURRENT_VERSION = 1; 1111 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1112 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1113 | ENABLE_TESTABILITY = YES; 1114 | FRAMEWORK_VERSION = A; 1115 | GCC_C_LANGUAGE_STANDARD = gnu11; 1116 | GCC_DYNAMIC_NO_PIC = NO; 1117 | GCC_NO_COMMON_BLOCKS = YES; 1118 | GCC_OPTIMIZATION_LEVEL = 0; 1119 | GCC_PREPROCESSOR_DEFINITIONS = ( 1120 | "DEBUG=1", 1121 | "$(inherited)", 1122 | ); 1123 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1124 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1125 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1126 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1127 | GCC_WARN_UNUSED_FUNCTION = YES; 1128 | GCC_WARN_UNUSED_VARIABLE = YES; 1129 | INFOPLIST_FILE = "KoinSwift macOS/Info.plist"; 1130 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1131 | LD_RUNPATH_SEARCH_PATHS = ( 1132 | "$(inherited)", 1133 | "@executable_path/../Frameworks", 1134 | "@loader_path/Frameworks", 1135 | ); 1136 | MACOSX_DEPLOYMENT_TARGET = 10.13; 1137 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 1138 | MTL_FAST_MATH = YES; 1139 | ONLY_ACTIVE_ARCH = YES; 1140 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 1141 | SDKROOT = macosx; 1142 | SKIP_INSTALL = YES; 1143 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 1144 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 1145 | SWIFT_VERSION = 4.2; 1146 | VERSIONING_SYSTEM = "apple-generic"; 1147 | VERSION_INFO_PREFIX = ""; 1148 | }; 1149 | name = Debug; 1150 | }; 1151 | A3D0F1BA22784F0400DB6073 /* Release */ = { 1152 | isa = XCBuildConfiguration; 1153 | buildSettings = { 1154 | ALWAYS_SEARCH_USER_PATHS = NO; 1155 | CLANG_ANALYZER_NONNULL = YES; 1156 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1157 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1158 | CLANG_CXX_LIBRARY = "libc++"; 1159 | CLANG_ENABLE_MODULES = YES; 1160 | CLANG_ENABLE_OBJC_ARC = YES; 1161 | CLANG_ENABLE_OBJC_WEAK = YES; 1162 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1163 | CLANG_WARN_BOOL_CONVERSION = YES; 1164 | CLANG_WARN_COMMA = YES; 1165 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1166 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1167 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1168 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1169 | CLANG_WARN_EMPTY_BODY = YES; 1170 | CLANG_WARN_ENUM_CONVERSION = YES; 1171 | CLANG_WARN_INFINITE_RECURSION = YES; 1172 | CLANG_WARN_INT_CONVERSION = YES; 1173 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1174 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1175 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1176 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1177 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1178 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1179 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1180 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1181 | CLANG_WARN_UNREACHABLE_CODE = YES; 1182 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1183 | CODE_SIGN_IDENTITY = "-"; 1184 | CODE_SIGN_STYLE = Automatic; 1185 | COMBINE_HIDPI_IMAGES = YES; 1186 | COPY_PHASE_STRIP = NO; 1187 | CURRENT_PROJECT_VERSION = 1; 1188 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1189 | DEFINES_MODULE = YES; 1190 | DYLIB_COMPATIBILITY_VERSION = 1; 1191 | DYLIB_CURRENT_VERSION = 1; 1192 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1193 | ENABLE_NS_ASSERTIONS = NO; 1194 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1195 | FRAMEWORK_VERSION = A; 1196 | GCC_C_LANGUAGE_STANDARD = gnu11; 1197 | GCC_NO_COMMON_BLOCKS = YES; 1198 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1199 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1200 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1201 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1202 | GCC_WARN_UNUSED_FUNCTION = YES; 1203 | GCC_WARN_UNUSED_VARIABLE = YES; 1204 | INFOPLIST_FILE = "KoinSwift macOS/Info.plist"; 1205 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1206 | LD_RUNPATH_SEARCH_PATHS = ( 1207 | "$(inherited)", 1208 | "@executable_path/../Frameworks", 1209 | "@loader_path/Frameworks", 1210 | ); 1211 | MACOSX_DEPLOYMENT_TARGET = 10.13; 1212 | MTL_ENABLE_DEBUG_INFO = NO; 1213 | MTL_FAST_MATH = YES; 1214 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 1215 | SDKROOT = macosx; 1216 | SKIP_INSTALL = YES; 1217 | SWIFT_COMPILATION_MODE = wholemodule; 1218 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1219 | SWIFT_VERSION = 4.2; 1220 | VERSIONING_SYSTEM = "apple-generic"; 1221 | VERSION_INFO_PREFIX = ""; 1222 | }; 1223 | name = Release; 1224 | }; 1225 | A3D0F1BC22784F0400DB6073 /* Debug */ = { 1226 | isa = XCBuildConfiguration; 1227 | buildSettings = { 1228 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1229 | ALWAYS_SEARCH_USER_PATHS = NO; 1230 | CLANG_ANALYZER_NONNULL = YES; 1231 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1232 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1233 | CLANG_CXX_LIBRARY = "libc++"; 1234 | CLANG_ENABLE_MODULES = YES; 1235 | CLANG_ENABLE_OBJC_ARC = YES; 1236 | CLANG_ENABLE_OBJC_WEAK = YES; 1237 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1238 | CLANG_WARN_BOOL_CONVERSION = YES; 1239 | CLANG_WARN_COMMA = YES; 1240 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1241 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1242 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1243 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1244 | CLANG_WARN_EMPTY_BODY = YES; 1245 | CLANG_WARN_ENUM_CONVERSION = YES; 1246 | CLANG_WARN_INFINITE_RECURSION = YES; 1247 | CLANG_WARN_INT_CONVERSION = YES; 1248 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1249 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1250 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1251 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1252 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1253 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1254 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1255 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1256 | CLANG_WARN_UNREACHABLE_CODE = YES; 1257 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1258 | CODE_SIGN_IDENTITY = "-"; 1259 | CODE_SIGN_STYLE = Automatic; 1260 | COMBINE_HIDPI_IMAGES = YES; 1261 | COPY_PHASE_STRIP = NO; 1262 | DEBUG_INFORMATION_FORMAT = dwarf; 1263 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1264 | ENABLE_TESTABILITY = YES; 1265 | GCC_C_LANGUAGE_STANDARD = gnu11; 1266 | GCC_DYNAMIC_NO_PIC = NO; 1267 | GCC_NO_COMMON_BLOCKS = YES; 1268 | GCC_OPTIMIZATION_LEVEL = 0; 1269 | GCC_PREPROCESSOR_DEFINITIONS = ( 1270 | "DEBUG=1", 1271 | "$(inherited)", 1272 | ); 1273 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1274 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1275 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1276 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1277 | GCC_WARN_UNUSED_FUNCTION = YES; 1278 | GCC_WARN_UNUSED_VARIABLE = YES; 1279 | INFOPLIST_FILE = "KoinSwift macOS Tests/Info.plist"; 1280 | LD_RUNPATH_SEARCH_PATHS = ( 1281 | "$(inherited)", 1282 | "@executable_path/../Frameworks", 1283 | "@loader_path/../Frameworks", 1284 | ); 1285 | MACOSX_DEPLOYMENT_TARGET = 10.13; 1286 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 1287 | MTL_FAST_MATH = YES; 1288 | ONLY_ACTIVE_ARCH = YES; 1289 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.ios.KoinSwiftOsxTests; 1290 | PRODUCT_NAME = "$(TARGET_NAME)"; 1291 | SDKROOT = macosx; 1292 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 1293 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 1294 | SWIFT_VERSION = 4.2; 1295 | }; 1296 | name = Debug; 1297 | }; 1298 | A3D0F1BD22784F0400DB6073 /* Release */ = { 1299 | isa = XCBuildConfiguration; 1300 | buildSettings = { 1301 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1302 | ALWAYS_SEARCH_USER_PATHS = NO; 1303 | CLANG_ANALYZER_NONNULL = YES; 1304 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1305 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1306 | CLANG_CXX_LIBRARY = "libc++"; 1307 | CLANG_ENABLE_MODULES = YES; 1308 | CLANG_ENABLE_OBJC_ARC = YES; 1309 | CLANG_ENABLE_OBJC_WEAK = YES; 1310 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1311 | CLANG_WARN_BOOL_CONVERSION = YES; 1312 | CLANG_WARN_COMMA = YES; 1313 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1314 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1315 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1316 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1317 | CLANG_WARN_EMPTY_BODY = YES; 1318 | CLANG_WARN_ENUM_CONVERSION = YES; 1319 | CLANG_WARN_INFINITE_RECURSION = YES; 1320 | CLANG_WARN_INT_CONVERSION = YES; 1321 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1322 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1323 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1324 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1325 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1326 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1327 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1328 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1329 | CLANG_WARN_UNREACHABLE_CODE = YES; 1330 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1331 | CODE_SIGN_IDENTITY = "-"; 1332 | CODE_SIGN_STYLE = Automatic; 1333 | COMBINE_HIDPI_IMAGES = YES; 1334 | COPY_PHASE_STRIP = NO; 1335 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1336 | ENABLE_NS_ASSERTIONS = NO; 1337 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1338 | GCC_C_LANGUAGE_STANDARD = gnu11; 1339 | GCC_NO_COMMON_BLOCKS = YES; 1340 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1341 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1342 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1343 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1344 | GCC_WARN_UNUSED_FUNCTION = YES; 1345 | GCC_WARN_UNUSED_VARIABLE = YES; 1346 | INFOPLIST_FILE = "KoinSwift macOS Tests/Info.plist"; 1347 | LD_RUNPATH_SEARCH_PATHS = ( 1348 | "$(inherited)", 1349 | "@executable_path/../Frameworks", 1350 | "@loader_path/../Frameworks", 1351 | ); 1352 | MACOSX_DEPLOYMENT_TARGET = 10.13; 1353 | MTL_ENABLE_DEBUG_INFO = NO; 1354 | MTL_FAST_MATH = YES; 1355 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.ios.KoinSwiftOsxTests; 1356 | PRODUCT_NAME = "$(TARGET_NAME)"; 1357 | SDKROOT = macosx; 1358 | SWIFT_COMPILATION_MODE = wholemodule; 1359 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1360 | SWIFT_VERSION = 4.2; 1361 | }; 1362 | name = Release; 1363 | }; 1364 | A3D0F24322786FA300DB6073 /* Debug */ = { 1365 | isa = XCBuildConfiguration; 1366 | buildSettings = { 1367 | ALWAYS_SEARCH_USER_PATHS = NO; 1368 | CLANG_ANALYZER_NONNULL = YES; 1369 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1370 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1371 | CLANG_CXX_LIBRARY = "libc++"; 1372 | CLANG_ENABLE_MODULES = YES; 1373 | CLANG_ENABLE_OBJC_ARC = YES; 1374 | CLANG_ENABLE_OBJC_WEAK = YES; 1375 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1376 | CLANG_WARN_BOOL_CONVERSION = YES; 1377 | CLANG_WARN_COMMA = YES; 1378 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1379 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1380 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1381 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1382 | CLANG_WARN_EMPTY_BODY = YES; 1383 | CLANG_WARN_ENUM_CONVERSION = YES; 1384 | CLANG_WARN_INFINITE_RECURSION = YES; 1385 | CLANG_WARN_INT_CONVERSION = YES; 1386 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1387 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1388 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1389 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1390 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1391 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1392 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1393 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1394 | CLANG_WARN_UNREACHABLE_CODE = YES; 1395 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1396 | CODE_SIGN_IDENTITY = ""; 1397 | CODE_SIGN_STYLE = Automatic; 1398 | COPY_PHASE_STRIP = NO; 1399 | CURRENT_PROJECT_VERSION = 1; 1400 | DEBUG_INFORMATION_FORMAT = dwarf; 1401 | DEFINES_MODULE = YES; 1402 | DYLIB_COMPATIBILITY_VERSION = 1; 1403 | DYLIB_CURRENT_VERSION = 1; 1404 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1405 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1406 | ENABLE_TESTABILITY = YES; 1407 | GCC_C_LANGUAGE_STANDARD = gnu11; 1408 | GCC_DYNAMIC_NO_PIC = NO; 1409 | GCC_NO_COMMON_BLOCKS = YES; 1410 | GCC_OPTIMIZATION_LEVEL = 0; 1411 | GCC_PREPROCESSOR_DEFINITIONS = ( 1412 | "DEBUG=1", 1413 | "$(inherited)", 1414 | ); 1415 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1416 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1417 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1418 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1419 | GCC_WARN_UNUSED_FUNCTION = YES; 1420 | GCC_WARN_UNUSED_VARIABLE = YES; 1421 | INFOPLIST_FILE = "KoinSwift tvOS/Info.plist"; 1422 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1423 | LD_RUNPATH_SEARCH_PATHS = ( 1424 | "$(inherited)", 1425 | "@executable_path/Frameworks", 1426 | "@loader_path/Frameworks", 1427 | ); 1428 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 1429 | MTL_FAST_MATH = YES; 1430 | ONLY_ACTIVE_ARCH = YES; 1431 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 1432 | SDKROOT = appletvos; 1433 | SKIP_INSTALL = YES; 1434 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 1435 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 1436 | SWIFT_VERSION = 4.2; 1437 | TARGETED_DEVICE_FAMILY = 3; 1438 | TVOS_DEPLOYMENT_TARGET = 12.1; 1439 | VERSIONING_SYSTEM = "apple-generic"; 1440 | VERSION_INFO_PREFIX = ""; 1441 | }; 1442 | name = Debug; 1443 | }; 1444 | A3D0F24422786FA300DB6073 /* Release */ = { 1445 | isa = XCBuildConfiguration; 1446 | buildSettings = { 1447 | ALWAYS_SEARCH_USER_PATHS = NO; 1448 | CLANG_ANALYZER_NONNULL = YES; 1449 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1450 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1451 | CLANG_CXX_LIBRARY = "libc++"; 1452 | CLANG_ENABLE_MODULES = YES; 1453 | CLANG_ENABLE_OBJC_ARC = YES; 1454 | CLANG_ENABLE_OBJC_WEAK = YES; 1455 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1456 | CLANG_WARN_BOOL_CONVERSION = YES; 1457 | CLANG_WARN_COMMA = YES; 1458 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1459 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1460 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1461 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1462 | CLANG_WARN_EMPTY_BODY = YES; 1463 | CLANG_WARN_ENUM_CONVERSION = YES; 1464 | CLANG_WARN_INFINITE_RECURSION = YES; 1465 | CLANG_WARN_INT_CONVERSION = YES; 1466 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1467 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1468 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1469 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1470 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1471 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1472 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1473 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1474 | CLANG_WARN_UNREACHABLE_CODE = YES; 1475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1476 | CODE_SIGN_IDENTITY = ""; 1477 | CODE_SIGN_STYLE = Automatic; 1478 | COPY_PHASE_STRIP = NO; 1479 | CURRENT_PROJECT_VERSION = 1; 1480 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1481 | DEFINES_MODULE = YES; 1482 | DYLIB_COMPATIBILITY_VERSION = 1; 1483 | DYLIB_CURRENT_VERSION = 1; 1484 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1485 | ENABLE_NS_ASSERTIONS = NO; 1486 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1487 | GCC_C_LANGUAGE_STANDARD = gnu11; 1488 | GCC_NO_COMMON_BLOCKS = YES; 1489 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1490 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1491 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1492 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1493 | GCC_WARN_UNUSED_FUNCTION = YES; 1494 | GCC_WARN_UNUSED_VARIABLE = YES; 1495 | INFOPLIST_FILE = "KoinSwift tvOS/Info.plist"; 1496 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1497 | LD_RUNPATH_SEARCH_PATHS = ( 1498 | "$(inherited)", 1499 | "@executable_path/Frameworks", 1500 | "@loader_path/Frameworks", 1501 | ); 1502 | MTL_ENABLE_DEBUG_INFO = NO; 1503 | MTL_FAST_MATH = YES; 1504 | PRODUCT_BUNDLE_IDENTIFIER = io.insertkoin.swift; 1505 | SDKROOT = appletvos; 1506 | SKIP_INSTALL = YES; 1507 | SWIFT_COMPILATION_MODE = wholemodule; 1508 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1509 | SWIFT_VERSION = 4.2; 1510 | TARGETED_DEVICE_FAMILY = 3; 1511 | TVOS_DEPLOYMENT_TARGET = 12.1; 1512 | VALIDATE_PRODUCT = YES; 1513 | VERSIONING_SYSTEM = "apple-generic"; 1514 | VERSION_INFO_PREFIX = ""; 1515 | }; 1516 | name = Release; 1517 | }; 1518 | A3D0F24622786FA300DB6073 /* Debug */ = { 1519 | isa = XCBuildConfiguration; 1520 | buildSettings = { 1521 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1522 | ALWAYS_SEARCH_USER_PATHS = NO; 1523 | CLANG_ANALYZER_NONNULL = YES; 1524 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1525 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1526 | CLANG_CXX_LIBRARY = "libc++"; 1527 | CLANG_ENABLE_MODULES = YES; 1528 | CLANG_ENABLE_OBJC_ARC = YES; 1529 | CLANG_ENABLE_OBJC_WEAK = YES; 1530 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1531 | CLANG_WARN_BOOL_CONVERSION = YES; 1532 | CLANG_WARN_COMMA = YES; 1533 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1534 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1535 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1536 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1537 | CLANG_WARN_EMPTY_BODY = YES; 1538 | CLANG_WARN_ENUM_CONVERSION = YES; 1539 | CLANG_WARN_INFINITE_RECURSION = YES; 1540 | CLANG_WARN_INT_CONVERSION = YES; 1541 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1542 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1543 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1544 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1545 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1546 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1547 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1548 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1549 | CLANG_WARN_UNREACHABLE_CODE = YES; 1550 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1551 | CODE_SIGN_STYLE = Automatic; 1552 | COPY_PHASE_STRIP = NO; 1553 | DEBUG_INFORMATION_FORMAT = dwarf; 1554 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1555 | ENABLE_TESTABILITY = YES; 1556 | GCC_C_LANGUAGE_STANDARD = gnu11; 1557 | GCC_DYNAMIC_NO_PIC = NO; 1558 | GCC_NO_COMMON_BLOCKS = YES; 1559 | GCC_OPTIMIZATION_LEVEL = 0; 1560 | GCC_PREPROCESSOR_DEFINITIONS = ( 1561 | "DEBUG=1", 1562 | "$(inherited)", 1563 | ); 1564 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1565 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1566 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1567 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1568 | GCC_WARN_UNUSED_FUNCTION = YES; 1569 | GCC_WARN_UNUSED_VARIABLE = YES; 1570 | INFOPLIST_FILE = "KoinSwift tvOS Tests/Info.plist"; 1571 | LD_RUNPATH_SEARCH_PATHS = ( 1572 | "$(inherited)", 1573 | "@executable_path/Frameworks", 1574 | "@loader_path/Frameworks", 1575 | ); 1576 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 1577 | MTL_FAST_MATH = YES; 1578 | ONLY_ACTIVE_ARCH = YES; 1579 | PRODUCT_BUNDLE_IDENTIFIER = "io.insertkoin.ios.KoinSwift-tvOSTests"; 1580 | PRODUCT_NAME = "$(TARGET_NAME)"; 1581 | SDKROOT = appletvos; 1582 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 1583 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 1584 | SWIFT_VERSION = 4.2; 1585 | TARGETED_DEVICE_FAMILY = 3; 1586 | TVOS_DEPLOYMENT_TARGET = 12.1; 1587 | }; 1588 | name = Debug; 1589 | }; 1590 | A3D0F24722786FA300DB6073 /* Release */ = { 1591 | isa = XCBuildConfiguration; 1592 | buildSettings = { 1593 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1594 | ALWAYS_SEARCH_USER_PATHS = NO; 1595 | CLANG_ANALYZER_NONNULL = YES; 1596 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1597 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1598 | CLANG_CXX_LIBRARY = "libc++"; 1599 | CLANG_ENABLE_MODULES = YES; 1600 | CLANG_ENABLE_OBJC_ARC = YES; 1601 | CLANG_ENABLE_OBJC_WEAK = YES; 1602 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1603 | CLANG_WARN_BOOL_CONVERSION = YES; 1604 | CLANG_WARN_COMMA = YES; 1605 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1606 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1607 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1608 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1609 | CLANG_WARN_EMPTY_BODY = YES; 1610 | CLANG_WARN_ENUM_CONVERSION = YES; 1611 | CLANG_WARN_INFINITE_RECURSION = YES; 1612 | CLANG_WARN_INT_CONVERSION = YES; 1613 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1614 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1615 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1616 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1617 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1618 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1619 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1620 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1621 | CLANG_WARN_UNREACHABLE_CODE = YES; 1622 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1623 | CODE_SIGN_STYLE = Automatic; 1624 | COPY_PHASE_STRIP = NO; 1625 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1626 | ENABLE_NS_ASSERTIONS = NO; 1627 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1628 | GCC_C_LANGUAGE_STANDARD = gnu11; 1629 | GCC_NO_COMMON_BLOCKS = YES; 1630 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1631 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1632 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1633 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1634 | GCC_WARN_UNUSED_FUNCTION = YES; 1635 | GCC_WARN_UNUSED_VARIABLE = YES; 1636 | INFOPLIST_FILE = "KoinSwift tvOS Tests/Info.plist"; 1637 | LD_RUNPATH_SEARCH_PATHS = ( 1638 | "$(inherited)", 1639 | "@executable_path/Frameworks", 1640 | "@loader_path/Frameworks", 1641 | ); 1642 | MTL_ENABLE_DEBUG_INFO = NO; 1643 | MTL_FAST_MATH = YES; 1644 | PRODUCT_BUNDLE_IDENTIFIER = "io.insertkoin.ios.KoinSwift-tvOSTests"; 1645 | PRODUCT_NAME = "$(TARGET_NAME)"; 1646 | SDKROOT = appletvos; 1647 | SWIFT_COMPILATION_MODE = wholemodule; 1648 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1649 | SWIFT_VERSION = 4.2; 1650 | TARGETED_DEVICE_FAMILY = 3; 1651 | TVOS_DEPLOYMENT_TARGET = 12.1; 1652 | VALIDATE_PRODUCT = YES; 1653 | }; 1654 | name = Release; 1655 | }; 1656 | /* End XCBuildConfiguration section */ 1657 | 1658 | /* Begin XCConfigurationList section */ 1659 | A3D0F18222784E9000DB6073 /* Build configuration list for PBXProject "KoinSwift" */ = { 1660 | isa = XCConfigurationList; 1661 | buildConfigurations = ( 1662 | A3D0F18322784E9000DB6073 /* Debug */, 1663 | A3D0F18422784E9000DB6073 /* Release */, 1664 | ); 1665 | defaultConfigurationIsVisible = 0; 1666 | defaultConfigurationName = Release; 1667 | }; 1668 | A3D0F19C22784EE500DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift iOS" */ = { 1669 | isa = XCConfigurationList; 1670 | buildConfigurations = ( 1671 | A3D0F19D22784EE500DB6073 /* Debug */, 1672 | A3D0F19E22784EE500DB6073 /* Release */, 1673 | ); 1674 | defaultConfigurationIsVisible = 0; 1675 | defaultConfigurationName = Release; 1676 | }; 1677 | A3D0F19F22784EE500DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift iOS Tests" */ = { 1678 | isa = XCConfigurationList; 1679 | buildConfigurations = ( 1680 | A3D0F1A022784EE500DB6073 /* Debug */, 1681 | A3D0F1A122784EE500DB6073 /* Release */, 1682 | ); 1683 | defaultConfigurationIsVisible = 0; 1684 | defaultConfigurationName = Release; 1685 | }; 1686 | A3D0F1B822784F0400DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift macOS" */ = { 1687 | isa = XCConfigurationList; 1688 | buildConfigurations = ( 1689 | A3D0F1B922784F0400DB6073 /* Debug */, 1690 | A3D0F1BA22784F0400DB6073 /* Release */, 1691 | ); 1692 | defaultConfigurationIsVisible = 0; 1693 | defaultConfigurationName = Release; 1694 | }; 1695 | A3D0F1BB22784F0400DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift macOS Tests" */ = { 1696 | isa = XCConfigurationList; 1697 | buildConfigurations = ( 1698 | A3D0F1BC22784F0400DB6073 /* Debug */, 1699 | A3D0F1BD22784F0400DB6073 /* Release */, 1700 | ); 1701 | defaultConfigurationIsVisible = 0; 1702 | defaultConfigurationName = Release; 1703 | }; 1704 | A3D0F24222786FA300DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift tvOS" */ = { 1705 | isa = XCConfigurationList; 1706 | buildConfigurations = ( 1707 | A3D0F24322786FA300DB6073 /* Debug */, 1708 | A3D0F24422786FA300DB6073 /* Release */, 1709 | ); 1710 | defaultConfigurationIsVisible = 0; 1711 | defaultConfigurationName = Release; 1712 | }; 1713 | A3D0F24522786FA300DB6073 /* Build configuration list for PBXNativeTarget "KoinSwift tvOS Tests" */ = { 1714 | isa = XCConfigurationList; 1715 | buildConfigurations = ( 1716 | A3D0F24622786FA300DB6073 /* Debug */, 1717 | A3D0F24722786FA300DB6073 /* Release */, 1718 | ); 1719 | defaultConfigurationIsVisible = 0; 1720 | defaultConfigurationName = Release; 1721 | }; 1722 | /* End XCConfigurationList section */ 1723 | }; 1724 | rootObject = A3D0F17F22784E9000DB6073 /* Project object */; 1725 | } 1726 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift.xcodeproj/xcshareddata/xcschemes/KoinSwift iOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 89 | 90 | 91 | 92 | 94 | 95 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift.xcodeproj/xcshareddata/xcschemes/KoinSwift macOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 89 | 90 | 91 | 92 | 94 | 95 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift.xcodeproj/xcshareddata/xcschemes/KoinSwift tvOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 89 | 90 | 91 | 92 | 94 | 95 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Context/GlobalContext.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalContext.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien (i-BP - INFOTEL) on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class GlobalContext { 12 | static let shared: GlobalContext = GlobalContext() 13 | func start(koin: Koin) throws { 14 | guard app == nil else { 15 | throw KoinErrors.alreadyInitialized 16 | } 17 | app = koin 18 | } 19 | func stop() throws { 20 | throw KoinErrors.notImplementedYet 21 | } 22 | var app: Koin? 23 | private init() {} 24 | } 25 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Definition/BeanDefinition.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BeanDefinition.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class BeanDefinition : Hashable { 12 | let definition: Definition 13 | let qualifier: Qualifier? 14 | let kind: Kind 15 | private var instance: T? 16 | init(definition: @escaping Definition, qualifier: Qualifier? = nil, kind: Kind = .single) { 17 | self.definition = definition 18 | self.qualifier = qualifier 19 | self.kind = kind 20 | } 21 | func resolveInstance(koin: KoinInjectable) throws -> T { 22 | switch kind { 23 | case .factory: return try definition(koin) 24 | case .single: return try single(koin: koin) 25 | } 26 | } 27 | func single(koin: KoinInjectable) throws -> T { 28 | if let instance = instance { 29 | return instance 30 | } else { 31 | let value = try definition(koin) 32 | instance = value 33 | return value 34 | } 35 | } 36 | public func hash(into hasher: inout Hasher) { 37 | hasher.combine("\(T.self)") 38 | hasher.combine(qualifier) 39 | } 40 | public static func == (lhs: BeanDefinition, rhs: BeanDefinition) -> Bool { 41 | return "\(T.self)-\(lhs.qualifier ?? "##NoQualifier##")" == "\(R.self)-\(rhs.qualifier ?? "##NoQualifier##")" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Definition/Definition.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Definition.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public typealias Definition = (KoinInjectable) throws -> T 12 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Definition/DefinitionFactory.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DefinitionFactory.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func createSingleton(qualifier: String?, definition: @escaping Definition) -> BeanDefinition { 12 | return createDefinition(qualifier: qualifier, definition: definition, kind: Kind.single) 13 | } 14 | 15 | func createFactory(qualifier: String?, definition: @escaping Definition) -> BeanDefinition { 16 | return createDefinition(qualifier: qualifier, definition: definition, kind: Kind.factory) 17 | } 18 | 19 | private func createDefinition( 20 | qualifier: String?, 21 | definition: @escaping Definition, 22 | kind: Kind = Kind.single 23 | ) -> BeanDefinition { 24 | let beanDefinition: BeanDefinition = BeanDefinition(definition: definition, qualifier: qualifier, kind: kind) 25 | return beanDefinition 26 | } 27 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Definition/Kind.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Kind.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Kind { 12 | case single 13 | case factory 14 | } 15 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Error/KoinErrors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Errors.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public enum KoinErrors: Error { 12 | case notImplementedYet 13 | case definitionNotFound 14 | case alreadyDefined 15 | case alreadyInitialized 16 | case notInitialized 17 | } 18 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Koin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Koin: KoinInjectable { 12 | let beanRegistry = BeanRegistry() 13 | func get() throws -> T { 14 | let definition: BeanDefinition = try beanRegistry.retrieveDefinition() 15 | return try definition.resolveInstance(koin: self) 16 | } 17 | func get(withQualifier: Qualifier? = nil) throws -> T { 18 | let definition: BeanDefinition = try beanRegistry.retrieveDefinition(withQualifier: withQualifier) 19 | return try definition.resolveInstance(koin: self) 20 | } 21 | func insert(definition: AnyHashable) throws { 22 | try beanRegistry.insertDefinition(definition: definition) 23 | } 24 | func apply(with config: KoinConfig) throws { 25 | try config.modules.forEach { module in 26 | try module.definitions.forEach { definition in 27 | try insert(definition: definition) 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/KoinInjectable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KoinInjectable.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 22/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol KoinInjectable {} 12 | 13 | public extension KoinInjectable { 14 | func get(withQualifier: Qualifier? = nil) throws -> T { 15 | guard let koin = GlobalContext.shared.app else { 16 | throw KoinErrors.notInitialized 17 | } 18 | return try koin.get(withQualifier: withQualifier) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Module/Module.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Module.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class Module { 12 | var definitions: [AnyHashable] = [] 13 | } 14 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Module/ModuleDeclaration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ModuleDeclaration.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public typealias ModuleDeclaration = (Module) -> Void 12 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Qualifier/Qualifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public typealias Qualifier = String 12 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Core/Registry/BeanRegistry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BeanRegistry.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class BeanRegistry { 12 | var definitions: Set = [] 13 | func insertDefinition(definition: AnyHashable) throws { 14 | let (state, _) = definitions.insert(definition) 15 | guard state else { 16 | throw KoinErrors.alreadyDefined 17 | } 18 | } 19 | func retrieveDefinition(withQualifier: Qualifier? = nil) throws -> BeanDefinition { 20 | let base = definitions 21 | .map { $0.base } 22 | .first { (base) -> Bool in 23 | guard let definition = base as? BeanDefinition else { 24 | return false 25 | } 26 | return withQualifier == nil || definition.qualifier == withQualifier 27 | } 28 | guard let definition = base as? BeanDefinition else { 29 | throw KoinErrors.definitionNotFound 30 | } 31 | return definition 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Dsl/Dsl.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dsl.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 12/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public func module(_ closure: ModuleDeclaration) -> Module { 12 | let module = Module() 13 | closure(module) 14 | return module 15 | } 16 | 17 | public func registerKoinModule(_ modules: Module...) throws { 18 | try modules.forEach({ module throws in 19 | try module.definitions.forEach({ definition throws in 20 | guard let koin = GlobalContext.shared.app else { 21 | throw KoinErrors.notInitialized 22 | } 23 | try koin.insert(definition: definition) 24 | }) 25 | }) 26 | } 27 | 28 | public func inject(withQualifier: Qualifier? = nil) throws -> T { 29 | guard let koin = GlobalContext.shared.app else { 30 | throw KoinErrors.notInitialized 31 | } 32 | return try koin.get(withQualifier: withQualifier) 33 | } 34 | 35 | public func startKoin(_ configure: (KoinConfig) -> Void) throws { 36 | let koin = Koin() 37 | let koinConfig = KoinConfig() 38 | configure(koinConfig) 39 | try koin.apply(with: koinConfig) 40 | try GlobalContext.shared.start(koin: koin) 41 | } 42 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Dsl/KoinConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KoinConfig.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class KoinConfig { 12 | var modules = [Module]() 13 | public func modules(_ modules: Module...) { 14 | self.modules += modules 15 | } 16 | init() {} 17 | } 18 | -------------------------------------------------------------------------------- /KoinSwift/KoinSwift/Dsl/ModuleExt.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ModuleExt.swift 3 | // KoinSwift 4 | // 5 | // Created by DE NADAI Julien (i-BP - INFOTEL) on 30/04/2019. 6 | // Copyright © 2019 insertkoin.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public extension Module { 12 | func factory(qualifier: String? = nil, _ definition: @escaping Definition) { 13 | let beanDefinition = createFactory(qualifier: qualifier, definition: definition) 14 | definitions.append(AnyHashable(beanDefinition)) 15 | } 16 | func single(qualifier: String? = nil, _ definition: @escaping Definition) { 17 | let beanDefinition = createSingleton(qualifier: qualifier, definition: definition) 18 | definitions.append(AnyHashable(beanDefinition)) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /KoinThermosiphon.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import KoinSwift 2 | 3 | protocol Pump { 4 | func pump() 5 | } 6 | 7 | protocol Heater { 8 | func on() 9 | func off() 10 | func isHot() -> Bool 11 | } 12 | 13 | protocol CoffeeMaker { 14 | func brew() 15 | } 16 | 17 | class ElectricHeater : Heater { 18 | 19 | private var heating: Bool = false 20 | 21 | func on() { 22 | print("~ ~ ~ heating ~ ~ ~") 23 | heating = true 24 | } 25 | 26 | func off() { 27 | heating = false 28 | } 29 | 30 | func isHot() -> Bool { 31 | return heating 32 | } 33 | 34 | } 35 | 36 | struct Thermosiphon : Pump { 37 | let heater : Heater 38 | 39 | func pump() { 40 | if (heater.isHot()) { 41 | print("=> => pumping => =>") 42 | } 43 | } 44 | } 45 | 46 | struct StandardCoffeeMaker : CoffeeMaker { 47 | 48 | let heater : Heater 49 | let pump : Pump 50 | 51 | func brew() { 52 | heater.on() 53 | pump.pump() 54 | print(" [_]P coffee! [_]P") 55 | heater.off() 56 | } 57 | } 58 | 59 | struct CoffeeShop { 60 | let maker: CoffeeMaker = try! inject() 61 | } 62 | 63 | let coffeModule = module { 64 | $0.single { _ -> Heater in 65 | return ElectricHeater() 66 | } 67 | $0.single { i -> Pump in 68 | return Thermosiphon(heater: try i.get()) 69 | } 70 | $0.single { i -> CoffeeMaker in 71 | return StandardCoffeeMaker(heater: try i.get(), pump: try i.get()) 72 | } 73 | } 74 | 75 | try! startKoin { 76 | $0.modules(coffeModule) 77 | } 78 | 79 | let coffeeShop = CoffeeShop() 80 | 81 | coffeeShop.maker.brew() 82 | -------------------------------------------------------------------------------- /KoinThermosiphon.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /KoinThermosiphon.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KoinThermosiphon.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Koin-Swift 2 | --------------------------------------------------------------------------------