├── .gitignore ├── .swiftlint.yml ├── .travis.yml ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── SwiftLint │ ├── LICENSE │ └── swiftlint └── Target Support Files │ ├── Pods-ViewGenerator │ ├── Pods-ViewGenerator-Info.plist │ ├── Pods-ViewGenerator-acknowledgements.markdown │ ├── Pods-ViewGenerator-acknowledgements.plist │ ├── Pods-ViewGenerator-dummy.m │ ├── Pods-ViewGenerator-umbrella.h │ ├── Pods-ViewGenerator.debug.xcconfig │ ├── Pods-ViewGenerator.modulemap │ └── Pods-ViewGenerator.release.xcconfig │ ├── Pods-ViewGeneratorApp │ ├── Pods-ViewGeneratorApp-Info.plist │ ├── Pods-ViewGeneratorApp-acknowledgements.markdown │ ├── Pods-ViewGeneratorApp-acknowledgements.plist │ ├── Pods-ViewGeneratorApp-dummy.m │ ├── Pods-ViewGeneratorApp-umbrella.h │ ├── Pods-ViewGeneratorApp.debug.xcconfig │ ├── Pods-ViewGeneratorApp.modulemap │ └── Pods-ViewGeneratorApp.release.xcconfig │ ├── Pods-ViewGeneratorCore │ ├── Pods-ViewGeneratorCore-Info.plist │ ├── Pods-ViewGeneratorCore-acknowledgements.markdown │ ├── Pods-ViewGeneratorCore-acknowledgements.plist │ ├── Pods-ViewGeneratorCore-dummy.m │ ├── Pods-ViewGeneratorCore-umbrella.h │ ├── Pods-ViewGeneratorCore.debug.xcconfig │ ├── Pods-ViewGeneratorCore.modulemap │ └── Pods-ViewGeneratorCore.release.xcconfig │ └── SwiftLint │ └── SwiftLint.xcconfig ├── README.md ├── Resource ├── gif │ ├── demo.gif │ ├── not_select.gif │ └── select.gif ├── logo │ ├── logo.png │ ├── social_preview.png │ └── thumbnail.png ├── screenshot │ ├── generate_view_code.png │ ├── mac_app.png │ ├── setting.png │ └── shortcut.png └── sketch │ └── design.sketch ├── ViewGenerator ├── Resource │ ├── Info.plist │ └── ViewGenerator.entitlements └── Source │ ├── SourceEditorCommand.swift │ └── SourceEditorExtension.swift ├── ViewGeneratorApp.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ ├── ViewGenerator.xcscheme │ ├── ViewGeneratorApp.xcscheme │ └── ViewGeneratorCore.xcscheme ├── ViewGeneratorApp.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── WorkspaceSettings.xcsettings ├── ViewGeneratorApp ├── Resource │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon_128@1x.png │ │ │ ├── icon_128@2x.png │ │ │ ├── icon_16@1x.png │ │ │ ├── icon_16@2x.png │ │ │ ├── icon_256@1x.png │ │ │ ├── icon_256@2x.png │ │ │ ├── icon_32@1x.png │ │ │ ├── icon_32@2x.png │ │ │ ├── icon_512@1x.png │ │ │ └── icon_512@2x.png │ │ └── Contents.json │ ├── Info.plist │ └── ViewGeneratorApp.entitlements └── Source │ ├── AppDelegate.swift │ ├── Base.lproj │ └── Main.storyboard │ └── ViewController.swift ├── ViewGeneratorCore ├── Info.plist ├── Source │ ├── AccessModifier.swift │ ├── UIParts.swift │ ├── UserDefaults │ │ ├── UserDefaultsExtension.swift │ │ ├── UserDefaultsKey.swift │ │ └── UserDefaultsProtocol.swift │ └── ViewInitGenerator.swift └── ViewGeneratorCore.h ├── ViewGeneratorCoreTests ├── AccessModifierTests.swift ├── Info.plist ├── UIPartsTests.swift ├── ViewInitGeneratorTests.swift └── mock │ └── MockUserDefaults.swift ├── codecov.yml ├── scripts └── xccov-to-sonarqube-generic.sh └── sonar-project.properties /.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/c1faae44aebe587bbb90d60e21ca928e0116e8d4/Swift.gitignore 2 | 3 | # Xcode 4 | # 5 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 6 | 7 | ## Build generated 8 | build/ 9 | DerivedData/ 10 | 11 | ## Various settings 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspectivev3 19 | !default.perspectivev3 20 | xcuserdata/ 21 | 22 | ## Other 23 | *.moved-aside 24 | *.xccheckout 25 | *.xcscmblueprint 26 | 27 | ## Obj-C/Swift specific 28 | *.hmap 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | .build/ 44 | 45 | # CocoaPods 46 | # 47 | # We recommend against adding the Pods directory to your .gitignore. However 48 | # you should judge for yourself, the pros and cons are mentioned at: 49 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 50 | # 51 | # Pods/ 52 | # 53 | # Add this line if you want to avoid checking in source code from the Xcode workspace 54 | # *.xcworkspace 55 | 56 | # Carthage 57 | # 58 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 59 | # Carthage/Checkouts 60 | 61 | Carthage/Build 62 | 63 | # Accio dependency management 64 | Dependencies/ 65 | .accio/ 66 | 67 | # fastlane 68 | # 69 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 70 | # screenshots whenever they are needed. 71 | # For more information about the recommended setup visit: 72 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 73 | 74 | fastlane/report.xml 75 | fastlane/Preview.html 76 | fastlane/screenshots/**/*.png 77 | fastlane/test_output 78 | 79 | # Code Injection 80 | # 81 | # After new code Injection tools there's a generated folder /iOSInjectionProject 82 | # https://github.com/johnno1962/injectionforxcode 83 | 84 | iOSInjectionProject/ 85 | 86 | 87 | ### https://raw.github.com/github/gitignore/c1faae44aebe587bbb90d60e21ca928e0116e8d4/Global/Xcode.gitignore 88 | 89 | # Xcode 90 | # 91 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 92 | 93 | ## User settings 94 | xcuserdata/ 95 | 96 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 97 | *.xcscmblueprint 98 | *.xccheckout 99 | 100 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 101 | build/ 102 | DerivedData/ 103 | *.moved-aside 104 | *.pbxuser 105 | !default.pbxuser 106 | *.mode1v3 107 | !default.mode1v3 108 | *.mode2v3 109 | !default.mode2v3 110 | *.perspectivev3 111 | !default.perspectivev3 112 | 113 | ## Xcode Patch 114 | *.xcodeproj/* 115 | !*.xcodeproj/project.pbxproj 116 | !*.xcodeproj/xcshareddata/ 117 | !*.xcworkspace/contents.xcworkspacedata 118 | /*.gcno 119 | 120 | .scannerwork 121 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: 2 | - redundant_void_return 3 | - identifier_name 4 | 5 | line_length: 6 | warning: 300 7 | error: 500 8 | 9 | excluded: 10 | - Pods 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | osx_image: xcode10.3 3 | xcode_workspace: ViewGeneratorApp.xcworkspace 4 | xcode_scheme: ViewGeneratorCore 5 | xcode_destination: platform=macOS 6 | before_install: 7 | - gem install xcpretty 8 | - gem install cocoapods --pre 9 | - pod repo update 10 | - brew update 11 | - pod install 12 | before_script: 13 | - set -o pipefail 14 | script: 15 | - xcodebuild test -workspace ViewGeneratorApp.xcworkspace -scheme ViewGeneratorCore -configuration Debug -destination 'platform=macOS' -derivedDataPath Build/ | xcpretty -c 16 | - find . -type d | grep -E ".xccovarchive" | xargs -I@ bash scripts/xccov-to-sonarqube-generic.sh @ > sonarqube-generic-coverage.xml 17 | after_success: 18 | - bash <(curl -s https://codecov.io/bash) -D Build/ 19 | - sonar-scanner 20 | notifications: 21 | email: false 22 | dist: trusty 23 | addons: 24 | sonarcloud: 25 | organization: "funzin" 26 | token: 27 | secure: "x7LUxBgbD369/OnfkAtAFnXhJhoCn9WUcYRe+zwo2QGjFeW07iAkIBEe/jSCThzK7wBOzazle55elPM/QoAVQ7SMhuOg6ezAgdb5xM0P+HuUaB4j3PKBuBarQVmn4hDheFVZpMCY5uSiiy1zrU5SXc2PpGS9kYH14vTHEUlDCS5rMowM7sPRacoZCcRjfsoo8zXflnfxq362/qd89b1huezaPcG6lPcG6BcxHpEmbjuUuihV3Q6mbLmgSRk8+NZWLpp6qNCuVsRf4N/Hf5P8s3crENR9YnPiZKUx9mHtqgcQgBVOfPQ4qpdkoARqiJ3c8Q2blxXMAr0Jpkg+DZzN9UfnmRsKQVympd3vJHxm+Fs7U2/RkHVLXE0bxYTVzHcQRCgEWl/505UnnbvyvlKx7Q3CHp6Pf7V43opie6Ao4mjgaNIk+ADb0/Xr+eLiFlOLmUomQTX/RSy3qLtY+xV441uvlvSVKZRwGULWAplbOC7lOzX4f9QolOZjFHaffhk1KkWr68iiQ16QCOMM//izXvwUnih75Ul9SF3sigqHUSiZfueThb9d+MlIQruxbEPMTLi99qSQ0qBV7Or2gtTVQwGmZfp8PGamlIqjeXcjqYiZBJZVNZsTxD97qztZM0uZ4vvdp8Cw8sQogDog/mX6LuJpXkOvkBCZh8vnXPEutUo=" 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Fumito Nakazawa 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | use_frameworks! 4 | 5 | def install_pods 6 | pod 'SwiftLint', '0.34.0' 7 | end 8 | 9 | target 'ViewGeneratorApp' do 10 | install_pods 11 | end 12 | 13 | target 'ViewGenerator' do 14 | install_pods 15 | end 16 | target 'ViewGeneratorCore' do 17 | install_pods 18 | end 19 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SwiftLint (0.34.0) 3 | 4 | DEPENDENCIES: 5 | - SwiftLint (= 0.34.0) 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - SwiftLint 10 | 11 | SPEC CHECKSUMS: 12 | SwiftLint: 79d48a17c6565dc286c37efb8322c7b450f95c67 13 | 14 | PODFILE CHECKSUM: 2d7364971aa31ae28416aeae3215caac7f3167dc 15 | 16 | COCOAPODS: 1.7.5 17 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SwiftLint (0.34.0) 3 | 4 | DEPENDENCIES: 5 | - SwiftLint (= 0.34.0) 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - SwiftLint 10 | 11 | SPEC CHECKSUMS: 12 | SwiftLint: 79d48a17c6565dc286c37efb8322c7b450f95c67 13 | 14 | PODFILE CHECKSUM: 2d7364971aa31ae28416aeae3215caac7f3167dc 15 | 16 | COCOAPODS: 1.7.5 17 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */; 13 | buildPhases = ( 14 | ); 15 | dependencies = ( 16 | ); 17 | name = SwiftLint; 18 | }; 19 | /* End PBXAggregateTarget section */ 20 | 21 | /* Begin PBXBuildFile section */ 22 | 3CA11D4014824142895DA331CA73939D /* Pods-ViewGeneratorCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEBC11FDEBE250CE1D20CE6668B8FB85 /* Pods-ViewGeneratorCore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23 | 5BD8BECE3B97B8FEE4F3BD31B4113995 /* Pods-ViewGeneratorApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB4454F4522CCF11797428EB7A45F44 /* Pods-ViewGeneratorApp-dummy.m */; }; 24 | 661A74DF73B99BB5ECCECC68A0235D21 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F940C819049CFF8741C0F5E3E075E607 /* Cocoa.framework */; }; 25 | 7FB22A6BEB25AAA91082ABD5F2EE2271 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F940C819049CFF8741C0F5E3E075E607 /* Cocoa.framework */; }; 26 | 8064595D6EF790A551B840450E52630C /* Pods-ViewGenerator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 477F3F56B66A32A27A0796490A288965 /* Pods-ViewGenerator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 27 | A77C45C6BB38EE3D07E8D8E45EA9C281 /* Pods-ViewGeneratorApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C84C894DDD53CA04609FC85B006EB942 /* Pods-ViewGeneratorApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 28 | AB6D3A3F9BC5DCDA15B3FDAA530E1CC3 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F940C819049CFF8741C0F5E3E075E607 /* Cocoa.framework */; }; 29 | CE8027BAEE2D5FF15C32C452FA4F7ECE /* Pods-ViewGeneratorCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EFD764DD2314B006AEF0E62ABE6C869E /* Pods-ViewGeneratorCore-dummy.m */; }; 30 | D0195625E72C734709E8B31B1C5452EC /* Pods-ViewGenerator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B0C384FB680FCE3F70989AD92B70D2 /* Pods-ViewGenerator-dummy.m */; }; 31 | /* End PBXBuildFile section */ 32 | 33 | /* Begin PBXContainerItemProxy section */ 34 | 5FCDE2424095D9A1296E2771BA84707C /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; 39 | remoteInfo = SwiftLint; 40 | }; 41 | BEDE13D52056B06F64ED9DAF8F6DF224 /* PBXContainerItemProxy */ = { 42 | isa = PBXContainerItemProxy; 43 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 44 | proxyType = 1; 45 | remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; 46 | remoteInfo = SwiftLint; 47 | }; 48 | E59679DF860B9E8C6A2A06FA3B3420DC /* PBXContainerItemProxy */ = { 49 | isa = PBXContainerItemProxy; 50 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 51 | proxyType = 1; 52 | remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; 53 | remoteInfo = SwiftLint; 54 | }; 55 | /* End PBXContainerItemProxy section */ 56 | 57 | /* Begin PBXFileReference section */ 58 | 07D1CDC45FC6DA8D4FBF420FC5EA15A8 /* Pods-ViewGeneratorCore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGeneratorCore-Info.plist"; sourceTree = ""; }; 59 | 113607DC35303B9AF920C04371656E08 /* Pods_ViewGeneratorApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ViewGeneratorApp.framework; path = "Pods-ViewGeneratorApp.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 60 | 1149A53277526567DDBFA2EE858B1BCB /* Pods-ViewGenerator.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGenerator.debug.xcconfig"; sourceTree = ""; }; 61 | 303375F12003E0C110F30941463165D1 /* Pods-ViewGeneratorCore-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ViewGeneratorCore-acknowledgements.markdown"; sourceTree = ""; }; 62 | 37428B85B2AA454AE131D63F7716B0D8 /* Pods-ViewGeneratorCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGeneratorCore.release.xcconfig"; sourceTree = ""; }; 63 | 37E77733058440CAC13423B21F08AA8C /* Pods-ViewGenerator-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ViewGenerator-acknowledgements.markdown"; sourceTree = ""; }; 64 | 409CC4D9570C1702375ECA9B8CC9023E /* Pods-ViewGeneratorApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGeneratorApp.debug.xcconfig"; sourceTree = ""; }; 65 | 477F3F56B66A32A27A0796490A288965 /* Pods-ViewGenerator-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ViewGenerator-umbrella.h"; sourceTree = ""; }; 66 | 626C433CF48A5426C140C9807B1FA003 /* Pods-ViewGenerator-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGenerator-acknowledgements.plist"; sourceTree = ""; }; 67 | 6EB4454F4522CCF11797428EB7A45F44 /* Pods-ViewGeneratorApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ViewGeneratorApp-dummy.m"; sourceTree = ""; }; 68 | 71CE9A172A58F64655511F333F4BC558 /* Pods-ViewGeneratorCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGeneratorCore.debug.xcconfig"; sourceTree = ""; }; 69 | 792A04061090D517CFF5D451FFCD4462 /* Pods-ViewGeneratorApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGeneratorApp-Info.plist"; sourceTree = ""; }; 70 | 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.xcconfig; sourceTree = ""; }; 71 | 8EF7C576811347DD3199447F7CAE8CC5 /* Pods-ViewGeneratorCore-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGeneratorCore-acknowledgements.plist"; sourceTree = ""; }; 72 | 9068FBC8D526E809493E8C892196342D /* Pods-ViewGeneratorApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ViewGeneratorApp-acknowledgements.markdown"; sourceTree = ""; }; 73 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 74 | A9B0C384FB680FCE3F70989AD92B70D2 /* Pods-ViewGenerator-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ViewGenerator-dummy.m"; sourceTree = ""; }; 75 | B41A2F6FCEDC83895414A5DA2376026E /* Pods-ViewGenerator-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGenerator-Info.plist"; sourceTree = ""; }; 76 | B85677AC27FD22D1AA63C3D28B443C76 /* Pods-ViewGeneratorApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ViewGeneratorApp-acknowledgements.plist"; sourceTree = ""; }; 77 | BC011BF1B7FF7E77AA49EAE2F396CE02 /* Pods_ViewGeneratorCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ViewGeneratorCore.framework; path = "Pods-ViewGeneratorCore.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 78 | C84C894DDD53CA04609FC85B006EB942 /* Pods-ViewGeneratorApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ViewGeneratorApp-umbrella.h"; sourceTree = ""; }; 79 | D6FB643BF25A56F97F9B6BE28169C48A /* Pods-ViewGeneratorCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ViewGeneratorCore.modulemap"; sourceTree = ""; }; 80 | DEBC11FDEBE250CE1D20CE6668B8FB85 /* Pods-ViewGeneratorCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ViewGeneratorCore-umbrella.h"; sourceTree = ""; }; 81 | E0DF9DD5A66097E9EB6DDC34AF612B95 /* Pods-ViewGenerator.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ViewGenerator.modulemap"; sourceTree = ""; }; 82 | EA132F37AD9F813584E64120F6F3AD21 /* Pods_ViewGenerator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ViewGenerator.framework; path = "Pods-ViewGenerator.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 83 | EBC8096BF2396AA7E41BDA060D527081 /* Pods-ViewGenerator.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGenerator.release.xcconfig"; sourceTree = ""; }; 84 | EC224FCC9BF29EBCACA3CACE394A4BAF /* Pods-ViewGeneratorApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ViewGeneratorApp.release.xcconfig"; sourceTree = ""; }; 85 | EFD764DD2314B006AEF0E62ABE6C869E /* Pods-ViewGeneratorCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ViewGeneratorCore-dummy.m"; sourceTree = ""; }; 86 | F5272B85B60040078AA17C92FF26FB85 /* Pods-ViewGeneratorApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ViewGeneratorApp.modulemap"; sourceTree = ""; }; 87 | F940C819049CFF8741C0F5E3E075E607 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 88 | /* End PBXFileReference section */ 89 | 90 | /* Begin PBXFrameworksBuildPhase section */ 91 | 3BACC065D5EF133B20B456A8C26937EF /* Frameworks */ = { 92 | isa = PBXFrameworksBuildPhase; 93 | buildActionMask = 2147483647; 94 | files = ( 95 | 661A74DF73B99BB5ECCECC68A0235D21 /* Cocoa.framework in Frameworks */, 96 | ); 97 | runOnlyForDeploymentPostprocessing = 0; 98 | }; 99 | A293E456658C8E9B62AF0F6AAFF23760 /* Frameworks */ = { 100 | isa = PBXFrameworksBuildPhase; 101 | buildActionMask = 2147483647; 102 | files = ( 103 | AB6D3A3F9BC5DCDA15B3FDAA530E1CC3 /* Cocoa.framework in Frameworks */, 104 | ); 105 | runOnlyForDeploymentPostprocessing = 0; 106 | }; 107 | DB7F3620D951072447A94F139CABB79F /* Frameworks */ = { 108 | isa = PBXFrameworksBuildPhase; 109 | buildActionMask = 2147483647; 110 | files = ( 111 | 7FB22A6BEB25AAA91082ABD5F2EE2271 /* Cocoa.framework in Frameworks */, 112 | ); 113 | runOnlyForDeploymentPostprocessing = 0; 114 | }; 115 | /* End PBXFrameworksBuildPhase section */ 116 | 117 | /* Begin PBXGroup section */ 118 | 083B3D138D0686392940AFCB84E82713 /* Pods-ViewGeneratorApp */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | F5272B85B60040078AA17C92FF26FB85 /* Pods-ViewGeneratorApp.modulemap */, 122 | 9068FBC8D526E809493E8C892196342D /* Pods-ViewGeneratorApp-acknowledgements.markdown */, 123 | B85677AC27FD22D1AA63C3D28B443C76 /* Pods-ViewGeneratorApp-acknowledgements.plist */, 124 | 6EB4454F4522CCF11797428EB7A45F44 /* Pods-ViewGeneratorApp-dummy.m */, 125 | 792A04061090D517CFF5D451FFCD4462 /* Pods-ViewGeneratorApp-Info.plist */, 126 | C84C894DDD53CA04609FC85B006EB942 /* Pods-ViewGeneratorApp-umbrella.h */, 127 | 409CC4D9570C1702375ECA9B8CC9023E /* Pods-ViewGeneratorApp.debug.xcconfig */, 128 | EC224FCC9BF29EBCACA3CACE394A4BAF /* Pods-ViewGeneratorApp.release.xcconfig */, 129 | ); 130 | name = "Pods-ViewGeneratorApp"; 131 | path = "Target Support Files/Pods-ViewGeneratorApp"; 132 | sourceTree = ""; 133 | }; 134 | 0CDE85247C4DEDB02E45B0C74FBF181F /* Pods-ViewGeneratorCore */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | D6FB643BF25A56F97F9B6BE28169C48A /* Pods-ViewGeneratorCore.modulemap */, 138 | 303375F12003E0C110F30941463165D1 /* Pods-ViewGeneratorCore-acknowledgements.markdown */, 139 | 8EF7C576811347DD3199447F7CAE8CC5 /* Pods-ViewGeneratorCore-acknowledgements.plist */, 140 | EFD764DD2314B006AEF0E62ABE6C869E /* Pods-ViewGeneratorCore-dummy.m */, 141 | 07D1CDC45FC6DA8D4FBF420FC5EA15A8 /* Pods-ViewGeneratorCore-Info.plist */, 142 | DEBC11FDEBE250CE1D20CE6668B8FB85 /* Pods-ViewGeneratorCore-umbrella.h */, 143 | 71CE9A172A58F64655511F333F4BC558 /* Pods-ViewGeneratorCore.debug.xcconfig */, 144 | 37428B85B2AA454AE131D63F7716B0D8 /* Pods-ViewGeneratorCore.release.xcconfig */, 145 | ); 146 | name = "Pods-ViewGeneratorCore"; 147 | path = "Target Support Files/Pods-ViewGeneratorCore"; 148 | sourceTree = ""; 149 | }; 150 | 50C8C20D97609312BBC2589F65614098 /* Pods-ViewGenerator */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | E0DF9DD5A66097E9EB6DDC34AF612B95 /* Pods-ViewGenerator.modulemap */, 154 | 37E77733058440CAC13423B21F08AA8C /* Pods-ViewGenerator-acknowledgements.markdown */, 155 | 626C433CF48A5426C140C9807B1FA003 /* Pods-ViewGenerator-acknowledgements.plist */, 156 | A9B0C384FB680FCE3F70989AD92B70D2 /* Pods-ViewGenerator-dummy.m */, 157 | B41A2F6FCEDC83895414A5DA2376026E /* Pods-ViewGenerator-Info.plist */, 158 | 477F3F56B66A32A27A0796490A288965 /* Pods-ViewGenerator-umbrella.h */, 159 | 1149A53277526567DDBFA2EE858B1BCB /* Pods-ViewGenerator.debug.xcconfig */, 160 | EBC8096BF2396AA7E41BDA060D527081 /* Pods-ViewGenerator.release.xcconfig */, 161 | ); 162 | name = "Pods-ViewGenerator"; 163 | path = "Target Support Files/Pods-ViewGenerator"; 164 | sourceTree = ""; 165 | }; 166 | 61BAAE6E43A771F929C180AAFBEA2A72 /* Targets Support Files */ = { 167 | isa = PBXGroup; 168 | children = ( 169 | 50C8C20D97609312BBC2589F65614098 /* Pods-ViewGenerator */, 170 | 083B3D138D0686392940AFCB84E82713 /* Pods-ViewGeneratorApp */, 171 | 0CDE85247C4DEDB02E45B0C74FBF181F /* Pods-ViewGeneratorCore */, 172 | ); 173 | name = "Targets Support Files"; 174 | sourceTree = ""; 175 | }; 176 | 89D92DAB3650DF0982FBD4CC094F12DB /* Products */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | EA132F37AD9F813584E64120F6F3AD21 /* Pods_ViewGenerator.framework */, 180 | 113607DC35303B9AF920C04371656E08 /* Pods_ViewGeneratorApp.framework */, 181 | BC011BF1B7FF7E77AA49EAE2F396CE02 /* Pods_ViewGeneratorCore.framework */, 182 | ); 183 | name = Products; 184 | sourceTree = ""; 185 | }; 186 | 965877409E01FB3D85D85E90E6B30185 /* Pods */ = { 187 | isa = PBXGroup; 188 | children = ( 189 | 9AED61B9A1CFA211C061344F741DBA07 /* SwiftLint */, 190 | ); 191 | name = Pods; 192 | sourceTree = ""; 193 | }; 194 | 9AED61B9A1CFA211C061344F741DBA07 /* SwiftLint */ = { 195 | isa = PBXGroup; 196 | children = ( 197 | EEA599FE5C15138FF0981CCFB01E55AA /* Support Files */, 198 | ); 199 | name = SwiftLint; 200 | path = SwiftLint; 201 | sourceTree = ""; 202 | }; 203 | CBD43E0947D94E318A0ED1350CFF29ED /* OS X */ = { 204 | isa = PBXGroup; 205 | children = ( 206 | F940C819049CFF8741C0F5E3E075E607 /* Cocoa.framework */, 207 | ); 208 | name = "OS X"; 209 | sourceTree = ""; 210 | }; 211 | CF1408CF629C7361332E53B88F7BD30C = { 212 | isa = PBXGroup; 213 | children = ( 214 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 215 | E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */, 216 | 965877409E01FB3D85D85E90E6B30185 /* Pods */, 217 | 89D92DAB3650DF0982FBD4CC094F12DB /* Products */, 218 | 61BAAE6E43A771F929C180AAFBEA2A72 /* Targets Support Files */, 219 | ); 220 | sourceTree = ""; 221 | }; 222 | E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */ = { 223 | isa = PBXGroup; 224 | children = ( 225 | CBD43E0947D94E318A0ED1350CFF29ED /* OS X */, 226 | ); 227 | name = Frameworks; 228 | sourceTree = ""; 229 | }; 230 | EEA599FE5C15138FF0981CCFB01E55AA /* Support Files */ = { 231 | isa = PBXGroup; 232 | children = ( 233 | 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */, 234 | ); 235 | name = "Support Files"; 236 | path = "../Target Support Files/SwiftLint"; 237 | sourceTree = ""; 238 | }; 239 | /* End PBXGroup section */ 240 | 241 | /* Begin PBXHeadersBuildPhase section */ 242 | 7788C5B3DBF77A151FC230D808E5938C /* Headers */ = { 243 | isa = PBXHeadersBuildPhase; 244 | buildActionMask = 2147483647; 245 | files = ( 246 | 3CA11D4014824142895DA331CA73939D /* Pods-ViewGeneratorCore-umbrella.h in Headers */, 247 | ); 248 | runOnlyForDeploymentPostprocessing = 0; 249 | }; 250 | 8BEA9C277ECE4A0B03E476DD54244A4F /* Headers */ = { 251 | isa = PBXHeadersBuildPhase; 252 | buildActionMask = 2147483647; 253 | files = ( 254 | 8064595D6EF790A551B840450E52630C /* Pods-ViewGenerator-umbrella.h in Headers */, 255 | ); 256 | runOnlyForDeploymentPostprocessing = 0; 257 | }; 258 | B5126B07E2280EE58C3C309A043EE7ED /* Headers */ = { 259 | isa = PBXHeadersBuildPhase; 260 | buildActionMask = 2147483647; 261 | files = ( 262 | A77C45C6BB38EE3D07E8D8E45EA9C281 /* Pods-ViewGeneratorApp-umbrella.h in Headers */, 263 | ); 264 | runOnlyForDeploymentPostprocessing = 0; 265 | }; 266 | /* End PBXHeadersBuildPhase section */ 267 | 268 | /* Begin PBXNativeTarget section */ 269 | 06C79340E66985ECCCBD341A9A0032A7 /* Pods-ViewGenerator */ = { 270 | isa = PBXNativeTarget; 271 | buildConfigurationList = 71781A72120C0D2135CFB8FC5F2781C8 /* Build configuration list for PBXNativeTarget "Pods-ViewGenerator" */; 272 | buildPhases = ( 273 | 8BEA9C277ECE4A0B03E476DD54244A4F /* Headers */, 274 | 353BA6853386C9044890A149D363E8B1 /* Sources */, 275 | 3BACC065D5EF133B20B456A8C26937EF /* Frameworks */, 276 | DFB74B2E178C3118D6E2B23D12E4EE63 /* Resources */, 277 | ); 278 | buildRules = ( 279 | ); 280 | dependencies = ( 281 | E3909FBBC5DC545696DA415801230DCA /* PBXTargetDependency */, 282 | ); 283 | name = "Pods-ViewGenerator"; 284 | productName = "Pods-ViewGenerator"; 285 | productReference = EA132F37AD9F813584E64120F6F3AD21 /* Pods_ViewGenerator.framework */; 286 | productType = "com.apple.product-type.framework"; 287 | }; 288 | 20D40FBFD2ED0420C6A42765C5849AE0 /* Pods-ViewGeneratorCore */ = { 289 | isa = PBXNativeTarget; 290 | buildConfigurationList = AD4D32CA1CDE4A1CC9B117D84CF304DA /* Build configuration list for PBXNativeTarget "Pods-ViewGeneratorCore" */; 291 | buildPhases = ( 292 | 7788C5B3DBF77A151FC230D808E5938C /* Headers */, 293 | F5BB33A21BAD3A8B37F737D755B934EA /* Sources */, 294 | DB7F3620D951072447A94F139CABB79F /* Frameworks */, 295 | 8BBC730A8A9B33909AE865AB924379E8 /* Resources */, 296 | ); 297 | buildRules = ( 298 | ); 299 | dependencies = ( 300 | 4108675788C33E1104202ED88D5C53B0 /* PBXTargetDependency */, 301 | ); 302 | name = "Pods-ViewGeneratorCore"; 303 | productName = "Pods-ViewGeneratorCore"; 304 | productReference = BC011BF1B7FF7E77AA49EAE2F396CE02 /* Pods_ViewGeneratorCore.framework */; 305 | productType = "com.apple.product-type.framework"; 306 | }; 307 | 6BFC7DE02349640BE22AA3E9733B38D3 /* Pods-ViewGeneratorApp */ = { 308 | isa = PBXNativeTarget; 309 | buildConfigurationList = 732645459195657B41A5466792468034 /* Build configuration list for PBXNativeTarget "Pods-ViewGeneratorApp" */; 310 | buildPhases = ( 311 | B5126B07E2280EE58C3C309A043EE7ED /* Headers */, 312 | 9F3C4B2464648A02826E2CAA24910F9E /* Sources */, 313 | A293E456658C8E9B62AF0F6AAFF23760 /* Frameworks */, 314 | 9437C549CE90624417B6FE9D9F2A5D5C /* Resources */, 315 | ); 316 | buildRules = ( 317 | ); 318 | dependencies = ( 319 | 6DF7CCDA7A331A506282730CDB1040D3 /* PBXTargetDependency */, 320 | ); 321 | name = "Pods-ViewGeneratorApp"; 322 | productName = "Pods-ViewGeneratorApp"; 323 | productReference = 113607DC35303B9AF920C04371656E08 /* Pods_ViewGeneratorApp.framework */; 324 | productType = "com.apple.product-type.framework"; 325 | }; 326 | /* End PBXNativeTarget section */ 327 | 328 | /* Begin PBXProject section */ 329 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 330 | isa = PBXProject; 331 | attributes = { 332 | LastSwiftUpdateCheck = 1100; 333 | LastUpgradeCheck = 1100; 334 | }; 335 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 336 | compatibilityVersion = "Xcode 9.3"; 337 | developmentRegion = en; 338 | hasScannedForEncodings = 0; 339 | knownRegions = ( 340 | en, 341 | ); 342 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 343 | productRefGroup = 89D92DAB3650DF0982FBD4CC094F12DB /* Products */; 344 | projectDirPath = ""; 345 | projectRoot = ""; 346 | targets = ( 347 | 06C79340E66985ECCCBD341A9A0032A7 /* Pods-ViewGenerator */, 348 | 6BFC7DE02349640BE22AA3E9733B38D3 /* Pods-ViewGeneratorApp */, 349 | 20D40FBFD2ED0420C6A42765C5849AE0 /* Pods-ViewGeneratorCore */, 350 | 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */, 351 | ); 352 | }; 353 | /* End PBXProject section */ 354 | 355 | /* Begin PBXResourcesBuildPhase section */ 356 | 8BBC730A8A9B33909AE865AB924379E8 /* Resources */ = { 357 | isa = PBXResourcesBuildPhase; 358 | buildActionMask = 2147483647; 359 | files = ( 360 | ); 361 | runOnlyForDeploymentPostprocessing = 0; 362 | }; 363 | 9437C549CE90624417B6FE9D9F2A5D5C /* Resources */ = { 364 | isa = PBXResourcesBuildPhase; 365 | buildActionMask = 2147483647; 366 | files = ( 367 | ); 368 | runOnlyForDeploymentPostprocessing = 0; 369 | }; 370 | DFB74B2E178C3118D6E2B23D12E4EE63 /* Resources */ = { 371 | isa = PBXResourcesBuildPhase; 372 | buildActionMask = 2147483647; 373 | files = ( 374 | ); 375 | runOnlyForDeploymentPostprocessing = 0; 376 | }; 377 | /* End PBXResourcesBuildPhase section */ 378 | 379 | /* Begin PBXSourcesBuildPhase section */ 380 | 353BA6853386C9044890A149D363E8B1 /* Sources */ = { 381 | isa = PBXSourcesBuildPhase; 382 | buildActionMask = 2147483647; 383 | files = ( 384 | D0195625E72C734709E8B31B1C5452EC /* Pods-ViewGenerator-dummy.m in Sources */, 385 | ); 386 | runOnlyForDeploymentPostprocessing = 0; 387 | }; 388 | 9F3C4B2464648A02826E2CAA24910F9E /* Sources */ = { 389 | isa = PBXSourcesBuildPhase; 390 | buildActionMask = 2147483647; 391 | files = ( 392 | 5BD8BECE3B97B8FEE4F3BD31B4113995 /* Pods-ViewGeneratorApp-dummy.m in Sources */, 393 | ); 394 | runOnlyForDeploymentPostprocessing = 0; 395 | }; 396 | F5BB33A21BAD3A8B37F737D755B934EA /* Sources */ = { 397 | isa = PBXSourcesBuildPhase; 398 | buildActionMask = 2147483647; 399 | files = ( 400 | CE8027BAEE2D5FF15C32C452FA4F7ECE /* Pods-ViewGeneratorCore-dummy.m in Sources */, 401 | ); 402 | runOnlyForDeploymentPostprocessing = 0; 403 | }; 404 | /* End PBXSourcesBuildPhase section */ 405 | 406 | /* Begin PBXTargetDependency section */ 407 | 4108675788C33E1104202ED88D5C53B0 /* PBXTargetDependency */ = { 408 | isa = PBXTargetDependency; 409 | name = SwiftLint; 410 | target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; 411 | targetProxy = E59679DF860B9E8C6A2A06FA3B3420DC /* PBXContainerItemProxy */; 412 | }; 413 | 6DF7CCDA7A331A506282730CDB1040D3 /* PBXTargetDependency */ = { 414 | isa = PBXTargetDependency; 415 | name = SwiftLint; 416 | target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; 417 | targetProxy = BEDE13D52056B06F64ED9DAF8F6DF224 /* PBXContainerItemProxy */; 418 | }; 419 | E3909FBBC5DC545696DA415801230DCA /* PBXTargetDependency */ = { 420 | isa = PBXTargetDependency; 421 | name = SwiftLint; 422 | target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; 423 | targetProxy = 5FCDE2424095D9A1296E2771BA84707C /* PBXContainerItemProxy */; 424 | }; 425 | /* End PBXTargetDependency section */ 426 | 427 | /* Begin XCBuildConfiguration section */ 428 | 129B333C26593120C7F7D0ED4BC7819B /* Release */ = { 429 | isa = XCBuildConfiguration; 430 | baseConfigurationReference = EBC8096BF2396AA7E41BDA060D527081 /* Pods-ViewGenerator.release.xcconfig */; 431 | buildSettings = { 432 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 433 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 434 | CLANG_ENABLE_OBJC_WEAK = NO; 435 | CODE_SIGN_IDENTITY = ""; 436 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 437 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 438 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 439 | COMBINE_HIDPI_IMAGES = YES; 440 | CURRENT_PROJECT_VERSION = 1; 441 | DEFINES_MODULE = YES; 442 | DYLIB_COMPATIBILITY_VERSION = 1; 443 | DYLIB_CURRENT_VERSION = 1; 444 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 445 | FRAMEWORK_VERSION = A; 446 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-Info.plist"; 447 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 448 | LD_RUNPATH_SEARCH_PATHS = ( 449 | "$(inherited)", 450 | "@executable_path/../Frameworks", 451 | "@loader_path/Frameworks", 452 | ); 453 | MACH_O_TYPE = staticlib; 454 | MACOSX_DEPLOYMENT_TARGET = 10.14; 455 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.modulemap"; 456 | OTHER_LDFLAGS = ""; 457 | OTHER_LIBTOOLFLAGS = ""; 458 | PODS_ROOT = "$(SRCROOT)"; 459 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 460 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 461 | SDKROOT = macosx; 462 | SKIP_INSTALL = YES; 463 | VERSIONING_SYSTEM = "apple-generic"; 464 | VERSION_INFO_PREFIX = ""; 465 | }; 466 | name = Release; 467 | }; 468 | 18DB1C1179B61C21B19ADD56D55790F4 /* Release */ = { 469 | isa = XCBuildConfiguration; 470 | baseConfigurationReference = EC224FCC9BF29EBCACA3CACE394A4BAF /* Pods-ViewGeneratorApp.release.xcconfig */; 471 | buildSettings = { 472 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 473 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 474 | CLANG_ENABLE_OBJC_WEAK = NO; 475 | CODE_SIGN_IDENTITY = ""; 476 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 477 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 478 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 479 | COMBINE_HIDPI_IMAGES = YES; 480 | CURRENT_PROJECT_VERSION = 1; 481 | DEFINES_MODULE = YES; 482 | DYLIB_COMPATIBILITY_VERSION = 1; 483 | DYLIB_CURRENT_VERSION = 1; 484 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 485 | FRAMEWORK_VERSION = A; 486 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-Info.plist"; 487 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 488 | LD_RUNPATH_SEARCH_PATHS = ( 489 | "$(inherited)", 490 | "@executable_path/../Frameworks", 491 | "@loader_path/Frameworks", 492 | ); 493 | MACH_O_TYPE = staticlib; 494 | MACOSX_DEPLOYMENT_TARGET = 10.14; 495 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.modulemap"; 496 | OTHER_LDFLAGS = ""; 497 | OTHER_LIBTOOLFLAGS = ""; 498 | PODS_ROOT = "$(SRCROOT)"; 499 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 500 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 501 | SDKROOT = macosx; 502 | SKIP_INSTALL = YES; 503 | VERSIONING_SYSTEM = "apple-generic"; 504 | VERSION_INFO_PREFIX = ""; 505 | }; 506 | name = Release; 507 | }; 508 | 430C0A1F2A9CB52955BEC7CE69B7B629 /* Debug */ = { 509 | isa = XCBuildConfiguration; 510 | buildSettings = { 511 | ALWAYS_SEARCH_USER_PATHS = NO; 512 | CLANG_ANALYZER_NONNULL = YES; 513 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 514 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 515 | CLANG_CXX_LIBRARY = "libc++"; 516 | CLANG_ENABLE_MODULES = YES; 517 | CLANG_ENABLE_OBJC_ARC = YES; 518 | CLANG_ENABLE_OBJC_WEAK = YES; 519 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 520 | CLANG_WARN_BOOL_CONVERSION = YES; 521 | CLANG_WARN_COMMA = YES; 522 | CLANG_WARN_CONSTANT_CONVERSION = YES; 523 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 524 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 525 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 526 | CLANG_WARN_EMPTY_BODY = YES; 527 | CLANG_WARN_ENUM_CONVERSION = YES; 528 | CLANG_WARN_INFINITE_RECURSION = YES; 529 | CLANG_WARN_INT_CONVERSION = YES; 530 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 531 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 532 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 533 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 534 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 535 | CLANG_WARN_STRICT_PROTOTYPES = YES; 536 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 537 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 538 | CLANG_WARN_UNREACHABLE_CODE = YES; 539 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 540 | COPY_PHASE_STRIP = NO; 541 | DEBUG_INFORMATION_FORMAT = dwarf; 542 | ENABLE_STRICT_OBJC_MSGSEND = YES; 543 | ENABLE_TESTABILITY = YES; 544 | GCC_C_LANGUAGE_STANDARD = gnu11; 545 | GCC_DYNAMIC_NO_PIC = NO; 546 | GCC_NO_COMMON_BLOCKS = YES; 547 | GCC_OPTIMIZATION_LEVEL = 0; 548 | GCC_PREPROCESSOR_DEFINITIONS = ( 549 | "POD_CONFIGURATION_DEBUG=1", 550 | "DEBUG=1", 551 | "$(inherited)", 552 | ); 553 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 554 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 555 | GCC_WARN_UNDECLARED_SELECTOR = YES; 556 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 557 | GCC_WARN_UNUSED_FUNCTION = YES; 558 | GCC_WARN_UNUSED_VARIABLE = YES; 559 | MACOSX_DEPLOYMENT_TARGET = 10.14; 560 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 561 | MTL_FAST_MATH = YES; 562 | ONLY_ACTIVE_ARCH = YES; 563 | PRODUCT_NAME = "$(TARGET_NAME)"; 564 | STRIP_INSTALLED_PRODUCT = NO; 565 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 566 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 567 | SWIFT_VERSION = 5.0; 568 | SYMROOT = "${SRCROOT}/../build"; 569 | }; 570 | name = Debug; 571 | }; 572 | 597E092427DF423992C59C814880FE96 /* Release */ = { 573 | isa = XCBuildConfiguration; 574 | buildSettings = { 575 | ALWAYS_SEARCH_USER_PATHS = NO; 576 | CLANG_ANALYZER_NONNULL = YES; 577 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 578 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 579 | CLANG_CXX_LIBRARY = "libc++"; 580 | CLANG_ENABLE_MODULES = YES; 581 | CLANG_ENABLE_OBJC_ARC = YES; 582 | CLANG_ENABLE_OBJC_WEAK = YES; 583 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 584 | CLANG_WARN_BOOL_CONVERSION = YES; 585 | CLANG_WARN_COMMA = YES; 586 | CLANG_WARN_CONSTANT_CONVERSION = YES; 587 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 588 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 589 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 590 | CLANG_WARN_EMPTY_BODY = YES; 591 | CLANG_WARN_ENUM_CONVERSION = YES; 592 | CLANG_WARN_INFINITE_RECURSION = YES; 593 | CLANG_WARN_INT_CONVERSION = YES; 594 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 595 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 596 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 597 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 598 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 599 | CLANG_WARN_STRICT_PROTOTYPES = YES; 600 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 601 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 602 | CLANG_WARN_UNREACHABLE_CODE = YES; 603 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 604 | COPY_PHASE_STRIP = NO; 605 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 606 | ENABLE_NS_ASSERTIONS = NO; 607 | ENABLE_STRICT_OBJC_MSGSEND = YES; 608 | GCC_C_LANGUAGE_STANDARD = gnu11; 609 | GCC_NO_COMMON_BLOCKS = YES; 610 | GCC_PREPROCESSOR_DEFINITIONS = ( 611 | "POD_CONFIGURATION_RELEASE=1", 612 | "$(inherited)", 613 | ); 614 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 615 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 616 | GCC_WARN_UNDECLARED_SELECTOR = YES; 617 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 618 | GCC_WARN_UNUSED_FUNCTION = YES; 619 | GCC_WARN_UNUSED_VARIABLE = YES; 620 | MACOSX_DEPLOYMENT_TARGET = 10.14; 621 | MTL_ENABLE_DEBUG_INFO = NO; 622 | MTL_FAST_MATH = YES; 623 | PRODUCT_NAME = "$(TARGET_NAME)"; 624 | STRIP_INSTALLED_PRODUCT = NO; 625 | SWIFT_COMPILATION_MODE = wholemodule; 626 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 627 | SWIFT_VERSION = 5.0; 628 | SYMROOT = "${SRCROOT}/../build"; 629 | }; 630 | name = Release; 631 | }; 632 | 7A492A52BB598880F89FA31FE67C0F33 /* Debug */ = { 633 | isa = XCBuildConfiguration; 634 | baseConfigurationReference = 71CE9A172A58F64655511F333F4BC558 /* Pods-ViewGeneratorCore.debug.xcconfig */; 635 | buildSettings = { 636 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 637 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 638 | CLANG_ENABLE_OBJC_WEAK = NO; 639 | CODE_SIGN_IDENTITY = ""; 640 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 641 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 642 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 643 | COMBINE_HIDPI_IMAGES = YES; 644 | CURRENT_PROJECT_VERSION = 1; 645 | DEFINES_MODULE = YES; 646 | DYLIB_COMPATIBILITY_VERSION = 1; 647 | DYLIB_CURRENT_VERSION = 1; 648 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 649 | FRAMEWORK_VERSION = A; 650 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-Info.plist"; 651 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 652 | LD_RUNPATH_SEARCH_PATHS = ( 653 | "$(inherited)", 654 | "@executable_path/../Frameworks", 655 | "@loader_path/Frameworks", 656 | ); 657 | MACH_O_TYPE = staticlib; 658 | MACOSX_DEPLOYMENT_TARGET = 10.14; 659 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.modulemap"; 660 | OTHER_LDFLAGS = ""; 661 | OTHER_LIBTOOLFLAGS = ""; 662 | PODS_ROOT = "$(SRCROOT)"; 663 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 664 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 665 | SDKROOT = macosx; 666 | SKIP_INSTALL = YES; 667 | VERSIONING_SYSTEM = "apple-generic"; 668 | VERSION_INFO_PREFIX = ""; 669 | }; 670 | name = Debug; 671 | }; 672 | 8B2757D413B867ECEFDC200DDE84AFD2 /* Release */ = { 673 | isa = XCBuildConfiguration; 674 | baseConfigurationReference = 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */; 675 | buildSettings = { 676 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 677 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 678 | CLANG_ENABLE_OBJC_WEAK = NO; 679 | CODE_SIGN_IDENTITY = "-"; 680 | COMBINE_HIDPI_IMAGES = YES; 681 | LD_RUNPATH_SEARCH_PATHS = ( 682 | "$(inherited)", 683 | "@executable_path/../Frameworks", 684 | ); 685 | MACOSX_DEPLOYMENT_TARGET = 10.6; 686 | SDKROOT = macosx; 687 | }; 688 | name = Release; 689 | }; 690 | 9E36CFE3DD37F4272FB304397652F0AF /* Release */ = { 691 | isa = XCBuildConfiguration; 692 | baseConfigurationReference = 37428B85B2AA454AE131D63F7716B0D8 /* Pods-ViewGeneratorCore.release.xcconfig */; 693 | buildSettings = { 694 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 695 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 696 | CLANG_ENABLE_OBJC_WEAK = NO; 697 | CODE_SIGN_IDENTITY = ""; 698 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 699 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 700 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 701 | COMBINE_HIDPI_IMAGES = YES; 702 | CURRENT_PROJECT_VERSION = 1; 703 | DEFINES_MODULE = YES; 704 | DYLIB_COMPATIBILITY_VERSION = 1; 705 | DYLIB_CURRENT_VERSION = 1; 706 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 707 | FRAMEWORK_VERSION = A; 708 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-Info.plist"; 709 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 710 | LD_RUNPATH_SEARCH_PATHS = ( 711 | "$(inherited)", 712 | "@executable_path/../Frameworks", 713 | "@loader_path/Frameworks", 714 | ); 715 | MACH_O_TYPE = staticlib; 716 | MACOSX_DEPLOYMENT_TARGET = 10.14; 717 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.modulemap"; 718 | OTHER_LDFLAGS = ""; 719 | OTHER_LIBTOOLFLAGS = ""; 720 | PODS_ROOT = "$(SRCROOT)"; 721 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 722 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 723 | SDKROOT = macosx; 724 | SKIP_INSTALL = YES; 725 | VERSIONING_SYSTEM = "apple-generic"; 726 | VERSION_INFO_PREFIX = ""; 727 | }; 728 | name = Release; 729 | }; 730 | ADFCE9478BDB3571EDA303163EEE912B /* Debug */ = { 731 | isa = XCBuildConfiguration; 732 | baseConfigurationReference = 1149A53277526567DDBFA2EE858B1BCB /* Pods-ViewGenerator.debug.xcconfig */; 733 | buildSettings = { 734 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 735 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 736 | CLANG_ENABLE_OBJC_WEAK = NO; 737 | CODE_SIGN_IDENTITY = ""; 738 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 739 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 740 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 741 | COMBINE_HIDPI_IMAGES = YES; 742 | CURRENT_PROJECT_VERSION = 1; 743 | DEFINES_MODULE = YES; 744 | DYLIB_COMPATIBILITY_VERSION = 1; 745 | DYLIB_CURRENT_VERSION = 1; 746 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 747 | FRAMEWORK_VERSION = A; 748 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-Info.plist"; 749 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 750 | LD_RUNPATH_SEARCH_PATHS = ( 751 | "$(inherited)", 752 | "@executable_path/../Frameworks", 753 | "@loader_path/Frameworks", 754 | ); 755 | MACH_O_TYPE = staticlib; 756 | MACOSX_DEPLOYMENT_TARGET = 10.14; 757 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.modulemap"; 758 | OTHER_LDFLAGS = ""; 759 | OTHER_LIBTOOLFLAGS = ""; 760 | PODS_ROOT = "$(SRCROOT)"; 761 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 762 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 763 | SDKROOT = macosx; 764 | SKIP_INSTALL = YES; 765 | VERSIONING_SYSTEM = "apple-generic"; 766 | VERSION_INFO_PREFIX = ""; 767 | }; 768 | name = Debug; 769 | }; 770 | EBA0CC105C99CE8BFDA51C62E70EA605 /* Debug */ = { 771 | isa = XCBuildConfiguration; 772 | baseConfigurationReference = 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */; 773 | buildSettings = { 774 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 775 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 776 | CLANG_ENABLE_OBJC_WEAK = NO; 777 | CODE_SIGN_IDENTITY = "-"; 778 | COMBINE_HIDPI_IMAGES = YES; 779 | LD_RUNPATH_SEARCH_PATHS = ( 780 | "$(inherited)", 781 | "@executable_path/../Frameworks", 782 | ); 783 | MACOSX_DEPLOYMENT_TARGET = 10.6; 784 | SDKROOT = macosx; 785 | }; 786 | name = Debug; 787 | }; 788 | FC33CDC3A6D6263653ED5D4743582675 /* Debug */ = { 789 | isa = XCBuildConfiguration; 790 | baseConfigurationReference = 409CC4D9570C1702375ECA9B8CC9023E /* Pods-ViewGeneratorApp.debug.xcconfig */; 791 | buildSettings = { 792 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 793 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 794 | CLANG_ENABLE_OBJC_WEAK = NO; 795 | CODE_SIGN_IDENTITY = ""; 796 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 797 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 798 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 799 | COMBINE_HIDPI_IMAGES = YES; 800 | CURRENT_PROJECT_VERSION = 1; 801 | DEFINES_MODULE = YES; 802 | DYLIB_COMPATIBILITY_VERSION = 1; 803 | DYLIB_CURRENT_VERSION = 1; 804 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 805 | FRAMEWORK_VERSION = A; 806 | INFOPLIST_FILE = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-Info.plist"; 807 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 808 | LD_RUNPATH_SEARCH_PATHS = ( 809 | "$(inherited)", 810 | "@executable_path/../Frameworks", 811 | "@loader_path/Frameworks", 812 | ); 813 | MACH_O_TYPE = staticlib; 814 | MACOSX_DEPLOYMENT_TARGET = 10.14; 815 | MODULEMAP_FILE = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.modulemap"; 816 | OTHER_LDFLAGS = ""; 817 | OTHER_LIBTOOLFLAGS = ""; 818 | PODS_ROOT = "$(SRCROOT)"; 819 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 820 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 821 | SDKROOT = macosx; 822 | SKIP_INSTALL = YES; 823 | VERSIONING_SYSTEM = "apple-generic"; 824 | VERSION_INFO_PREFIX = ""; 825 | }; 826 | name = Debug; 827 | }; 828 | /* End XCBuildConfiguration section */ 829 | 830 | /* Begin XCConfigurationList section */ 831 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 832 | isa = XCConfigurationList; 833 | buildConfigurations = ( 834 | 430C0A1F2A9CB52955BEC7CE69B7B629 /* Debug */, 835 | 597E092427DF423992C59C814880FE96 /* Release */, 836 | ); 837 | defaultConfigurationIsVisible = 0; 838 | defaultConfigurationName = Release; 839 | }; 840 | 71781A72120C0D2135CFB8FC5F2781C8 /* Build configuration list for PBXNativeTarget "Pods-ViewGenerator" */ = { 841 | isa = XCConfigurationList; 842 | buildConfigurations = ( 843 | ADFCE9478BDB3571EDA303163EEE912B /* Debug */, 844 | 129B333C26593120C7F7D0ED4BC7819B /* Release */, 845 | ); 846 | defaultConfigurationIsVisible = 0; 847 | defaultConfigurationName = Release; 848 | }; 849 | 732645459195657B41A5466792468034 /* Build configuration list for PBXNativeTarget "Pods-ViewGeneratorApp" */ = { 850 | isa = XCConfigurationList; 851 | buildConfigurations = ( 852 | FC33CDC3A6D6263653ED5D4743582675 /* Debug */, 853 | 18DB1C1179B61C21B19ADD56D55790F4 /* Release */, 854 | ); 855 | defaultConfigurationIsVisible = 0; 856 | defaultConfigurationName = Release; 857 | }; 858 | AD4D32CA1CDE4A1CC9B117D84CF304DA /* Build configuration list for PBXNativeTarget "Pods-ViewGeneratorCore" */ = { 859 | isa = XCConfigurationList; 860 | buildConfigurations = ( 861 | 7A492A52BB598880F89FA31FE67C0F33 /* Debug */, 862 | 9E36CFE3DD37F4272FB304397652F0AF /* Release */, 863 | ); 864 | defaultConfigurationIsVisible = 0; 865 | defaultConfigurationName = Release; 866 | }; 867 | AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { 868 | isa = XCConfigurationList; 869 | buildConfigurations = ( 870 | EBA0CC105C99CE8BFDA51C62E70EA605 /* Debug */, 871 | 8B2757D413B867ECEFDC200DDE84AFD2 /* Release */, 872 | ); 873 | defaultConfigurationIsVisible = 0; 874 | defaultConfigurationName = Release; 875 | }; 876 | /* End XCConfigurationList section */ 877 | }; 878 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 879 | } 880 | -------------------------------------------------------------------------------- /Pods/SwiftLint/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Realm Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/SwiftLint/swiftlint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Pods/SwiftLint/swiftlint -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SwiftLint 5 | 6 | The MIT License (MIT) 7 | 8 | Copyright (c) 2015 Realm Inc. 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | Generated by CocoaPods - https://cocoapods.org 29 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | The MIT License (MIT) 18 | 19 | Copyright (c) 2015 Realm Inc. 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | License 40 | MIT 41 | Title 42 | SwiftLint 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Generated by CocoaPods - https://cocoapods.org 49 | Title 50 | 51 | Type 52 | PSGroupSpecifier 53 | 54 | 55 | StringsTable 56 | Acknowledgements 57 | Title 58 | Acknowledgements 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ViewGenerator : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ViewGenerator 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_ViewGeneratorVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ViewGeneratorVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ViewGenerator { 2 | umbrella header "Pods-ViewGenerator-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SwiftLint 5 | 6 | The MIT License (MIT) 7 | 8 | Copyright (c) 2015 Realm Inc. 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | Generated by CocoaPods - https://cocoapods.org 29 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | The MIT License (MIT) 18 | 19 | Copyright (c) 2015 Realm Inc. 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | License 40 | MIT 41 | Title 42 | SwiftLint 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Generated by CocoaPods - https://cocoapods.org 49 | Title 50 | 51 | Type 52 | PSGroupSpecifier 53 | 54 | 55 | StringsTable 56 | Acknowledgements 57 | Title 58 | Acknowledgements 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ViewGeneratorApp : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ViewGeneratorApp 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_ViewGeneratorAppVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ViewGeneratorAppVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ViewGeneratorApp { 2 | umbrella header "Pods-ViewGeneratorApp-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SwiftLint 5 | 6 | The MIT License (MIT) 7 | 8 | Copyright (c) 2015 Realm Inc. 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | Generated by CocoaPods - https://cocoapods.org 29 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | The MIT License (MIT) 18 | 19 | Copyright (c) 2015 Realm Inc. 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | License 40 | MIT 41 | Title 42 | SwiftLint 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Generated by CocoaPods - https://cocoapods.org 49 | Title 50 | 51 | Type 52 | PSGroupSpecifier 53 | 54 | 55 | StringsTable 56 | Acknowledgements 57 | Title 58 | Acknowledgements 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ViewGeneratorCore : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ViewGeneratorCore 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_ViewGeneratorCoreVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ViewGeneratorCoreVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ViewGeneratorCore { 2 | umbrella header "Pods-ViewGeneratorCore-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig: -------------------------------------------------------------------------------- 1 | CODE_SIGN_IDENTITY = 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | ViewGenerator 3 |

4 | 5 |

6 | 7 | 8 | 9 | 10 | 11 | 12 | Platform 13 | 14 | Language 15 | 16 | 17 | License 18 | 19 | 20 | 21 | 22 | 23 | License 24 | 25 |

26 | 27 | ## Overview 28 | ViewGenerator generates view code from variable name automatically when you create view by code in iOS development 29 | 30 | ## Download 31 | 32 | 33 | 34 | 35 | 36 | ## Environment 37 | - Xcode 10.3 or greater 38 | - Swift 5.0 or greator 39 | 40 | ## Demo 41 | 42 | 43 | ## Install 44 | 1. Install [ViewGenerator](https://apps.apple.com/us/app/viewgenerator-for-xcode/id1476703048?l=ja&ls=1&mt=12) from AppStore 45 | 46 | 47 | 2. Enable ViewGenerator 48 | 1. `System Preferences` → `Extensions` 49 | 2. Switch on `Xcode Source Editor` checkbox 50 | 51 | 52 | 53 | 54 | ## Usage 55 | 1. Input variable name
56 | **⚠Important⚠ : variable name must be included class name without `UI` as suffix.** (e.g. `hogeView`, `hogeLabel`, etc.)
57 | Please check [Support View List](https://github.com/funzin/ViewGenerator#support-view-list) bellow 58 | 2. Select variable name 59 | 3. `Editor`→`ViewGenerator`→`Generate View Code` 60 | 61 | 62 | 63 | 4. Generated⚒ 64 | 65 | ### Recommend 66 | **I strongly recommend that you register `Generate View Code` Command to shortcut** 67 | 68 | 1. `Xcode Preferences` → `KeyBindings` 69 | 2. Input `ViewGenerator` in Search 70 | 3. Register shortcut 71 | 72 | 73 | 74 | ### Usage Example 75 | #### Multiple variables 76 | ||GIF| 77 | |:-:|:-:| 78 | |select|| 79 | 80 | #### Single Variable 81 | ||GIF| 82 | |:-:|:-:| 83 | |not_select|| 84 | |select|| 85 | 86 | ### Supplement 87 | Default access modifier is **private** . if you change access modifier, open viewgenerator app and then select access modifier that you want to select 88 | 89 | 90 | 91 | 92 | ## Example 93 | 94 | For example, if variable name prefix is `hoge`, it is generated as bellow 95 | 96 | hogeView 97 | ```swift 98 | private let hogeView: UIView = { 99 | let hogeView = UIView(frame: .zero) 100 | hogeView.translatesAutoresizingMaskIntoConstraints = false 101 | return hogeView 102 | }() 103 | ``` 104 | 105 | hogeButton 106 | ```swift 107 | private let hogeButton: UIButton = { 108 | let hogeButton = UIButton(frame: .zero) 109 | hogeButton.translatesAutoresizingMaskIntoConstraints = false 110 | return hogeButton 111 | }() 112 | ``` 113 | 114 |
115 | hogeTableView 116 |
117 | 118 | ```swift 119 | private let hogeTableView: UITableView = { 120 | let hogeTableView = UITableView(frame: .zero) 121 | hogeTableView.translatesAutoresizingMaskIntoConstraints = false 122 | return hogeTableView 123 | }() 124 | ``` 125 |
126 |
127 | 128 |
129 | hogehoge 130 |
131 | 132 | ```swift 133 | private let hogehoge: _InputTypeName_ = { 134 | let hogehoge = _InputTypeName_(frame: .zero) 135 | hogehoge.translatesAutoresizingMaskIntoConstraints = false 136 | return hogehoge 137 | }() 138 | ``` 139 |
140 |
141 | 142 | 143 | 144 | ### Support View List 145 | |View| 146 | |:-:| 147 | |`UISwitch`| 148 | |`UIActivityIndicatorView`| 149 | |`UIButton`| 150 | |`UICollectionView`| 151 | |`UIControl`| 152 | |`UIDatePicker`| 153 | |`UIImageView`| 154 | |`UILabel`| 155 | |`UINavigationBar`| 156 | |`UIPageControl`| 157 | |`UIPickerView`| 158 | |`UIProgressView`| 159 | |`UIScrollView`| 160 | |`UISearchBar`| 161 | |`UISegmentedControl`| 162 | |`UISlider`| 163 | |`UIStackView`| 164 | |`UIStepper`| 165 | |`UITabBar`| 166 | |`UITableView`| 167 | |`UITextField`| 168 | |`UITextView`| 169 | |`UIToolbar`| 170 | |`UIView`| 171 | |`UIVisualEffectView`| 172 | 173 | If you input variable name that doesn't correspond to the support view list, type name is input as `_InputTypeName_` automatically. 174 | 175 | 176 | ## Contact 177 | If you discover problem or have opinions, please let me know through Github issues💁‍♂️ 178 | 179 | ## Author 180 | funzin 181 | - mail: nakazawa.fumito@gmail.com 182 | 183 | ## License 184 | ViewGenerator is available under the MIT license. See the [LICENSE](./LICENSE) file for more info. 185 | -------------------------------------------------------------------------------- /Resource/gif/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/gif/demo.gif -------------------------------------------------------------------------------- /Resource/gif/not_select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/gif/not_select.gif -------------------------------------------------------------------------------- /Resource/gif/select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/gif/select.gif -------------------------------------------------------------------------------- /Resource/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/logo/logo.png -------------------------------------------------------------------------------- /Resource/logo/social_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/logo/social_preview.png -------------------------------------------------------------------------------- /Resource/logo/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/logo/thumbnail.png -------------------------------------------------------------------------------- /Resource/screenshot/generate_view_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/screenshot/generate_view_code.png -------------------------------------------------------------------------------- /Resource/screenshot/mac_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/screenshot/mac_app.png -------------------------------------------------------------------------------- /Resource/screenshot/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/screenshot/setting.png -------------------------------------------------------------------------------- /Resource/screenshot/shortcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/screenshot/shortcut.png -------------------------------------------------------------------------------- /Resource/sketch/design.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/Resource/sketch/design.sketch -------------------------------------------------------------------------------- /ViewGenerator/Resource/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | ViewGenerator 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleVersion 22 | 51 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | XCSourceEditorCommandDefinitions 30 | 31 | 32 | XCSourceEditorCommandClassName 33 | $(PRODUCT_MODULE_NAME).SourceEditorCommand 34 | XCSourceEditorCommandIdentifier 35 | $(PRODUCT_BUNDLE_IDENTIFIER).SourceEditorCommand 36 | XCSourceEditorCommandName 37 | Generate View Code 38 | 39 | 40 | XCSourceEditorExtensionPrincipalClass 41 | $(PRODUCT_MODULE_NAME).SourceEditorExtension 42 | 43 | NSExtensionPointIdentifier 44 | com.apple.dt.Xcode.extension.source-editor 45 | 46 | NSHumanReadableCopyright 47 | Copyright © 2019 funzin. All rights reserved. 48 | 49 | 50 | -------------------------------------------------------------------------------- /ViewGenerator/Resource/ViewGenerator.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | E5RDJ83DDA.com.funzin.ViewGeneratorApp 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ViewGenerator/Source/SourceEditorCommand.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorCommand.swift 3 | // ViewGenerator 4 | // 5 | // Created by funzin on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import XcodeKit 11 | import ViewGeneratorCore 12 | 13 | class SourceEditorCommand: NSObject, XCSourceEditorCommand { 14 | private enum Const { 15 | static let domain = "ViewGenerator" 16 | } 17 | 18 | func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void ) -> Void { 19 | let textBuffer = invocation.buffer 20 | let lines = textBuffer.lines 21 | let selections = textBuffer.selections 22 | 23 | // extract 24 | guard let selection = selections.firstObject as? XCSourceTextRange, 25 | let _lines = Array(lines) as? [String] else { 26 | completionHandler(NSError(domain: Const.domain, code: 401, userInfo: ["reason": "text is not selected"])) 27 | return 28 | } 29 | 30 | let startLine = selection.start.line 31 | 32 | // when multiple lines are selected, selection.end.line may point to the next line 33 | let endLine = (selection.end.column == 0 && (selection.start.line != selection.end.line)) 34 | ? selection.end.line - 1 35 | : selection.end.line 36 | let selectedLines = Array(_lines[startLine...endLine]) 37 | 38 | // create variable 39 | let viewInitGenerator = ViewInitGenerator(userDefaults: UserDefaults.group) 40 | let initArray = viewInitGenerator.generateInitArray(selectedLines: selectedLines) 41 | guard !initArray.isEmpty else { 42 | completionHandler(NSError(domain: Const.domain, code: 402, userInfo: ["reason": "selected lines are not converted"])) 43 | return 44 | } 45 | 46 | // remove lines 47 | for (i, line) in (startLine...endLine).enumerated() { 48 | lines.remove(lines[line - i]) 49 | } 50 | 51 | // replace 52 | lines.insert(initArray.joined(), at: startLine) 53 | completionHandler(nil) 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /ViewGenerator/Source/SourceEditorExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorExtension.swift 3 | // ViewGenerator 4 | // 5 | // Created by funzin on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import XcodeKit 11 | 12 | class SourceEditorExtension: NSObject, XCSourceEditorExtension { 13 | 14 | /* 15 | func extensionDidFinishLaunching() { 16 | // If your extension needs to do any work at launch, implement this optional method. 17 | } 18 | */ 19 | 20 | /* 21 | var commandDefinitions: [[XCSourceEditorCommandDefinitionKey: Any]] { 22 | // If your extension needs to return a collection of command definitions that differs from those in its Info.plist, implement this optional property getter. 23 | return [] 24 | } 25 | */ 26 | } 27 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3122906422F6BE830054CA7B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122906322F6BE830054CA7B /* AppDelegate.swift */; }; 11 | 3122906622F6BE830054CA7B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122906522F6BE830054CA7B /* ViewController.swift */; }; 12 | 3122906822F6BE840054CA7B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3122906722F6BE840054CA7B /* Assets.xcassets */; }; 13 | 3122906B22F6BE840054CA7B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3122906922F6BE840054CA7B /* Main.storyboard */; }; 14 | 3122907A22F6BEA60054CA7B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3122907922F6BEA60054CA7B /* Cocoa.framework */; }; 15 | 3122907D22F6BEA60054CA7B /* SourceEditorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122907C22F6BEA60054CA7B /* SourceEditorExtension.swift */; }; 16 | 3122907F22F6BEA60054CA7B /* SourceEditorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122907E22F6BEA60054CA7B /* SourceEditorCommand.swift */; }; 17 | 3122908422F6BEA60054CA7B /* ViewGenerator.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 3122907722F6BEA60054CA7B /* ViewGenerator.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 18 | 316FC53E2307B108003E1DD3 /* ViewGeneratorCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */; }; 19 | 316FC5472307B108003E1DD3 /* ViewGeneratorCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 316FC5372307B107003E1DD3 /* ViewGeneratorCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 | 316FC54A2307B108003E1DD3 /* ViewGeneratorCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */; }; 21 | 316FC54B2307B108003E1DD3 /* ViewGeneratorCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 22 | 316FC5532307B115003E1DD3 /* UserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310B823822F874FC00141017 /* UserDefaultsExtension.swift */; }; 23 | 316FC5542307B118003E1DD3 /* AccessModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310B823622F8746E00141017 /* AccessModifier.swift */; }; 24 | 316FC5552307B11C003E1DD3 /* UIParts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122908922F6BEB50054CA7B /* UIParts.swift */; }; 25 | 316FC5562307B11E003E1DD3 /* ViewInitGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310C229322FFC1280030A633 /* ViewInitGenerator.swift */; }; 26 | 316FC5582307B13E003E1DD3 /* UIPartsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3122ABCD22F6CE6C00BC0792 /* UIPartsTests.swift */; }; 27 | 316FC5592307B13E003E1DD3 /* ViewInitGeneratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31C90DCB22FFC7FB0019D0C8 /* ViewInitGeneratorTests.swift */; }; 28 | 316FC55A2307B13E003E1DD3 /* AccessModifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3123DE0A22FFC3400048347F /* AccessModifierTests.swift */; }; 29 | 31A395A9232D1FC3009328E8 /* UserDefaultsKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31A395A8232D1FC3009328E8 /* UserDefaultsKey.swift */; }; 30 | 31A395AB232D21E4009328E8 /* UserDefaultsProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31A395AA232D21E4009328E8 /* UserDefaultsProtocol.swift */; }; 31 | 31A395AE232D249D009328E8 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31A395AD232D249D009328E8 /* MockUserDefaults.swift */; }; 32 | 99B62F65FDC2AA95C8C4F7A9 /* Pods_ViewGeneratorApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932965A902408EE65B329054 /* Pods_ViewGeneratorApp.framework */; }; 33 | AEA88FB589EDD54027B1F17C /* Pods_ViewGenerator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93163BF94A3947D838C4613B /* Pods_ViewGenerator.framework */; }; 34 | C7F84FAE63AD392C461D9BCD /* Pods_ViewGeneratorCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20F34B4B2DF924518900CF04 /* Pods_ViewGeneratorCore.framework */; }; 35 | /* End PBXBuildFile section */ 36 | 37 | /* Begin PBXContainerItemProxy section */ 38 | 3122908222F6BEA60054CA7B /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = 3122905822F6BE830054CA7B /* Project object */; 41 | proxyType = 1; 42 | remoteGlobalIDString = 3122907622F6BEA60054CA7B; 43 | remoteInfo = ViewGenerator; 44 | }; 45 | 316FC53F2307B108003E1DD3 /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = 3122905822F6BE830054CA7B /* Project object */; 48 | proxyType = 1; 49 | remoteGlobalIDString = 316FC5342307B107003E1DD3; 50 | remoteInfo = ViewGeneratorCore; 51 | }; 52 | 316FC5482307B108003E1DD3 /* PBXContainerItemProxy */ = { 53 | isa = PBXContainerItemProxy; 54 | containerPortal = 3122905822F6BE830054CA7B /* Project object */; 55 | proxyType = 1; 56 | remoteGlobalIDString = 316FC5342307B107003E1DD3; 57 | remoteInfo = ViewGeneratorCore; 58 | }; 59 | 319AC55D2307B7870024CCEA /* PBXContainerItemProxy */ = { 60 | isa = PBXContainerItemProxy; 61 | containerPortal = 3122905822F6BE830054CA7B /* Project object */; 62 | proxyType = 1; 63 | remoteGlobalIDString = 316FC5342307B107003E1DD3; 64 | remoteInfo = ViewGeneratorCore; 65 | }; 66 | /* End PBXContainerItemProxy section */ 67 | 68 | /* Begin PBXCopyFilesBuildPhase section */ 69 | 3122908822F6BEA60054CA7B /* Embed App Extensions */ = { 70 | isa = PBXCopyFilesBuildPhase; 71 | buildActionMask = 2147483647; 72 | dstPath = ""; 73 | dstSubfolderSpec = 13; 74 | files = ( 75 | 3122908422F6BEA60054CA7B /* ViewGenerator.appex in Embed App Extensions */, 76 | ); 77 | name = "Embed App Extensions"; 78 | runOnlyForDeploymentPostprocessing = 0; 79 | }; 80 | 316FC54C2307B108003E1DD3 /* Embed Frameworks */ = { 81 | isa = PBXCopyFilesBuildPhase; 82 | buildActionMask = 2147483647; 83 | dstPath = ""; 84 | dstSubfolderSpec = 10; 85 | files = ( 86 | 316FC54B2307B108003E1DD3 /* ViewGeneratorCore.framework in Embed Frameworks */, 87 | ); 88 | name = "Embed Frameworks"; 89 | runOnlyForDeploymentPostprocessing = 0; 90 | }; 91 | /* End PBXCopyFilesBuildPhase section */ 92 | 93 | /* Begin PBXFileReference section */ 94 | 20F34B4B2DF924518900CF04 /* Pods_ViewGeneratorCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ViewGeneratorCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 95 | 21CC8B85B19D3E94C6519984 /* Pods-ViewGeneratorCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGeneratorCore.release.xcconfig"; path = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.release.xcconfig"; sourceTree = ""; }; 96 | 310B823622F8746E00141017 /* AccessModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessModifier.swift; sourceTree = ""; }; 97 | 310B823822F874FC00141017 /* UserDefaultsExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtension.swift; sourceTree = ""; }; 98 | 310C229322FFC1280030A633 /* ViewInitGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewInitGenerator.swift; sourceTree = ""; }; 99 | 3122906022F6BE830054CA7B /* ViewGeneratorForXcode.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ViewGeneratorForXcode.app; sourceTree = BUILT_PRODUCTS_DIR; }; 100 | 3122906322F6BE830054CA7B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 101 | 3122906522F6BE830054CA7B /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 102 | 3122906722F6BE840054CA7B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 103 | 3122906A22F6BE840054CA7B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 104 | 3122906C22F6BE840054CA7B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 105 | 3122906D22F6BE840054CA7B /* ViewGeneratorApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ViewGeneratorApp.entitlements; sourceTree = ""; }; 106 | 3122907722F6BEA60054CA7B /* ViewGenerator.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ViewGenerator.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 107 | 3122907922F6BEA60054CA7B /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 108 | 3122907C22F6BEA60054CA7B /* SourceEditorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorExtension.swift; sourceTree = ""; }; 109 | 3122907E22F6BEA60054CA7B /* SourceEditorCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorCommand.swift; sourceTree = ""; }; 110 | 3122908022F6BEA60054CA7B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 111 | 3122908122F6BEA60054CA7B /* ViewGenerator.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ViewGenerator.entitlements; sourceTree = ""; }; 112 | 3122908922F6BEB50054CA7B /* UIParts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIParts.swift; sourceTree = ""; }; 113 | 3122ABCD22F6CE6C00BC0792 /* UIPartsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIPartsTests.swift; sourceTree = ""; }; 114 | 3123DE0A22FFC3400048347F /* AccessModifierTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessModifierTests.swift; sourceTree = ""; }; 115 | 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ViewGeneratorCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 116 | 316FC5372307B107003E1DD3 /* ViewGeneratorCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewGeneratorCore.h; sourceTree = ""; }; 117 | 316FC5382307B107003E1DD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 118 | 316FC53D2307B107003E1DD3 /* ViewGeneratorCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ViewGeneratorCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 119 | 316FC5462307B108003E1DD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 120 | 31A395A8232D1FC3009328E8 /* UserDefaultsKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsKey.swift; sourceTree = ""; }; 121 | 31A395AA232D21E4009328E8 /* UserDefaultsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsProtocol.swift; sourceTree = ""; }; 122 | 31A395AD232D249D009328E8 /* MockUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserDefaults.swift; sourceTree = ""; }; 123 | 31C90DCB22FFC7FB0019D0C8 /* ViewInitGeneratorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewInitGeneratorTests.swift; sourceTree = ""; }; 124 | 49AA12573FC86EDFA9BDF065 /* Pods-ViewGeneratorCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGeneratorCore.debug.xcconfig"; path = "Target Support Files/Pods-ViewGeneratorCore/Pods-ViewGeneratorCore.debug.xcconfig"; sourceTree = ""; }; 125 | 93163BF94A3947D838C4613B /* Pods_ViewGenerator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ViewGenerator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 126 | 932965A902408EE65B329054 /* Pods_ViewGeneratorApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ViewGeneratorApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 127 | BABD586E2EE2C5BDE4D2D9E1 /* Pods-ViewGenerator.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGenerator.debug.xcconfig"; path = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.debug.xcconfig"; sourceTree = ""; }; 128 | D26CF34314AEF5E7D7E5DA5A /* Pods-ViewGeneratorApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGeneratorApp.debug.xcconfig"; path = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.debug.xcconfig"; sourceTree = ""; }; 129 | EE0E1B63B66CA97F60E6FBCC /* Pods-ViewGenerator.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGenerator.release.xcconfig"; path = "Target Support Files/Pods-ViewGenerator/Pods-ViewGenerator.release.xcconfig"; sourceTree = ""; }; 130 | FEDEBBCF0B292D1265CAE7CD /* Pods-ViewGeneratorApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ViewGeneratorApp.release.xcconfig"; path = "Target Support Files/Pods-ViewGeneratorApp/Pods-ViewGeneratorApp.release.xcconfig"; sourceTree = ""; }; 131 | /* End PBXFileReference section */ 132 | 133 | /* Begin PBXFrameworksBuildPhase section */ 134 | 3122905D22F6BE830054CA7B /* Frameworks */ = { 135 | isa = PBXFrameworksBuildPhase; 136 | buildActionMask = 2147483647; 137 | files = ( 138 | 316FC54A2307B108003E1DD3 /* ViewGeneratorCore.framework in Frameworks */, 139 | 99B62F65FDC2AA95C8C4F7A9 /* Pods_ViewGeneratorApp.framework in Frameworks */, 140 | ); 141 | runOnlyForDeploymentPostprocessing = 0; 142 | }; 143 | 3122907422F6BEA60054CA7B /* Frameworks */ = { 144 | isa = PBXFrameworksBuildPhase; 145 | buildActionMask = 2147483647; 146 | files = ( 147 | 3122907A22F6BEA60054CA7B /* Cocoa.framework in Frameworks */, 148 | AEA88FB589EDD54027B1F17C /* Pods_ViewGenerator.framework in Frameworks */, 149 | ); 150 | runOnlyForDeploymentPostprocessing = 0; 151 | }; 152 | 316FC5322307B107003E1DD3 /* Frameworks */ = { 153 | isa = PBXFrameworksBuildPhase; 154 | buildActionMask = 2147483647; 155 | files = ( 156 | C7F84FAE63AD392C461D9BCD /* Pods_ViewGeneratorCore.framework in Frameworks */, 157 | ); 158 | runOnlyForDeploymentPostprocessing = 0; 159 | }; 160 | 316FC53A2307B107003E1DD3 /* Frameworks */ = { 161 | isa = PBXFrameworksBuildPhase; 162 | buildActionMask = 2147483647; 163 | files = ( 164 | 316FC53E2307B108003E1DD3 /* ViewGeneratorCore.framework in Frameworks */, 165 | ); 166 | runOnlyForDeploymentPostprocessing = 0; 167 | }; 168 | /* End PBXFrameworksBuildPhase section */ 169 | 170 | /* Begin PBXGroup section */ 171 | 2D5DECF7BE26CE16476F86C2 /* Pods */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | BABD586E2EE2C5BDE4D2D9E1 /* Pods-ViewGenerator.debug.xcconfig */, 175 | EE0E1B63B66CA97F60E6FBCC /* Pods-ViewGenerator.release.xcconfig */, 176 | D26CF34314AEF5E7D7E5DA5A /* Pods-ViewGeneratorApp.debug.xcconfig */, 177 | FEDEBBCF0B292D1265CAE7CD /* Pods-ViewGeneratorApp.release.xcconfig */, 178 | 49AA12573FC86EDFA9BDF065 /* Pods-ViewGeneratorCore.debug.xcconfig */, 179 | 21CC8B85B19D3E94C6519984 /* Pods-ViewGeneratorCore.release.xcconfig */, 180 | ); 181 | path = Pods; 182 | sourceTree = ""; 183 | }; 184 | 3122905722F6BE830054CA7B = { 185 | isa = PBXGroup; 186 | children = ( 187 | 3122906222F6BE830054CA7B /* ViewGeneratorApp */, 188 | 3122907B22F6BEA60054CA7B /* ViewGenerator */, 189 | 316FC5362307B107003E1DD3 /* ViewGeneratorCore */, 190 | 316FC5432307B108003E1DD3 /* ViewGeneratorCoreTests */, 191 | 3122907822F6BEA60054CA7B /* Frameworks */, 192 | 3122906122F6BE830054CA7B /* Products */, 193 | 2D5DECF7BE26CE16476F86C2 /* Pods */, 194 | ); 195 | sourceTree = ""; 196 | }; 197 | 3122906122F6BE830054CA7B /* Products */ = { 198 | isa = PBXGroup; 199 | children = ( 200 | 3122906022F6BE830054CA7B /* ViewGeneratorForXcode.app */, 201 | 3122907722F6BEA60054CA7B /* ViewGenerator.appex */, 202 | 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */, 203 | 316FC53D2307B107003E1DD3 /* ViewGeneratorCoreTests.xctest */, 204 | ); 205 | name = Products; 206 | sourceTree = ""; 207 | }; 208 | 3122906222F6BE830054CA7B /* ViewGeneratorApp */ = { 209 | isa = PBXGroup; 210 | children = ( 211 | 3122908E22F6BF600054CA7B /* Resource */, 212 | 3122908D22F6BF5A0054CA7B /* Source */, 213 | ); 214 | path = ViewGeneratorApp; 215 | sourceTree = ""; 216 | }; 217 | 3122907822F6BEA60054CA7B /* Frameworks */ = { 218 | isa = PBXGroup; 219 | children = ( 220 | 3122907922F6BEA60054CA7B /* Cocoa.framework */, 221 | 93163BF94A3947D838C4613B /* Pods_ViewGenerator.framework */, 222 | 932965A902408EE65B329054 /* Pods_ViewGeneratorApp.framework */, 223 | 20F34B4B2DF924518900CF04 /* Pods_ViewGeneratorCore.framework */, 224 | ); 225 | name = Frameworks; 226 | sourceTree = ""; 227 | }; 228 | 3122907B22F6BEA60054CA7B /* ViewGenerator */ = { 229 | isa = PBXGroup; 230 | children = ( 231 | 3122908C22F6BF510054CA7B /* Resource */, 232 | 3122908B22F6BF480054CA7B /* Source */, 233 | ); 234 | path = ViewGenerator; 235 | sourceTree = ""; 236 | }; 237 | 3122908B22F6BF480054CA7B /* Source */ = { 238 | isa = PBXGroup; 239 | children = ( 240 | 3122907C22F6BEA60054CA7B /* SourceEditorExtension.swift */, 241 | 3122907E22F6BEA60054CA7B /* SourceEditorCommand.swift */, 242 | ); 243 | path = Source; 244 | sourceTree = ""; 245 | }; 246 | 3122908C22F6BF510054CA7B /* Resource */ = { 247 | isa = PBXGroup; 248 | children = ( 249 | 3122908022F6BEA60054CA7B /* Info.plist */, 250 | 3122908122F6BEA60054CA7B /* ViewGenerator.entitlements */, 251 | ); 252 | path = Resource; 253 | sourceTree = ""; 254 | }; 255 | 3122908D22F6BF5A0054CA7B /* Source */ = { 256 | isa = PBXGroup; 257 | children = ( 258 | 3122906922F6BE840054CA7B /* Main.storyboard */, 259 | 3122906322F6BE830054CA7B /* AppDelegate.swift */, 260 | 3122906522F6BE830054CA7B /* ViewController.swift */, 261 | ); 262 | path = Source; 263 | sourceTree = ""; 264 | }; 265 | 3122908E22F6BF600054CA7B /* Resource */ = { 266 | isa = PBXGroup; 267 | children = ( 268 | 3122906722F6BE840054CA7B /* Assets.xcassets */, 269 | 3122906C22F6BE840054CA7B /* Info.plist */, 270 | 3122906D22F6BE840054CA7B /* ViewGeneratorApp.entitlements */, 271 | ); 272 | path = Resource; 273 | sourceTree = ""; 274 | }; 275 | 316FC5362307B107003E1DD3 /* ViewGeneratorCore */ = { 276 | isa = PBXGroup; 277 | children = ( 278 | 316FC5572307B12D003E1DD3 /* Source */, 279 | 316FC5372307B107003E1DD3 /* ViewGeneratorCore.h */, 280 | 316FC5382307B107003E1DD3 /* Info.plist */, 281 | ); 282 | path = ViewGeneratorCore; 283 | sourceTree = ""; 284 | }; 285 | 316FC5432307B108003E1DD3 /* ViewGeneratorCoreTests */ = { 286 | isa = PBXGroup; 287 | children = ( 288 | 31A395AC232D248B009328E8 /* mock */, 289 | 3122ABCD22F6CE6C00BC0792 /* UIPartsTests.swift */, 290 | 31C90DCB22FFC7FB0019D0C8 /* ViewInitGeneratorTests.swift */, 291 | 3123DE0A22FFC3400048347F /* AccessModifierTests.swift */, 292 | 316FC5462307B108003E1DD3 /* Info.plist */, 293 | ); 294 | path = ViewGeneratorCoreTests; 295 | sourceTree = ""; 296 | }; 297 | 316FC5572307B12D003E1DD3 /* Source */ = { 298 | isa = PBXGroup; 299 | children = ( 300 | 31A395A7232D1FA7009328E8 /* UserDefaults */, 301 | 310C229322FFC1280030A633 /* ViewInitGenerator.swift */, 302 | 3122908922F6BEB50054CA7B /* UIParts.swift */, 303 | 310B823622F8746E00141017 /* AccessModifier.swift */, 304 | ); 305 | path = Source; 306 | sourceTree = ""; 307 | }; 308 | 31A395A7232D1FA7009328E8 /* UserDefaults */ = { 309 | isa = PBXGroup; 310 | children = ( 311 | 310B823822F874FC00141017 /* UserDefaultsExtension.swift */, 312 | 31A395A8232D1FC3009328E8 /* UserDefaultsKey.swift */, 313 | 31A395AA232D21E4009328E8 /* UserDefaultsProtocol.swift */, 314 | ); 315 | path = UserDefaults; 316 | sourceTree = ""; 317 | }; 318 | 31A395AC232D248B009328E8 /* mock */ = { 319 | isa = PBXGroup; 320 | children = ( 321 | 31A395AD232D249D009328E8 /* MockUserDefaults.swift */, 322 | ); 323 | path = mock; 324 | sourceTree = ""; 325 | }; 326 | /* End PBXGroup section */ 327 | 328 | /* Begin PBXHeadersBuildPhase section */ 329 | 316FC5302307B107003E1DD3 /* Headers */ = { 330 | isa = PBXHeadersBuildPhase; 331 | buildActionMask = 2147483647; 332 | files = ( 333 | 316FC5472307B108003E1DD3 /* ViewGeneratorCore.h in Headers */, 334 | ); 335 | runOnlyForDeploymentPostprocessing = 0; 336 | }; 337 | /* End PBXHeadersBuildPhase section */ 338 | 339 | /* Begin PBXNativeTarget section */ 340 | 3122905F22F6BE830054CA7B /* ViewGeneratorApp */ = { 341 | isa = PBXNativeTarget; 342 | buildConfigurationList = 3122907022F6BE840054CA7B /* Build configuration list for PBXNativeTarget "ViewGeneratorApp" */; 343 | buildPhases = ( 344 | 457134296C79CD09A5CF29DD /* [CP] Check Pods Manifest.lock */, 345 | 3122905C22F6BE830054CA7B /* Sources */, 346 | 3122905D22F6BE830054CA7B /* Frameworks */, 347 | 3122905E22F6BE830054CA7B /* Resources */, 348 | 3122908822F6BEA60054CA7B /* Embed App Extensions */, 349 | 31B47A9722F6CB1100F41921 /* Run SwiftLint */, 350 | 316FC54C2307B108003E1DD3 /* Embed Frameworks */, 351 | 313740CB230D93900012285D /* ShellScript */, 352 | ); 353 | buildRules = ( 354 | ); 355 | dependencies = ( 356 | 3122908322F6BEA60054CA7B /* PBXTargetDependency */, 357 | 316FC5492307B108003E1DD3 /* PBXTargetDependency */, 358 | ); 359 | name = ViewGeneratorApp; 360 | productName = ViewGeneratorApp; 361 | productReference = 3122906022F6BE830054CA7B /* ViewGeneratorForXcode.app */; 362 | productType = "com.apple.product-type.application"; 363 | }; 364 | 3122907622F6BEA60054CA7B /* ViewGenerator */ = { 365 | isa = PBXNativeTarget; 366 | buildConfigurationList = 3122908522F6BEA60054CA7B /* Build configuration list for PBXNativeTarget "ViewGenerator" */; 367 | buildPhases = ( 368 | 5A2FB465D4389BAC8B9B2941 /* [CP] Check Pods Manifest.lock */, 369 | 3122907322F6BEA60054CA7B /* Sources */, 370 | 3122907422F6BEA60054CA7B /* Frameworks */, 371 | 3122907522F6BEA60054CA7B /* Resources */, 372 | 3122908F22F6C5C10054CA7B /* Run SwiftLint */, 373 | ); 374 | buildRules = ( 375 | ); 376 | dependencies = ( 377 | 319AC55E2307B7870024CCEA /* PBXTargetDependency */, 378 | ); 379 | name = ViewGenerator; 380 | productName = ViewGenerator; 381 | productReference = 3122907722F6BEA60054CA7B /* ViewGenerator.appex */; 382 | productType = "com.apple.product-type.xcode-extension"; 383 | }; 384 | 316FC5342307B107003E1DD3 /* ViewGeneratorCore */ = { 385 | isa = PBXNativeTarget; 386 | buildConfigurationList = 316FC5512307B108003E1DD3 /* Build configuration list for PBXNativeTarget "ViewGeneratorCore" */; 387 | buildPhases = ( 388 | AC91A0B2213262C89E2FA1E9 /* [CP] Check Pods Manifest.lock */, 389 | 316FC5302307B107003E1DD3 /* Headers */, 390 | 316FC5312307B107003E1DD3 /* Sources */, 391 | 316FC5322307B107003E1DD3 /* Frameworks */, 392 | 316FC5332307B107003E1DD3 /* Resources */, 393 | 317BC0502307CFEB006522E6 /* ShellScript */, 394 | ); 395 | buildRules = ( 396 | ); 397 | dependencies = ( 398 | ); 399 | name = ViewGeneratorCore; 400 | productName = ViewGeneratorCore; 401 | productReference = 316FC5352307B107003E1DD3 /* ViewGeneratorCore.framework */; 402 | productType = "com.apple.product-type.framework"; 403 | }; 404 | 316FC53C2307B107003E1DD3 /* ViewGeneratorCoreTests */ = { 405 | isa = PBXNativeTarget; 406 | buildConfigurationList = 316FC5522307B108003E1DD3 /* Build configuration list for PBXNativeTarget "ViewGeneratorCoreTests" */; 407 | buildPhases = ( 408 | 316FC5392307B107003E1DD3 /* Sources */, 409 | 316FC53A2307B107003E1DD3 /* Frameworks */, 410 | 316FC53B2307B107003E1DD3 /* Resources */, 411 | ); 412 | buildRules = ( 413 | ); 414 | dependencies = ( 415 | 316FC5402307B108003E1DD3 /* PBXTargetDependency */, 416 | ); 417 | name = ViewGeneratorCoreTests; 418 | productName = ViewGeneratorCoreTests; 419 | productReference = 316FC53D2307B107003E1DD3 /* ViewGeneratorCoreTests.xctest */; 420 | productType = "com.apple.product-type.bundle.unit-test"; 421 | }; 422 | /* End PBXNativeTarget section */ 423 | 424 | /* Begin PBXProject section */ 425 | 3122905822F6BE830054CA7B /* Project object */ = { 426 | isa = PBXProject; 427 | attributes = { 428 | LastSwiftUpdateCheck = 1100; 429 | LastUpgradeCheck = 1100; 430 | ORGANIZATIONNAME = funzin; 431 | TargetAttributes = { 432 | 3122905F22F6BE830054CA7B = { 433 | CreatedOnToolsVersion = 11.0; 434 | SystemCapabilities = { 435 | com.apple.Sandbox = { 436 | enabled = 1; 437 | }; 438 | }; 439 | }; 440 | 3122907622F6BEA60054CA7B = { 441 | CreatedOnToolsVersion = 11.0; 442 | SystemCapabilities = { 443 | com.apple.Sandbox = { 444 | enabled = 1; 445 | }; 446 | }; 447 | }; 448 | 316FC5342307B107003E1DD3 = { 449 | CreatedOnToolsVersion = 11.0; 450 | }; 451 | 316FC53C2307B107003E1DD3 = { 452 | CreatedOnToolsVersion = 11.0; 453 | }; 454 | }; 455 | }; 456 | buildConfigurationList = 3122905B22F6BE830054CA7B /* Build configuration list for PBXProject "ViewGeneratorApp" */; 457 | compatibilityVersion = "Xcode 9.3"; 458 | developmentRegion = en; 459 | hasScannedForEncodings = 0; 460 | knownRegions = ( 461 | en, 462 | Base, 463 | ); 464 | mainGroup = 3122905722F6BE830054CA7B; 465 | productRefGroup = 3122906122F6BE830054CA7B /* Products */; 466 | projectDirPath = ""; 467 | projectRoot = ""; 468 | targets = ( 469 | 3122905F22F6BE830054CA7B /* ViewGeneratorApp */, 470 | 3122907622F6BEA60054CA7B /* ViewGenerator */, 471 | 316FC5342307B107003E1DD3 /* ViewGeneratorCore */, 472 | 316FC53C2307B107003E1DD3 /* ViewGeneratorCoreTests */, 473 | ); 474 | }; 475 | /* End PBXProject section */ 476 | 477 | /* Begin PBXResourcesBuildPhase section */ 478 | 3122905E22F6BE830054CA7B /* Resources */ = { 479 | isa = PBXResourcesBuildPhase; 480 | buildActionMask = 2147483647; 481 | files = ( 482 | 3122906822F6BE840054CA7B /* Assets.xcassets in Resources */, 483 | 3122906B22F6BE840054CA7B /* Main.storyboard in Resources */, 484 | ); 485 | runOnlyForDeploymentPostprocessing = 0; 486 | }; 487 | 3122907522F6BEA60054CA7B /* Resources */ = { 488 | isa = PBXResourcesBuildPhase; 489 | buildActionMask = 2147483647; 490 | files = ( 491 | ); 492 | runOnlyForDeploymentPostprocessing = 0; 493 | }; 494 | 316FC5332307B107003E1DD3 /* Resources */ = { 495 | isa = PBXResourcesBuildPhase; 496 | buildActionMask = 2147483647; 497 | files = ( 498 | ); 499 | runOnlyForDeploymentPostprocessing = 0; 500 | }; 501 | 316FC53B2307B107003E1DD3 /* Resources */ = { 502 | isa = PBXResourcesBuildPhase; 503 | buildActionMask = 2147483647; 504 | files = ( 505 | ); 506 | runOnlyForDeploymentPostprocessing = 0; 507 | }; 508 | /* End PBXResourcesBuildPhase section */ 509 | 510 | /* Begin PBXShellScriptBuildPhase section */ 511 | 3122908F22F6C5C10054CA7B /* Run SwiftLint */ = { 512 | isa = PBXShellScriptBuildPhase; 513 | buildActionMask = 2147483647; 514 | files = ( 515 | ); 516 | inputFileListPaths = ( 517 | ); 518 | inputPaths = ( 519 | ); 520 | name = "Run SwiftLint"; 521 | outputFileListPaths = ( 522 | ); 523 | outputPaths = ( 524 | ); 525 | runOnlyForDeploymentPostprocessing = 0; 526 | shellPath = /bin/sh; 527 | shellScript = "${PODS_ROOT}/SwiftLint/swiftlint\n"; 528 | }; 529 | 313740CB230D93900012285D /* ShellScript */ = { 530 | isa = PBXShellScriptBuildPhase; 531 | buildActionMask = 2147483647; 532 | files = ( 533 | ); 534 | inputFileListPaths = ( 535 | ); 536 | inputPaths = ( 537 | ); 538 | outputFileListPaths = ( 539 | ); 540 | outputPaths = ( 541 | ); 542 | runOnlyForDeploymentPostprocessing = 0; 543 | shellPath = /bin/sh; 544 | shellScript = "if [ ${CONFIGURATION} == \"Release\" ]; then\n cd \"${PROJECT_DIR}\"\n agvtool next-version -all\nfi\n"; 545 | }; 546 | 317BC0502307CFEB006522E6 /* ShellScript */ = { 547 | isa = PBXShellScriptBuildPhase; 548 | buildActionMask = 2147483647; 549 | files = ( 550 | ); 551 | inputFileListPaths = ( 552 | ); 553 | inputPaths = ( 554 | ); 555 | outputFileListPaths = ( 556 | ); 557 | outputPaths = ( 558 | ); 559 | runOnlyForDeploymentPostprocessing = 0; 560 | shellPath = /bin/sh; 561 | shellScript = "${PODS_ROOT}/SwiftLint/swiftlint\n\n"; 562 | }; 563 | 31B47A9722F6CB1100F41921 /* Run SwiftLint */ = { 564 | isa = PBXShellScriptBuildPhase; 565 | buildActionMask = 2147483647; 566 | files = ( 567 | ); 568 | inputFileListPaths = ( 569 | ); 570 | inputPaths = ( 571 | ); 572 | name = "Run SwiftLint"; 573 | outputFileListPaths = ( 574 | ); 575 | outputPaths = ( 576 | ); 577 | runOnlyForDeploymentPostprocessing = 0; 578 | shellPath = /bin/sh; 579 | shellScript = "${PODS_ROOT}/SwiftLint/swiftlint\n"; 580 | }; 581 | 457134296C79CD09A5CF29DD /* [CP] Check Pods Manifest.lock */ = { 582 | isa = PBXShellScriptBuildPhase; 583 | buildActionMask = 2147483647; 584 | files = ( 585 | ); 586 | inputFileListPaths = ( 587 | ); 588 | inputPaths = ( 589 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 590 | "${PODS_ROOT}/Manifest.lock", 591 | ); 592 | name = "[CP] Check Pods Manifest.lock"; 593 | outputFileListPaths = ( 594 | ); 595 | outputPaths = ( 596 | "$(DERIVED_FILE_DIR)/Pods-ViewGeneratorApp-checkManifestLockResult.txt", 597 | ); 598 | runOnlyForDeploymentPostprocessing = 0; 599 | shellPath = /bin/sh; 600 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 601 | showEnvVarsInLog = 0; 602 | }; 603 | 5A2FB465D4389BAC8B9B2941 /* [CP] Check Pods Manifest.lock */ = { 604 | isa = PBXShellScriptBuildPhase; 605 | buildActionMask = 2147483647; 606 | files = ( 607 | ); 608 | inputFileListPaths = ( 609 | ); 610 | inputPaths = ( 611 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 612 | "${PODS_ROOT}/Manifest.lock", 613 | ); 614 | name = "[CP] Check Pods Manifest.lock"; 615 | outputFileListPaths = ( 616 | ); 617 | outputPaths = ( 618 | "$(DERIVED_FILE_DIR)/Pods-ViewGenerator-checkManifestLockResult.txt", 619 | ); 620 | runOnlyForDeploymentPostprocessing = 0; 621 | shellPath = /bin/sh; 622 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 623 | showEnvVarsInLog = 0; 624 | }; 625 | AC91A0B2213262C89E2FA1E9 /* [CP] Check Pods Manifest.lock */ = { 626 | isa = PBXShellScriptBuildPhase; 627 | buildActionMask = 2147483647; 628 | files = ( 629 | ); 630 | inputFileListPaths = ( 631 | ); 632 | inputPaths = ( 633 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 634 | "${PODS_ROOT}/Manifest.lock", 635 | ); 636 | name = "[CP] Check Pods Manifest.lock"; 637 | outputFileListPaths = ( 638 | ); 639 | outputPaths = ( 640 | "$(DERIVED_FILE_DIR)/Pods-ViewGeneratorCore-checkManifestLockResult.txt", 641 | ); 642 | runOnlyForDeploymentPostprocessing = 0; 643 | shellPath = /bin/sh; 644 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 645 | showEnvVarsInLog = 0; 646 | }; 647 | /* End PBXShellScriptBuildPhase section */ 648 | 649 | /* Begin PBXSourcesBuildPhase section */ 650 | 3122905C22F6BE830054CA7B /* Sources */ = { 651 | isa = PBXSourcesBuildPhase; 652 | buildActionMask = 2147483647; 653 | files = ( 654 | 3122906622F6BE830054CA7B /* ViewController.swift in Sources */, 655 | 3122906422F6BE830054CA7B /* AppDelegate.swift in Sources */, 656 | ); 657 | runOnlyForDeploymentPostprocessing = 0; 658 | }; 659 | 3122907322F6BEA60054CA7B /* Sources */ = { 660 | isa = PBXSourcesBuildPhase; 661 | buildActionMask = 2147483647; 662 | files = ( 663 | 3122907D22F6BEA60054CA7B /* SourceEditorExtension.swift in Sources */, 664 | 3122907F22F6BEA60054CA7B /* SourceEditorCommand.swift in Sources */, 665 | ); 666 | runOnlyForDeploymentPostprocessing = 0; 667 | }; 668 | 316FC5312307B107003E1DD3 /* Sources */ = { 669 | isa = PBXSourcesBuildPhase; 670 | buildActionMask = 2147483647; 671 | files = ( 672 | 316FC5542307B118003E1DD3 /* AccessModifier.swift in Sources */, 673 | 316FC5552307B11C003E1DD3 /* UIParts.swift in Sources */, 674 | 316FC5532307B115003E1DD3 /* UserDefaultsExtension.swift in Sources */, 675 | 316FC5562307B11E003E1DD3 /* ViewInitGenerator.swift in Sources */, 676 | 31A395AB232D21E4009328E8 /* UserDefaultsProtocol.swift in Sources */, 677 | 31A395A9232D1FC3009328E8 /* UserDefaultsKey.swift in Sources */, 678 | ); 679 | runOnlyForDeploymentPostprocessing = 0; 680 | }; 681 | 316FC5392307B107003E1DD3 /* Sources */ = { 682 | isa = PBXSourcesBuildPhase; 683 | buildActionMask = 2147483647; 684 | files = ( 685 | 316FC55A2307B13E003E1DD3 /* AccessModifierTests.swift in Sources */, 686 | 316FC5582307B13E003E1DD3 /* UIPartsTests.swift in Sources */, 687 | 31A395AE232D249D009328E8 /* MockUserDefaults.swift in Sources */, 688 | 316FC5592307B13E003E1DD3 /* ViewInitGeneratorTests.swift in Sources */, 689 | ); 690 | runOnlyForDeploymentPostprocessing = 0; 691 | }; 692 | /* End PBXSourcesBuildPhase section */ 693 | 694 | /* Begin PBXTargetDependency section */ 695 | 3122908322F6BEA60054CA7B /* PBXTargetDependency */ = { 696 | isa = PBXTargetDependency; 697 | target = 3122907622F6BEA60054CA7B /* ViewGenerator */; 698 | targetProxy = 3122908222F6BEA60054CA7B /* PBXContainerItemProxy */; 699 | }; 700 | 316FC5402307B108003E1DD3 /* PBXTargetDependency */ = { 701 | isa = PBXTargetDependency; 702 | target = 316FC5342307B107003E1DD3 /* ViewGeneratorCore */; 703 | targetProxy = 316FC53F2307B108003E1DD3 /* PBXContainerItemProxy */; 704 | }; 705 | 316FC5492307B108003E1DD3 /* PBXTargetDependency */ = { 706 | isa = PBXTargetDependency; 707 | target = 316FC5342307B107003E1DD3 /* ViewGeneratorCore */; 708 | targetProxy = 316FC5482307B108003E1DD3 /* PBXContainerItemProxy */; 709 | }; 710 | 319AC55E2307B7870024CCEA /* PBXTargetDependency */ = { 711 | isa = PBXTargetDependency; 712 | target = 316FC5342307B107003E1DD3 /* ViewGeneratorCore */; 713 | targetProxy = 319AC55D2307B7870024CCEA /* PBXContainerItemProxy */; 714 | }; 715 | /* End PBXTargetDependency section */ 716 | 717 | /* Begin PBXVariantGroup section */ 718 | 3122906922F6BE840054CA7B /* Main.storyboard */ = { 719 | isa = PBXVariantGroup; 720 | children = ( 721 | 3122906A22F6BE840054CA7B /* Base */, 722 | ); 723 | name = Main.storyboard; 724 | sourceTree = ""; 725 | }; 726 | /* End PBXVariantGroup section */ 727 | 728 | /* Begin XCBuildConfiguration section */ 729 | 3122906E22F6BE840054CA7B /* Debug */ = { 730 | isa = XCBuildConfiguration; 731 | buildSettings = { 732 | ALWAYS_SEARCH_USER_PATHS = NO; 733 | CLANG_ANALYZER_NONNULL = YES; 734 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 735 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 736 | CLANG_CXX_LIBRARY = "libc++"; 737 | CLANG_ENABLE_MODULES = YES; 738 | CLANG_ENABLE_OBJC_ARC = YES; 739 | CLANG_ENABLE_OBJC_WEAK = YES; 740 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 741 | CLANG_WARN_BOOL_CONVERSION = YES; 742 | CLANG_WARN_COMMA = YES; 743 | CLANG_WARN_CONSTANT_CONVERSION = YES; 744 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 745 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 746 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 747 | CLANG_WARN_EMPTY_BODY = YES; 748 | CLANG_WARN_ENUM_CONVERSION = YES; 749 | CLANG_WARN_INFINITE_RECURSION = YES; 750 | CLANG_WARN_INT_CONVERSION = YES; 751 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 752 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 753 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 754 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 755 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 756 | CLANG_WARN_STRICT_PROTOTYPES = YES; 757 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 758 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 759 | CLANG_WARN_UNREACHABLE_CODE = YES; 760 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 761 | COPY_PHASE_STRIP = NO; 762 | CURRENT_PROJECT_VERSION = 51; 763 | DEBUG_INFORMATION_FORMAT = dwarf; 764 | ENABLE_STRICT_OBJC_MSGSEND = YES; 765 | ENABLE_TESTABILITY = YES; 766 | GCC_C_LANGUAGE_STANDARD = gnu11; 767 | GCC_DYNAMIC_NO_PIC = NO; 768 | GCC_NO_COMMON_BLOCKS = YES; 769 | GCC_OPTIMIZATION_LEVEL = 0; 770 | GCC_PREPROCESSOR_DEFINITIONS = ( 771 | "DEBUG=1", 772 | "$(inherited)", 773 | ); 774 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 775 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 776 | GCC_WARN_UNDECLARED_SELECTOR = YES; 777 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 778 | GCC_WARN_UNUSED_FUNCTION = YES; 779 | GCC_WARN_UNUSED_VARIABLE = YES; 780 | MACOSX_DEPLOYMENT_TARGET = 10.14; 781 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 782 | MTL_FAST_MATH = YES; 783 | ONLY_ACTIVE_ARCH = YES; 784 | SDKROOT = macosx; 785 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 786 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 787 | }; 788 | name = Debug; 789 | }; 790 | 3122906F22F6BE840054CA7B /* Release */ = { 791 | isa = XCBuildConfiguration; 792 | buildSettings = { 793 | ALWAYS_SEARCH_USER_PATHS = NO; 794 | CLANG_ANALYZER_NONNULL = YES; 795 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 796 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 797 | CLANG_CXX_LIBRARY = "libc++"; 798 | CLANG_ENABLE_MODULES = YES; 799 | CLANG_ENABLE_OBJC_ARC = YES; 800 | CLANG_ENABLE_OBJC_WEAK = YES; 801 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 802 | CLANG_WARN_BOOL_CONVERSION = YES; 803 | CLANG_WARN_COMMA = YES; 804 | CLANG_WARN_CONSTANT_CONVERSION = YES; 805 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 806 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 807 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 808 | CLANG_WARN_EMPTY_BODY = YES; 809 | CLANG_WARN_ENUM_CONVERSION = YES; 810 | CLANG_WARN_INFINITE_RECURSION = YES; 811 | CLANG_WARN_INT_CONVERSION = YES; 812 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 813 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 814 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 815 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 816 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 817 | CLANG_WARN_STRICT_PROTOTYPES = YES; 818 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 819 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 820 | CLANG_WARN_UNREACHABLE_CODE = YES; 821 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 822 | COPY_PHASE_STRIP = NO; 823 | CURRENT_PROJECT_VERSION = 51; 824 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 825 | ENABLE_NS_ASSERTIONS = NO; 826 | ENABLE_STRICT_OBJC_MSGSEND = YES; 827 | GCC_C_LANGUAGE_STANDARD = gnu11; 828 | GCC_NO_COMMON_BLOCKS = YES; 829 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 830 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 831 | GCC_WARN_UNDECLARED_SELECTOR = YES; 832 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 833 | GCC_WARN_UNUSED_FUNCTION = YES; 834 | GCC_WARN_UNUSED_VARIABLE = YES; 835 | MACOSX_DEPLOYMENT_TARGET = 10.14; 836 | MTL_ENABLE_DEBUG_INFO = NO; 837 | MTL_FAST_MATH = YES; 838 | SDKROOT = macosx; 839 | SWIFT_COMPILATION_MODE = wholemodule; 840 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 841 | }; 842 | name = Release; 843 | }; 844 | 3122907122F6BE840054CA7B /* Debug */ = { 845 | isa = XCBuildConfiguration; 846 | baseConfigurationReference = D26CF34314AEF5E7D7E5DA5A /* Pods-ViewGeneratorApp.debug.xcconfig */; 847 | buildSettings = { 848 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 849 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 850 | CODE_SIGN_ENTITLEMENTS = ViewGeneratorApp/Resource/ViewGeneratorApp.entitlements; 851 | CODE_SIGN_IDENTITY = "Mac Developer"; 852 | CODE_SIGN_STYLE = Manual; 853 | COMBINE_HIDPI_IMAGES = YES; 854 | DEVELOPMENT_TEAM = ""; 855 | ENABLE_HARDENED_RUNTIME = YES; 856 | INFOPLIST_FILE = ViewGeneratorApp/Resource/Info.plist; 857 | LD_RUNPATH_SEARCH_PATHS = ( 858 | "$(inherited)", 859 | "@executable_path/../Frameworks", 860 | ); 861 | MARKETING_VERSION = 2.0.2; 862 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorApp; 863 | PRODUCT_NAME = ViewGeneratorForXcode; 864 | PROVISIONING_PROFILE_SPECIFIER = ""; 865 | SWIFT_VERSION = 5.0; 866 | }; 867 | name = Debug; 868 | }; 869 | 3122907222F6BE840054CA7B /* Release */ = { 870 | isa = XCBuildConfiguration; 871 | baseConfigurationReference = FEDEBBCF0B292D1265CAE7CD /* Pods-ViewGeneratorApp.release.xcconfig */; 872 | buildSettings = { 873 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 874 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 875 | CODE_SIGN_ENTITLEMENTS = ViewGeneratorApp/Resource/ViewGeneratorApp.entitlements; 876 | CODE_SIGN_IDENTITY = "Mac Developer"; 877 | CODE_SIGN_STYLE = Manual; 878 | COMBINE_HIDPI_IMAGES = YES; 879 | DEVELOPMENT_TEAM = ""; 880 | ENABLE_HARDENED_RUNTIME = YES; 881 | INFOPLIST_FILE = ViewGeneratorApp/Resource/Info.plist; 882 | LD_RUNPATH_SEARCH_PATHS = ( 883 | "$(inherited)", 884 | "@executable_path/../Frameworks", 885 | ); 886 | MARKETING_VERSION = 2.0.2; 887 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorApp; 888 | PRODUCT_NAME = ViewGeneratorForXcode; 889 | PROVISIONING_PROFILE_SPECIFIER = ""; 890 | SWIFT_VERSION = 5.0; 891 | }; 892 | name = Release; 893 | }; 894 | 3122908622F6BEA60054CA7B /* Debug */ = { 895 | isa = XCBuildConfiguration; 896 | baseConfigurationReference = BABD586E2EE2C5BDE4D2D9E1 /* Pods-ViewGenerator.debug.xcconfig */; 897 | buildSettings = { 898 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 899 | CODE_SIGN_ENTITLEMENTS = ViewGenerator/Resource/ViewGenerator.entitlements; 900 | CODE_SIGN_IDENTITY = "Mac Developer"; 901 | CODE_SIGN_STYLE = Manual; 902 | COMBINE_HIDPI_IMAGES = YES; 903 | DEVELOPMENT_TEAM = ""; 904 | ENABLE_HARDENED_RUNTIME = YES; 905 | INFOPLIST_FILE = ViewGenerator/Resource/Info.plist; 906 | LD_RUNPATH_SEARCH_PATHS = ( 907 | "$(inherited)", 908 | "@executable_path/../Frameworks", 909 | "@executable_path/../../../../Frameworks", 910 | ); 911 | MARKETING_VERSION = 2.0.2; 912 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorApp.ViewGenerator; 913 | PRODUCT_NAME = "$(TARGET_NAME)"; 914 | PROVISIONING_PROFILE_SPECIFIER = ""; 915 | SKIP_INSTALL = YES; 916 | SWIFT_VERSION = 5.0; 917 | }; 918 | name = Debug; 919 | }; 920 | 3122908722F6BEA60054CA7B /* Release */ = { 921 | isa = XCBuildConfiguration; 922 | baseConfigurationReference = EE0E1B63B66CA97F60E6FBCC /* Pods-ViewGenerator.release.xcconfig */; 923 | buildSettings = { 924 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 925 | CODE_SIGN_ENTITLEMENTS = ViewGenerator/Resource/ViewGenerator.entitlements; 926 | CODE_SIGN_IDENTITY = "Mac Developer"; 927 | CODE_SIGN_STYLE = Manual; 928 | COMBINE_HIDPI_IMAGES = YES; 929 | DEVELOPMENT_TEAM = ""; 930 | ENABLE_HARDENED_RUNTIME = YES; 931 | INFOPLIST_FILE = ViewGenerator/Resource/Info.plist; 932 | LD_RUNPATH_SEARCH_PATHS = ( 933 | "$(inherited)", 934 | "@executable_path/../Frameworks", 935 | "@executable_path/../../../../Frameworks", 936 | ); 937 | MARKETING_VERSION = 2.0.2; 938 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorApp.ViewGenerator; 939 | PRODUCT_NAME = "$(TARGET_NAME)"; 940 | PROVISIONING_PROFILE_SPECIFIER = ""; 941 | SKIP_INSTALL = YES; 942 | SWIFT_VERSION = 5.0; 943 | }; 944 | name = Release; 945 | }; 946 | 316FC54D2307B108003E1DD3 /* Debug */ = { 947 | isa = XCBuildConfiguration; 948 | baseConfigurationReference = 49AA12573FC86EDFA9BDF065 /* Pods-ViewGeneratorCore.debug.xcconfig */; 949 | buildSettings = { 950 | CODE_SIGN_IDENTITY = "Mac Developer"; 951 | CODE_SIGN_STYLE = Manual; 952 | COMBINE_HIDPI_IMAGES = YES; 953 | CURRENT_PROJECT_VERSION = 51; 954 | DEFINES_MODULE = YES; 955 | DEVELOPMENT_TEAM = ""; 956 | DYLIB_COMPATIBILITY_VERSION = 1; 957 | DYLIB_CURRENT_VERSION = 51; 958 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 959 | FRAMEWORK_VERSION = A; 960 | INFOPLIST_FILE = ViewGeneratorCore/Info.plist; 961 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 962 | LD_RUNPATH_SEARCH_PATHS = ( 963 | "$(inherited)", 964 | "@executable_path/../Frameworks", 965 | "@loader_path/Frameworks", 966 | ); 967 | MACOSX_DEPLOYMENT_TARGET = 10.14; 968 | MARKETING_VERSION = 2.0.2; 969 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorCore; 970 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 971 | PROVISIONING_PROFILE_SPECIFIER = ""; 972 | SKIP_INSTALL = YES; 973 | SWIFT_VERSION = 5.0; 974 | VERSIONING_SYSTEM = "apple-generic"; 975 | VERSION_INFO_PREFIX = ""; 976 | }; 977 | name = Debug; 978 | }; 979 | 316FC54E2307B108003E1DD3 /* Release */ = { 980 | isa = XCBuildConfiguration; 981 | baseConfigurationReference = 21CC8B85B19D3E94C6519984 /* Pods-ViewGeneratorCore.release.xcconfig */; 982 | buildSettings = { 983 | APPLICATION_EXTENSION_API_ONLY = YES; 984 | CODE_SIGN_IDENTITY = "Mac Developer"; 985 | CODE_SIGN_STYLE = Manual; 986 | COMBINE_HIDPI_IMAGES = YES; 987 | CURRENT_PROJECT_VERSION = 51; 988 | DEFINES_MODULE = YES; 989 | DEVELOPMENT_TEAM = ""; 990 | DYLIB_COMPATIBILITY_VERSION = 1; 991 | DYLIB_CURRENT_VERSION = 51; 992 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 993 | FRAMEWORK_VERSION = A; 994 | INFOPLIST_FILE = ViewGeneratorCore/Info.plist; 995 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 996 | LD_RUNPATH_SEARCH_PATHS = ( 997 | "$(inherited)", 998 | "@executable_path/../Frameworks", 999 | "@loader_path/Frameworks", 1000 | ); 1001 | MACOSX_DEPLOYMENT_TARGET = 10.14; 1002 | MARKETING_VERSION = 2.0.2; 1003 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorCore; 1004 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 1005 | PROVISIONING_PROFILE_SPECIFIER = ""; 1006 | SKIP_INSTALL = YES; 1007 | SWIFT_VERSION = 5.0; 1008 | VERSIONING_SYSTEM = "apple-generic"; 1009 | VERSION_INFO_PREFIX = ""; 1010 | }; 1011 | name = Release; 1012 | }; 1013 | 316FC54F2307B108003E1DD3 /* Debug */ = { 1014 | isa = XCBuildConfiguration; 1015 | buildSettings = { 1016 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1017 | CODE_SIGN_STYLE = Manual; 1018 | COMBINE_HIDPI_IMAGES = YES; 1019 | DEVELOPMENT_TEAM = ""; 1020 | INFOPLIST_FILE = ViewGeneratorCoreTests/Info.plist; 1021 | LD_RUNPATH_SEARCH_PATHS = ( 1022 | "$(inherited)", 1023 | "@executable_path/../Frameworks", 1024 | "@loader_path/../Frameworks", 1025 | ); 1026 | MACOSX_DEPLOYMENT_TARGET = 10.14; 1027 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorCoreTests; 1028 | PRODUCT_NAME = "$(TARGET_NAME)"; 1029 | PROVISIONING_PROFILE_SPECIFIER = ""; 1030 | SWIFT_VERSION = 5.0; 1031 | }; 1032 | name = Debug; 1033 | }; 1034 | 316FC5502307B108003E1DD3 /* Release */ = { 1035 | isa = XCBuildConfiguration; 1036 | buildSettings = { 1037 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 1038 | CODE_SIGN_STYLE = Manual; 1039 | COMBINE_HIDPI_IMAGES = YES; 1040 | DEVELOPMENT_TEAM = ""; 1041 | INFOPLIST_FILE = ViewGeneratorCoreTests/Info.plist; 1042 | LD_RUNPATH_SEARCH_PATHS = ( 1043 | "$(inherited)", 1044 | "@executable_path/../Frameworks", 1045 | "@loader_path/../Frameworks", 1046 | ); 1047 | MACOSX_DEPLOYMENT_TARGET = 10.14; 1048 | PRODUCT_BUNDLE_IDENTIFIER = com.funzin.ViewGeneratorCoreTests; 1049 | PRODUCT_NAME = "$(TARGET_NAME)"; 1050 | PROVISIONING_PROFILE_SPECIFIER = ""; 1051 | SWIFT_VERSION = 5.0; 1052 | }; 1053 | name = Release; 1054 | }; 1055 | /* End XCBuildConfiguration section */ 1056 | 1057 | /* Begin XCConfigurationList section */ 1058 | 3122905B22F6BE830054CA7B /* Build configuration list for PBXProject "ViewGeneratorApp" */ = { 1059 | isa = XCConfigurationList; 1060 | buildConfigurations = ( 1061 | 3122906E22F6BE840054CA7B /* Debug */, 1062 | 3122906F22F6BE840054CA7B /* Release */, 1063 | ); 1064 | defaultConfigurationIsVisible = 0; 1065 | defaultConfigurationName = Release; 1066 | }; 1067 | 3122907022F6BE840054CA7B /* Build configuration list for PBXNativeTarget "ViewGeneratorApp" */ = { 1068 | isa = XCConfigurationList; 1069 | buildConfigurations = ( 1070 | 3122907122F6BE840054CA7B /* Debug */, 1071 | 3122907222F6BE840054CA7B /* Release */, 1072 | ); 1073 | defaultConfigurationIsVisible = 0; 1074 | defaultConfigurationName = Release; 1075 | }; 1076 | 3122908522F6BEA60054CA7B /* Build configuration list for PBXNativeTarget "ViewGenerator" */ = { 1077 | isa = XCConfigurationList; 1078 | buildConfigurations = ( 1079 | 3122908622F6BEA60054CA7B /* Debug */, 1080 | 3122908722F6BEA60054CA7B /* Release */, 1081 | ); 1082 | defaultConfigurationIsVisible = 0; 1083 | defaultConfigurationName = Release; 1084 | }; 1085 | 316FC5512307B108003E1DD3 /* Build configuration list for PBXNativeTarget "ViewGeneratorCore" */ = { 1086 | isa = XCConfigurationList; 1087 | buildConfigurations = ( 1088 | 316FC54D2307B108003E1DD3 /* Debug */, 1089 | 316FC54E2307B108003E1DD3 /* Release */, 1090 | ); 1091 | defaultConfigurationIsVisible = 0; 1092 | defaultConfigurationName = Release; 1093 | }; 1094 | 316FC5522307B108003E1DD3 /* Build configuration list for PBXNativeTarget "ViewGeneratorCoreTests" */ = { 1095 | isa = XCConfigurationList; 1096 | buildConfigurations = ( 1097 | 316FC54F2307B108003E1DD3 /* Debug */, 1098 | 316FC5502307B108003E1DD3 /* Release */, 1099 | ); 1100 | defaultConfigurationIsVisible = 0; 1101 | defaultConfigurationName = Release; 1102 | }; 1103 | /* End XCConfigurationList section */ 1104 | }; 1105 | rootObject = 3122905822F6BE830054CA7B /* Project object */; 1106 | } 1107 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcodeproj/xcshareddata/xcschemes/ViewGenerator.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 10 | 16 | 22 | 23 | 24 | 30 | 36 | 37 | 38 | 39 | 40 | 45 | 46 | 48 | 54 | 55 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 80 | 83 | 84 | 85 | 91 | 92 | 93 | 94 | 95 | 96 | 103 | 105 | 111 | 112 | 113 | 114 | 116 | 117 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcodeproj/xcshareddata/xcschemes/ViewGeneratorApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 45 | 51 | 52 | 53 | 54 | 60 | 62 | 68 | 69 | 70 | 71 | 73 | 74 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcodeproj/xcshareddata/xcschemes/ViewGeneratorCore.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 88 | 89 | 95 | 96 | 97 | 98 | 100 | 101 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ViewGeneratorApp.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "size" : "16x16", 6 | "scale" : "1x", 7 | "filename" : "icon_16@1x.png" 8 | }, 9 | { 10 | "idiom" : "mac", 11 | "size" : "16x16", 12 | "scale" : "2x", 13 | "filename" : "icon_16@2x.png" 14 | }, 15 | { 16 | "idiom" : "mac", 17 | "size" : "32x32", 18 | "scale" : "1x", 19 | "filename" : "icon_32@1x.png" 20 | }, 21 | { 22 | "idiom" : "mac", 23 | "size" : "32x32", 24 | "scale" : "2x", 25 | "filename" : "icon_32@2x.png" 26 | }, 27 | { 28 | "idiom" : "mac", 29 | "size" : "128x128", 30 | "scale" : "1x", 31 | "filename" : "icon_128@1x.png" 32 | }, 33 | { 34 | "idiom" : "mac", 35 | "size" : "128x128", 36 | "scale" : "2x", 37 | "filename" : "icon_128@2x.png" 38 | }, 39 | { 40 | "idiom" : "mac", 41 | "size" : "256x256", 42 | "scale" : "1x", 43 | "filename" : "icon_256@1x.png" 44 | }, 45 | { 46 | "idiom" : "mac", 47 | "size" : "256x256", 48 | "scale" : "2x", 49 | "filename" : "icon_256@2x.png" 50 | }, 51 | { 52 | "idiom" : "mac", 53 | "size" : "512x512", 54 | "scale" : "1x", 55 | "filename" : "icon_512@1x.png" 56 | }, 57 | { 58 | "idiom" : "mac", 59 | "size" : "512x512", 60 | "scale" : "2x", 61 | "filename" : "icon_512@2x.png" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_128@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_128@1x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_128@2x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_16@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_16@1x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_16@2x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_256@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_256@1x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_256@2x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_32@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_32@1x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_32@2x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_512@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_512@1x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funzin/ViewGenerator/80e786aa596533fec0981d5a04d681f28ac03e76/ViewGeneratorApp/Resource/Assets.xcassets/AppIcon.appiconset/icon_512@2x.png -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/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 | APPL 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleVersion 20 | 51 21 | LSApplicationCategoryType 22 | public.app-category.developer-tools 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2019 funzin. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | NSSupportsAutomaticTermination 32 | 33 | NSSupportsSuddenTermination 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ViewGeneratorApp/Resource/ViewGeneratorApp.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | E5RDJ83DDA.com.funzin.ViewGeneratorApp 10 | 11 | com.apple.security.files.user-selected.read-only 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ViewGeneratorApp/Source/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ViewGeneratorApp 4 | // 5 | // Created by nakazawa on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | func applicationDidFinishLaunching(_ aNotification: Notification) { 15 | // Insert code here to initialize your application 16 | } 17 | 18 | func applicationWillTerminate(_ aNotification: Notification) { 19 | // Insert code here to tear down your application 20 | } 21 | 22 | func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 23 | return true 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ViewGeneratorApp/Source/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ViewGeneratorApp 4 | // 5 | // Created by funzin on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import ViewGeneratorCore 11 | 12 | class ViewController: NSViewController { 13 | 14 | @IBOutlet var privateRadioButton: NSButton! 15 | @IBOutlet var fileprivateRadioButton: NSButton! 16 | @IBOutlet var internalRadioButton: NSButton! 17 | @IBOutlet var publicRadioButton: NSButton! 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | setUI() 22 | } 23 | 24 | private func setUI() { 25 | guard let text = UserDefaults.group.get(forKey: UserDefaults.KeyList.accessModifier), 26 | let accessModifier = AccessModifier(rawValue: text) else { return } 27 | 28 | switch accessModifier { 29 | case .private: 30 | privateRadioButton.state = .on 31 | case .fileprivate: 32 | fileprivateRadioButton.state = .on 33 | case .internal: 34 | internalRadioButton.state = .on 35 | case .public: 36 | publicRadioButton.state = .on 37 | } 38 | } 39 | 40 | @IBAction func didTapRadioButton(_ sender: NSButton) { 41 | UserDefaults.group.set(sender.title, forKey: UserDefaults.KeyList.accessModifier) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ViewGeneratorCore/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleVersion 20 | 51 21 | NSHumanReadableCopyright 22 | Copyright © 2019 funzin. All rights reserved. 23 | 24 | 25 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/AccessModifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccessModifier.swift 3 | // ViewGeneratorApp 4 | // 5 | // Created by funzin on 2019/08/05. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public enum AccessModifier: String, CaseIterable { 12 | case `private` 13 | case `fileprivate` 14 | case `internal` 15 | case `public` 16 | } 17 | 18 | extension AccessModifier { 19 | var beginningOfVariable: String { 20 | switch self { 21 | case .internal: 22 | return "" 23 | case .private, .fileprivate, .public: 24 | return self.rawValue + " " 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/UIParts.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIParts.swift 3 | // ViewGenerator 4 | // 5 | // Created by funzin on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | public enum UIParts: String, CaseIterable { 10 | 11 | case `switch` 12 | case activityIndicatorView 13 | case button 14 | case collectionView 15 | case control 16 | case datePicker 17 | case imageView 18 | case label 19 | case navigationBar 20 | case pageControl 21 | case pickerView 22 | case progressView 23 | case scrollView 24 | case searchBar 25 | case segmentedControl 26 | case slider 27 | case stackView 28 | case stepper 29 | case tabBar 30 | case tableView 31 | case textField 32 | case textView 33 | case toolbar 34 | case view 35 | case visualEffectView 36 | case none = "_InputTypeName_" 37 | 38 | init(variableName: String) { 39 | let lowercasedVariableName = variableName.lowercased() 40 | let target = UIParts.ascendingSorted 41 | .filter { lowercasedVariableName.hasSuffix($0.rawValue.lowercased()) } 42 | .first 43 | 44 | self = target ?? .none 45 | } 46 | 47 | /// Sort by character count 48 | static var ascendingSorted: AllCases { 49 | return UIParts.allCases.sorted { $0.rawValue.count > $1.rawValue.count } 50 | } 51 | 52 | /// Add UI to prefix 53 | /// - e.g stackView → UIStackView 54 | var typeName: String { 55 | switch self { 56 | case .none: return self.rawValue 57 | case .`switch`, 58 | .activityIndicatorView, 59 | .button, 60 | .control, 61 | .collectionView, 62 | .datePicker, 63 | .imageView, 64 | .label, 65 | .navigationBar, 66 | .pageControl, 67 | .pickerView, 68 | .progressView, 69 | .scrollView, 70 | .searchBar, 71 | .segmentedControl, 72 | .slider, 73 | .stackView, 74 | .stepper, 75 | .tabBar, 76 | .tableView, 77 | .textField, 78 | .textView, 79 | .toolbar, 80 | .view, 81 | .visualEffectView: 82 | return "UI" + rawValue.prefix(1).uppercased() + rawValue.dropFirst() 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/UserDefaults/UserDefaultsExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserDefaultsExtension.swift 3 | // ViewGeneratorApp 4 | // 5 | // Created by funzin on 2019/08/05. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UserDefaults { 12 | public static let group: UserDefaults = UserDefaults(suiteName: "E5RDJ83DDA.com.funzin.ViewGeneratorApp")! 13 | } 14 | 15 | extension UserDefaults: UserDefaultsProtocol { 16 | public func set(_ value: ValueType, forKey key: Key) { 17 | set(value, forKey: key.name) 18 | } 19 | 20 | public func get(forKey key: Key) -> ValueType? { 21 | return value(forKey: key.name) as? ValueType 22 | } 23 | 24 | public func removeAll() { 25 | let dictionary = dictionaryRepresentation() 26 | dictionary.keys.forEach { key in removeObject(forKey: key) } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/UserDefaults/UserDefaultsKey.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserDefaultsKey.swift 3 | // ViewGeneratorCore 4 | // 5 | // Created by funzin on 2019/09/14. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UserDefaults { 12 | 13 | public struct Key { 14 | let name: String 15 | 16 | init(name: String) { 17 | self.name = name 18 | } 19 | } 20 | 21 | public enum KeyList { 22 | public static let accessModifier = Key(name: "accessModifier") 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/UserDefaults/UserDefaultsProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserDefaultsProtocol.swift 3 | // ViewGeneratorCore 4 | // 5 | // Created by funzin on 2019/09/14. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol UserDefaultsProtocol { 12 | func set(_ value: ValueType, forKey key: UserDefaults.Key) 13 | func get(forKey key: UserDefaults.Key) -> ValueType? 14 | func removeAll() 15 | } 16 | -------------------------------------------------------------------------------- /ViewGeneratorCore/Source/ViewInitGenerator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InitClosureCreator.swift 3 | // ViewGeneratorApp 4 | // 5 | // Created by funzin on 2019/08/11. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Name space to generate initializer closure text for view 12 | public struct ViewInitGenerator { 13 | 14 | private let userDefaults: UserDefaultsProtocol 15 | 16 | public init(userDefaults: UserDefaultsProtocol) { 17 | self.userDefaults = userDefaults 18 | } 19 | 20 | /// Generate initializer closure text array 21 | /// 22 | /// ``` 23 | /// // e.g. initializer closure text 24 | /// private let hogeView: UIView = { 25 | /// let hogeView = UIView(frame: .zero) 26 | /// hogeView.translatesAutoresizingMaskIntoConstraints = false 27 | /// return hogeView 28 | /// }() 29 | /// ``` 30 | /// 31 | /// - Parameter selectedLines: selected lines 32 | public func generateInitArray(selectedLines: [String]) -> [String] { 33 | var viewInitArray: [String] = [] 34 | 35 | for selectedLine in selectedLines { 36 | guard let (startPosition, variableName) = variableStartPositionAndName(lineStr: selectedLine) else { 37 | return [] 38 | } 39 | 40 | let initText = generate(startPosition: startPosition, variableName: variableName) 41 | viewInitArray.append(initText) 42 | } 43 | return viewInitArray 44 | } 45 | } 46 | 47 | /// MARK: internal method 48 | extension ViewInitGenerator { 49 | 50 | /// Generate initializer closure text for view 51 | /// 52 | /// ``` 53 | /// // e.g. initializer closure text 54 | /// private let hogeView: UIView = { 55 | /// let hogeView = UIView(frame: .zero) 56 | /// hogeView.translatesAutoresizingMaskIntoConstraints = false 57 | /// return hogeView 58 | /// }() 59 | /// ``` 60 | /// 61 | /// - Parameter startPosition: variable name start position 62 | /// - Parameter variableName: variable name(e.g: hogeView, hogeLabel) 63 | func generate(startPosition: Int, variableName: String) -> String { 64 | let uiParts = UIParts(variableName: variableName) 65 | let space = String(repeating: " ", count: startPosition) 66 | let initArray = initTextArray(variableName: variableName, uiParts: uiParts) 67 | 68 | // read selected accessModifier on app 69 | let accessModifier: AccessModifier 70 | if let text = userDefaults.get(forKey: UserDefaults.KeyList.accessModifier), 71 | let _accessModifier = AccessModifier(rawValue: text) { 72 | accessModifier = _accessModifier 73 | } else { 74 | accessModifier = .private 75 | } 76 | 77 | var initClosureTextArray = [ 78 | "\(accessModifier.beginningOfVariable)let \(variableName): \(uiParts.typeName) = {", 79 | // insert initArray position 80 | " \(variableName).translatesAutoresizingMaskIntoConstraints = false", 81 | " return \(variableName)", 82 | "}()\n" 83 | ] 84 | 85 | // insert 86 | initArray.reversed().forEach { initClosureTextArray.insert($0, at: 1) } 87 | 88 | // add space and new line 89 | let initClosureText = initClosureTextArray 90 | .map { "\(space)\($0)\n" } 91 | .joined() 92 | return initClosureText 93 | } 94 | 95 | /// Return variable start position and variale name 96 | /// - Parameter lineStr: line string 97 | func variableStartPositionAndName(lineStr: String) -> (Int, String)? { 98 | guard let regex = try? NSRegularExpression(pattern: "^(\\s*)(\\S+)"), 99 | let matched = regex.firstMatch(in: lineStr, range: NSRange(location: 0, length: lineStr.count)), 100 | matched.numberOfRanges == 3 else { return nil } 101 | 102 | let nsLineStr = (lineStr as NSString) 103 | let spaceStr = nsLineStr.substring(with: matched.range(at: 1)) 104 | let variableName = nsLineStr.substring(with: matched.range(at: 2)) 105 | 106 | return(spaceStr.count, variableName) 107 | } 108 | } 109 | 110 | /// MARK: private method 111 | extension ViewInitGenerator { 112 | 113 | /// Generate view init 114 | /// - Parameter variableName: variable name(e.g: hogeView, hogeLabel) 115 | /// - Parameter uiParts: UIParts contains type information 116 | private func initTextArray(variableName: String, uiParts: UIParts) -> [String] { 117 | switch uiParts { 118 | case .collectionView: 119 | 120 | // add UICollectionViewFlowLayout when only collectionView 121 | return [" let layout = UICollectionViewFlowLayout()", 122 | " let \(variableName) = \(uiParts.typeName)(frame: .zero, collectionViewLayout: layout)"] 123 | case .`switch`, 124 | .activityIndicatorView, 125 | .button, 126 | .control, 127 | .datePicker, 128 | .imageView, 129 | .label, 130 | .navigationBar, 131 | .pageControl, 132 | .pickerView, 133 | .progressView, 134 | .scrollView, 135 | .searchBar, 136 | .segmentedControl, 137 | .slider, 138 | .stackView, 139 | .stepper, 140 | .tabBar, 141 | .tableView, 142 | .textField, 143 | .textView, 144 | .toolbar, 145 | .view, 146 | .visualEffectView, 147 | .none: 148 | return [" let \(variableName) = \(uiParts.typeName)(frame: .zero)"] 149 | } 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /ViewGeneratorCore/ViewGeneratorCore.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewGeneratorCore.h 3 | // ViewGeneratorCore 4 | // 5 | // Created by 中澤郁斗 on 2019/08/17. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for ViewGeneratorCore. 12 | FOUNDATION_EXPORT double ViewGeneratorCoreVersionNumber; 13 | 14 | //! Project version string for ViewGeneratorCore. 15 | FOUNDATION_EXPORT const unsigned char ViewGeneratorCoreVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /ViewGeneratorCoreTests/AccessModifierTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccessModifierTests.swift 3 | // ViewGeneratorTests 4 | // 5 | // Created by funzin on 2019/08/11. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | @testable import ViewGeneratorCore 12 | class AccessModifierTests: XCTestCase { 13 | 14 | func testBegginingOfVariable() { 15 | let accessModifierTextArray = ["private", "fileprivate", "internal"] 16 | let begginingOfVariableArray = ["private ", "fileprivate ", ""] 17 | 18 | for (accessModifierText, begginingOfVariable) in zip(accessModifierTextArray, begginingOfVariableArray) { 19 | guard let accessModifier = AccessModifier(rawValue: accessModifierText) else { 20 | XCTFail("accessModifier should not be nil. accessModifierText is \(accessModifierText)") 21 | return 22 | } 23 | XCTAssertEqual(accessModifier.beginningOfVariable, begginingOfVariable) 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ViewGeneratorCoreTests/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 51 21 | 22 | 23 | -------------------------------------------------------------------------------- /ViewGeneratorCoreTests/UIPartsTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPartsTests.swift 3 | // ViewGeneratorTests 4 | // 5 | // Created by funzin on 2019/08/04. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | @testable import ViewGeneratorCore 12 | class UIPartsTests: XCTestCase { 13 | 14 | var variableNameArray: [String]! 15 | 16 | override func setUp() { 17 | variableNameArray = ["hogeImageView", "hogeTableView", "hogeCollectionView", "hogeView", "hoge"] 18 | } 19 | 20 | func testAscendingSorted() { 21 | let sortedAllCases = UIParts.ascendingSorted 22 | let first = sortedAllCases.first?.rawValue 23 | let last = sortedAllCases.last?.rawValue 24 | 25 | if let first = first, 26 | let last = last { 27 | XCTAssertGreaterThan(first.count, last.count) 28 | } else { 29 | XCTFail("first and last should not be nil") 30 | } 31 | } 32 | 33 | func testInitWithvariableName() { 34 | let typeArray: [UIParts] = [.imageView, .tableView, .collectionView, .view, .none] 35 | 36 | for (variableName, type) in zip(variableNameArray, typeArray) { 37 | let uiParts = UIParts(variableName: variableName) 38 | XCTAssertEqual(uiParts, type) 39 | } 40 | } 41 | 42 | func testInitWithvariableNameWhenLowerCase() { 43 | variableNameArray = ["hogeimageview", "hogetableview", "hogecollectionview", "hogeview", "hoge", "hogeButtonContainerView"] 44 | let uiPartsArray: [UIParts] = [.imageView, .tableView, .collectionView, .view, .none, .view] 45 | 46 | for (variableName, type) in zip(variableNameArray, uiPartsArray) { 47 | let uiParts = UIParts(variableName: variableName) 48 | XCTAssertEqual(uiParts, type) 49 | } 50 | } 51 | 52 | func testTypeName() { 53 | let typeNameArray: [String] = ["UIImageView", "UITableView", "UICollectionView", "UIView", "_InputTypeName_"] 54 | 55 | for (variableName, typeName) in zip(variableNameArray, typeNameArray) { 56 | let uiParts = UIParts(variableName: variableName) 57 | XCTAssertEqual(uiParts.typeName, typeName) 58 | } 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /ViewGeneratorCoreTests/ViewInitGeneratorTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewInitGeneratorTests.swift 3 | // ViewGeneratorTests 4 | // 5 | // Created by funzin on 2019/08/11. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | @testable import ViewGeneratorCore 12 | class ViewInitGeneratorTests: XCTestCase { 13 | var viewInitGenerator: ViewInitGenerator! 14 | var mockUserDefaults: MockUserDefaults! 15 | 16 | override func setUp() { 17 | mockUserDefaults = MockUserDefaults() 18 | viewInitGenerator = ViewInitGenerator(userDefaults: mockUserDefaults) 19 | } 20 | 21 | func testGenerate() { 22 | let variableNameArray = ["hogeCollectionView", "hogeView", "hoge"] 23 | let initClosureTextArray = [ 24 | """ 25 | private let hogeCollectionView: UICollectionView = { 26 | let layout = UICollectionViewFlowLayout() 27 | let hogeCollectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) 28 | hogeCollectionView.translatesAutoresizingMaskIntoConstraints = false 29 | return hogeCollectionView 30 | }() 31 | \n 32 | """, 33 | """ 34 | private let hogeView: UIView = { 35 | let hogeView = UIView(frame: .zero) 36 | hogeView.translatesAutoresizingMaskIntoConstraints = false 37 | return hogeView 38 | }() 39 | \n 40 | """, 41 | """ 42 | private let hoge: _InputTypeName_ = { 43 | let hoge = _InputTypeName_(frame: .zero) 44 | hoge.translatesAutoresizingMaskIntoConstraints = false 45 | return hoge 46 | }() 47 | \n 48 | """ 49 | ] 50 | 51 | for (variableName, initClosureText) in zip(variableNameArray, initClosureTextArray) { 52 | XCTAssertEqual(viewInitGenerator.generate(startPosition: 0, variableName: variableName), initClosureText) 53 | } 54 | } 55 | 56 | func testGenerateWhenHaveIndent() { 57 | let startPosition = 2 58 | let variableName = "hogeView" 59 | 60 | let initClosureText = 61 | """ 62 | private let hogeView: UIView = { 63 | let hogeView = UIView(frame: .zero) 64 | hogeView.translatesAutoresizingMaskIntoConstraints = false 65 | return hogeView 66 | }() 67 | \n 68 | """ 69 | 70 | XCTAssertEqual(viewInitGenerator.generate(startPosition: startPosition, variableName: variableName), initClosureText) 71 | } 72 | 73 | func testGenerateWhenSelectedAccessModifier() { 74 | let variableName = "hogeView" 75 | let selectedAccessModifier = "internal" 76 | let initClosureText = 77 | """ 78 | let hogeView: UIView = { 79 | let hogeView = UIView(frame: .zero) 80 | hogeView.translatesAutoresizingMaskIntoConstraints = false 81 | return hogeView 82 | }() 83 | \n 84 | """ 85 | 86 | mockUserDefaults.set(selectedAccessModifier, forKey: UserDefaults.KeyList.accessModifier) 87 | XCTAssertEqual(viewInitGenerator.generate(startPosition: 0, variableName: variableName), initClosureText) 88 | } 89 | 90 | func testVariableStartPositionAndName() { 91 | let lines = ["hogeLabel", " hogeButton", " hogeView", " hogeLabel "] 92 | let results = [(0, "hogeLabel"), (1, "hogeButton"), (2, "hogeView"), (1, "hogeLabel")] 93 | 94 | for (line, result) in zip(lines, results) { 95 | let tuple = viewInitGenerator.variableStartPositionAndName(lineStr: line) 96 | let startPosition = tuple?.0 97 | let variableName = tuple?.1 98 | XCTAssertEqual(startPosition, result.0) 99 | XCTAssertEqual(variableName, result.1) 100 | } 101 | } 102 | 103 | func testGenerateInitArray() { 104 | let selectedLinesArray = [[], [""], ["hogeView"], [" hogeView", " hogeButton"]] 105 | let initArray = [ 106 | "", 107 | "", 108 | """ 109 | private let hogeView: UIView = { 110 | let hogeView = UIView(frame: .zero) 111 | hogeView.translatesAutoresizingMaskIntoConstraints = false 112 | return hogeView 113 | }() 114 | \n 115 | """, 116 | """ 117 | private let hogeView: UIView = { 118 | let hogeView = UIView(frame: .zero) 119 | hogeView.translatesAutoresizingMaskIntoConstraints = false 120 | return hogeView 121 | }() 122 | 123 | private let hogeButton: UIButton = { 124 | let hogeButton = UIButton(frame: .zero) 125 | hogeButton.translatesAutoresizingMaskIntoConstraints = false 126 | return hogeButton 127 | }() 128 | \n 129 | """ 130 | ] 131 | 132 | for (selectedLines, initText) in zip(selectedLinesArray, initArray) { 133 | let result = viewInitGenerator.generateInitArray(selectedLines: selectedLines) 134 | XCTAssertEqual(initText, result.joined()) 135 | } 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /ViewGeneratorCoreTests/mock/MockUserDefaults.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MockUserDefaults.swift 3 | // ViewGeneratorCoreTests 4 | // 5 | // Created by funzin on 2019/09/14. 6 | // Copyright © 2019 funzin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @testable import ViewGeneratorCore 12 | class MockUserDefaults: UserDefaultsProtocol { 13 | private var dict: [String: Any] = [:] 14 | 15 | func set(_ value: ValueType, forKey key: UserDefaults.Key) { 16 | dict[key.name] = value 17 | } 18 | 19 | func get(forKey key: UserDefaults.Key) -> ValueType? { 20 | return dict[key.name] as? ValueType 21 | } 22 | 23 | func removeAll() { 24 | dict.removeAll() 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: 2 | behavior: new 3 | ignore: 4 | - "ViewGeneratorCoreTests/" 5 | -------------------------------------------------------------------------------- /scripts/xccov-to-sonarqube-generic.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | function convert_file { 5 | local xccovarchive_file="$1" 6 | local file_name="$2" 7 | echo " " 8 | xcrun xccov view --file "$file_name" "$xccovarchive_file" | \ 9 | sed -n ' 10 | s/^ *\([0-9][0-9]*\): 0.*$/ /p; 11 | s/^ *\([0-9][0-9]*\): [1-9].*$/ /p 12 | ' 13 | echo ' ' 14 | } 15 | 16 | function xccov_to_generic { 17 | echo '' 18 | for xccovarchive_file in "$@"; do 19 | xcrun xccov view --file-list "$xccovarchive_file" | while read -r file_name; do 20 | convert_file "$xccovarchive_file" "$file_name" 21 | done 22 | done 23 | echo '' 24 | } 25 | 26 | xccov_to_generic "$@" 27 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=funzin_ViewGenerator 2 | sonar.projectName=ViewGenerator 3 | sonar.organization=funzin 4 | sonar.projectVersion=2.0.0 5 | sonar.sources=. 6 | sonar.host.url=https://sonarcloud.io 7 | sonar.inclusions=ViewGeneratorCore/**/*.swift,ViewGenerator/**/*.swift,ViewGeneratorApp/**/*.swift 8 | soner.language=swift 9 | sonar.coverageReportPaths=sonarqube-generic-coverage.xml 10 | --------------------------------------------------------------------------------