├── .DS_Store
├── README.md
├── XcodeExtension.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── innoticalsolutions.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── xcuserdata
│ └── innoticalsolutions.xcuserdatad
│ │ ├── xcschemes
│ │ └── xcschememanagement.plist
│ │ └── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
└── project.pbxproj
├── JSON2SwiftConverterExtension
├── JSON2SwiftConverterExtension.entitlements
├── SourceEditorExtension.swift
├── Info.plist
└── SourceEditorCommand.swift
├── XcodeExtension
├── XcodeExtension.entitlements
├── ViewController.swift
├── AppDelegate.swift
├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Info.plist
└── Base.lproj
│ └── Main.storyboard
└── LICENSE
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/irshad281/MyJSONConverter/HEAD/.DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MyJSONConverter
2 |
3 | Convert JSON to Swift Model Class
4 |
5 | # Sample
6 |
7 |
8 |
--------------------------------------------------------------------------------
/XcodeExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/XcodeExtension.xcodeproj/project.xcworkspace/xcuserdata/innoticalsolutions.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/irshad281/MyJSONConverter/HEAD/XcodeExtension.xcodeproj/project.xcworkspace/xcuserdata/innoticalsolutions.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/JSON2SwiftConverterExtension/JSON2SwiftConverterExtension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/XcodeExtension/XcodeExtension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/XcodeExtension.xcodeproj/xcuserdata/innoticalsolutions.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | JSON2SwiftConverterExtension.xcscheme
8 |
9 | orderHint
10 | 1
11 |
12 | XcodeExtension.xcscheme
13 |
14 | orderHint
15 | 0
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/XcodeExtension/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // XcodeExtension
4 | //
5 | // Created by Innotical Solutions on 06/01/18.
6 | // Copyright © 2018 Innotical Solutions . All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class ViewController: NSViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 |
16 | // Do any additional setup after loading the view.
17 | }
18 |
19 | override var representedObject: Any? {
20 | didSet {
21 | // Update the view, if already loaded.
22 | }
23 | }
24 |
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/XcodeExtension/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // XcodeExtension
4 | //
5 | // Created by Innotical Solutions on 06/01/18.
6 | // Copyright © 2018 Innotical Solutions . All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | @NSApplicationMain
12 | class AppDelegate: NSObject, NSApplicationDelegate {
13 |
14 |
15 |
16 | func applicationDidFinishLaunching(_ aNotification: Notification) {
17 | // Insert code here to initialize your application
18 | }
19 |
20 | func applicationWillTerminate(_ aNotification: Notification) {
21 | // Insert code here to tear down your application
22 | }
23 |
24 |
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/JSON2SwiftConverterExtension/SourceEditorExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SourceEditorExtension.swift
3 | // JSON2SwiftConverterExtension
4 | //
5 | // Created by Innotical Solutions on 06/01/18.
6 | // Copyright © 2018 Innotical Solutions . 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 | }
28 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Irshad Ahmad
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 |
--------------------------------------------------------------------------------
/XcodeExtension/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "mac",
5 | "size" : "16x16",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "mac",
10 | "size" : "16x16",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "mac",
15 | "size" : "32x32",
16 | "scale" : "1x"
17 | },
18 | {
19 | "idiom" : "mac",
20 | "size" : "32x32",
21 | "scale" : "2x"
22 | },
23 | {
24 | "idiom" : "mac",
25 | "size" : "128x128",
26 | "scale" : "1x"
27 | },
28 | {
29 | "idiom" : "mac",
30 | "size" : "128x128",
31 | "scale" : "2x"
32 | },
33 | {
34 | "idiom" : "mac",
35 | "size" : "256x256",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "mac",
40 | "size" : "256x256",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "mac",
45 | "size" : "512x512",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "mac",
50 | "size" : "512x512",
51 | "scale" : "2x"
52 | }
53 | ],
54 | "info" : {
55 | "version" : 1,
56 | "author" : "xcode"
57 | }
58 | }
--------------------------------------------------------------------------------
/XcodeExtension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSHumanReadableCopyright
26 | Copyright © 2018 Innotical Solutions . All rights reserved.
27 | NSMainStoryboardFile
28 | Main
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/XcodeExtension.xcodeproj/xcuserdata/innoticalsolutions.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
20 |
21 |
22 |
24 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/JSON2SwiftConverterExtension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | JSON2SwiftConverterExtension
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
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 | Source Editor Command
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 © 2018 Innotical Solutions . All rights reserved.
48 |
49 |
50 |
--------------------------------------------------------------------------------
/JSON2SwiftConverterExtension/SourceEditorCommand.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SourceEditorCommand.swift
3 | // MyJSON2SwiftConverter
4 | //
5 | // Created by Innotical Solutions on 06/01/18.
6 | // Copyright © 2018 Innotical Solutions . All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import XcodeKit
11 |
12 | class SourceEditorCommand: NSObject, XCSourceEditorCommand {
13 |
14 | func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void ) -> Void {
15 |
16 | print(invocation.commandIdentifier)
17 | print(invocation.buffer)
18 | let buffer = invocation.buffer
19 | print(buffer.selections.count)
20 | let range = buffer.selections.firstObject as! XCSourceTextRange
21 | print(range)
22 | let dateFrrmater = DateFormatter.init()
23 | dateFrrmater.dateStyle = .medium
24 | var jsonString = ""
25 | var myDeclaration = "/*====Created by JSON2SwiftConverterExtension on \(dateFrrmater.string(from: Date()))====*/\n //Developed by Irshad Ahmed(👨🏼💻). Contact Email:- ahmedirshad281@gmail.com\n"
26 | let requirement = "\n/*==================================== Requirement ====================================\n\nIf you don't have JSONDecodable protocol method then use the below protocol...\n\npublic protocol JSONDecodable{\n\tinit(json:JSON)\n}\n\nIf you don't have decode method then use the below it..\n\nextension Collection where Iterator.Element == JSON {\n\tfunc decode() -> [T] {\n\t\treturn map({T(json:$0)})\n\t}\n}\n*/"
27 | myDeclaration.append(requirement)
28 | let name = "\n\nimport Foundation\nimport SwiftyJSON\n"
29 | myDeclaration.append(name)
30 | var convertedString = "\n\nclass MyModel:JSONDecodable{\n"
31 | var initilizerString = "required init(json: JSON) {\n"
32 | var mainConvertedString = "\(myDeclaration)"
33 |
34 | var otherObjectsArray:[String] = []
35 | /**/
36 | for index in range.start.line...range.end.line {
37 | jsonString += buffer.lines[index] as! String
38 | }
39 | print(jsonString)
40 | var isFoundArray:Bool = false
41 | if let dataString = jsonString.data(using: .utf8) {
42 | var dictionaryRepresentation:Dictionary?
43 | if let dictionaryArray = try? JSONSerialization.jsonObject(with: dataString, options: []) as? [Any] {
44 | if dictionaryArray != nil && dictionaryArray!.count > 0 {
45 | dictionaryRepresentation = dictionaryArray![0] as? Dictionary
46 | mainConvertedString.append("\n\nclass MyArrayModel:JSONDecodable{\n")
47 | var initilizer = "\trequired init(json: JSON) {\n"
48 | mainConvertedString.append("\t\tvar models:[MyModel]?\n")
49 | initilizer.append("\t\tmodels = json.array?.decode()\n")
50 | initilizer.append("\t}")
51 | mainConvertedString.append(initilizer)
52 | mainConvertedString.append("\n}\n\n")
53 | isFoundArray = true
54 | }
55 | }
56 | if isFoundArray == false {
57 | if let dictionary = try? JSONSerialization.jsonObject(with: dataString, options: []) as? Dictionary {
58 | dictionaryRepresentation = dictionary
59 |
60 | }
61 | }
62 | if dictionaryRepresentation == nil {
63 | completionHandler(nil)
64 | return
65 | }
66 | for (key,value) in dictionaryRepresentation! {
67 |
68 | if ((value as? Dictionary) != nil) {
69 | let model = converDictionaryToModel(name: key, dict: value as! Dictionary)
70 | otherObjectsArray.append(model)
71 | convertedString.append("\tvar \(key):\(key.capitalized)?\n")
72 | initilizerString.append("\t\(key) = \(key.capitalized).init(json:json[\"\(key)\"])\n")
73 | }else if ((value as? [Any]) != nil) {
74 | let arrayObject = value as! [Any]
75 | if arrayObject.count > 0 {
76 | if let dictObject = arrayObject[0] as? Dictionary{
77 | let model = converDictionaryToModel(name: key, dict:dictObject)
78 | otherObjectsArray.append(model)
79 | convertedString.append("\tvar \(key):[\(key.capitalized)]?\n")
80 | initilizerString.append("\t\(key) = json[\"\(key)\"].array?.decode()\n")
81 | }else if let _ = arrayObject[0] as? String {
82 | let model = convertStringArray(name: key, stringArray: value as! [String])
83 | otherObjectsArray.append(model)
84 | convertedString.append("\tvar \(key):[\(key.capitalized)]?\n")
85 | initilizerString.append("\t\(key) = json[\"\(key)\"].array?.decode()\n")
86 | }
87 | }
88 | }else if ((value as? String) != nil) {
89 |
90 | convertedString.append("\tvar \(key):String?\n")
91 | initilizerString.append("\t\(key) = json[\"\(key)\"].stringValue\n")
92 | }else if ((value as? Int) != nil) {
93 |
94 | convertedString.append("\tvar \(key):Int?\n")
95 | initilizerString.append("\t\(key) = json[\"\(key)\"].intValue\n")
96 | }else if ((value as? Bool) != nil) {
97 |
98 | convertedString.append("\tvar \(key):Bool?\n")
99 | initilizerString.append("\t\(key) = json[\"\(key)\"].boolValue\n")
100 | }else if ((value as? Double) != nil) {
101 | convertedString.append("\tvar \(key):Double?\n")
102 | initilizerString.append("\t\(key) = json[\"\(key)\"].doubleValue\n")
103 | }else if ((value as? Float) != nil) {
104 | convertedString.append("\tvar \(key):Float?\n")
105 | initilizerString.append("\t\(key) = json[\"\(key)\"].floatValue\n")
106 | }
107 | }
108 | initilizerString.append("\n\t}")
109 | convertedString.append("\n\(initilizerString)")
110 | convertedString.append("\n}")
111 |
112 | if otherObjectsArray.count > 0 {
113 | convertedString.append("\n\n")
114 | for str in otherObjectsArray {
115 | convertedString.append(str)
116 | }
117 | }
118 | print(convertedString)
119 | mainConvertedString.append(convertedString)
120 | print(mainConvertedString)
121 | buffer.lines.removeAllObjects()
122 | buffer.lines.insert(mainConvertedString, at: 0)
123 | }else{
124 | print("Not Called")
125 | }
126 |
127 | //saveFile()
128 | completionHandler(nil)
129 |
130 | }
131 |
132 |
133 |
134 | func converDictionaryToModel(name:String,dict:Dictionary) ->String{
135 | var classString = "\n\nclass \(name.capitalized):JSONDecodable{\n"
136 | var initilizerString = "required init(json: JSON) {\n"
137 | var otherObjectsArray:[String] = []
138 |
139 | for (key,value) in dict {
140 | if ((value as? Dictionary) != nil) {
141 | let model = converDictionaryToModel(name: key, dict: value as! Dictionary)
142 | otherObjectsArray.append(model)
143 | classString.append("\tvar \(key):\(key.capitalized)?\n")
144 | initilizerString.append("\t\(key) = \(key.capitalized).init(json:json[\"\(key)\"])\n")
145 | }else if ((value as? [Any]) != nil) {
146 | let arrayObject = value as! [Any]
147 | if arrayObject.count > 0 {
148 | if let dictObject = arrayObject[0] as? Dictionary{
149 | let model = converDictionaryToModel(name: key, dict:dictObject)
150 | otherObjectsArray.append(model)
151 | classString.append("\tvar \(key):[\(key.capitalized)]?\n")
152 | initilizerString.append("\t\(key) = json[\"\(key)\"].array?.decode()\n")
153 | }else if let _ = arrayObject[0] as? String {
154 | let model = convertStringArray(name: key, stringArray: value as! [String])
155 | otherObjectsArray.append(model)
156 | classString.append("\tvar \(key):[\(key.capitalized)]?\n")
157 | initilizerString.append("\t\(key) = json[\"\(key)\"].array?.decode()\n")
158 | }
159 | }
160 | }else if ((value as? String) != nil) {
161 | classString.append("\tvar \(key):String?\n")
162 | initilizerString.append("\t\(key) = json[\"\(key)\"].stringValue\n")
163 | }else if ((value as? Int) != nil) {
164 | classString.append("\tvar \(key):Int?\n")
165 | initilizerString.append("\t\(key) = json[\"\(key)\"].intValue\n")
166 | }else if ((value as? Bool) != nil) {
167 | classString.append("\tvar \(key):Bool?\n")
168 | initilizerString.append("\t\(key) = json[\"\(key)\"].boolValue\n")
169 | }else if ((value as? Double) != nil) {
170 | classString.append("\tvar \(key):Double?\n")
171 | initilizerString.append("\t\(key) = json[\"\(key)\"].doubleValue\n")
172 | }else if ((value as? Float) != nil) {
173 | classString.append("\tvar \(key):Float?\n")
174 | initilizerString.append("\t\(key) = json[\"\(key)\"].floatValue\n")
175 | }
176 | }
177 | initilizerString.append("\n\t}")
178 | classString.append("\n\(initilizerString)")
179 | classString.append("\n}")
180 | if otherObjectsArray.count > 0 {
181 | classString.append("\n\n")
182 | for str in otherObjectsArray {
183 | classString.append(str)
184 | }
185 | }
186 | print(classString)
187 | return classString
188 | }
189 |
190 | func convertStringArray( name:String ,stringArray:[String]) -> String{
191 | var classString = "\n\nclass \(name.capitalized):JSONDecodable{\n"
192 | var initilizerString = "required init(json: JSON) {\n"
193 | classString.append("\tvar value:String?\n")
194 | initilizerString.append("\tvalue = json.stringValue\n")
195 | initilizerString.append("\n\t}")
196 | classString.append("\n\(initilizerString)")
197 | classString.append("\n}")
198 | print(classString)
199 | return classString
200 | }
201 |
202 | }
203 |
204 |
--------------------------------------------------------------------------------
/XcodeExtension.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 48;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 956978422000FFA500B48CB7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956978412000FFA500B48CB7 /* AppDelegate.swift */; };
11 | 956978442000FFA500B48CB7 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956978432000FFA500B48CB7 /* ViewController.swift */; };
12 | 956978462000FFA500B48CB7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 956978452000FFA500B48CB7 /* Assets.xcassets */; };
13 | 956978492000FFA500B48CB7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 956978472000FFA500B48CB7 /* Main.storyboard */; };
14 | 956978582000FFCC00B48CB7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 956978572000FFCC00B48CB7 /* Cocoa.framework */; };
15 | 9569785B2000FFCC00B48CB7 /* SourceEditorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9569785A2000FFCC00B48CB7 /* SourceEditorExtension.swift */; };
16 | 9569785D2000FFCC00B48CB7 /* SourceEditorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9569785C2000FFCC00B48CB7 /* SourceEditorCommand.swift */; };
17 | 956978622000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 956978552000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
18 | /* End PBXBuildFile section */
19 |
20 | /* Begin PBXContainerItemProxy section */
21 | 956978602000FFCC00B48CB7 /* PBXContainerItemProxy */ = {
22 | isa = PBXContainerItemProxy;
23 | containerPortal = 956978362000FFA500B48CB7 /* Project object */;
24 | proxyType = 1;
25 | remoteGlobalIDString = 956978542000FFCC00B48CB7;
26 | remoteInfo = JSON2SwiftConverterExtension;
27 | };
28 | /* End PBXContainerItemProxy section */
29 |
30 | /* Begin PBXCopyFilesBuildPhase section */
31 | 956978662000FFCC00B48CB7 /* Embed App Extensions */ = {
32 | isa = PBXCopyFilesBuildPhase;
33 | buildActionMask = 2147483647;
34 | dstPath = "";
35 | dstSubfolderSpec = 13;
36 | files = (
37 | 956978622000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex in Embed App Extensions */,
38 | );
39 | name = "Embed App Extensions";
40 | runOnlyForDeploymentPostprocessing = 0;
41 | };
42 | /* End PBXCopyFilesBuildPhase section */
43 |
44 | /* Begin PBXFileReference section */
45 | 9569783E2000FFA500B48CB7 /* XcodeExtension.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = XcodeExtension.app; sourceTree = BUILT_PRODUCTS_DIR; };
46 | 956978412000FFA500B48CB7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
47 | 956978432000FFA500B48CB7 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
48 | 956978452000FFA500B48CB7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
49 | 956978482000FFA500B48CB7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
50 | 9569784A2000FFA500B48CB7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
51 | 9569784B2000FFA500B48CB7 /* XcodeExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = XcodeExtension.entitlements; sourceTree = ""; };
52 | 956978552000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = JSON2SwiftConverterExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
53 | 956978572000FFCC00B48CB7 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
54 | 9569785A2000FFCC00B48CB7 /* SourceEditorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorExtension.swift; sourceTree = ""; };
55 | 9569785C2000FFCC00B48CB7 /* SourceEditorCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorCommand.swift; sourceTree = ""; };
56 | 9569785E2000FFCC00B48CB7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
57 | 9569785F2000FFCC00B48CB7 /* JSON2SwiftConverterExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = JSON2SwiftConverterExtension.entitlements; sourceTree = ""; };
58 | /* End PBXFileReference section */
59 |
60 | /* Begin PBXFrameworksBuildPhase section */
61 | 9569783B2000FFA500B48CB7 /* Frameworks */ = {
62 | isa = PBXFrameworksBuildPhase;
63 | buildActionMask = 2147483647;
64 | files = (
65 | );
66 | runOnlyForDeploymentPostprocessing = 0;
67 | };
68 | 956978522000FFCC00B48CB7 /* Frameworks */ = {
69 | isa = PBXFrameworksBuildPhase;
70 | buildActionMask = 2147483647;
71 | files = (
72 | 956978582000FFCC00B48CB7 /* Cocoa.framework in Frameworks */,
73 | );
74 | runOnlyForDeploymentPostprocessing = 0;
75 | };
76 | /* End PBXFrameworksBuildPhase section */
77 |
78 | /* Begin PBXGroup section */
79 | 956978352000FFA500B48CB7 = {
80 | isa = PBXGroup;
81 | children = (
82 | 956978402000FFA500B48CB7 /* XcodeExtension */,
83 | 956978592000FFCC00B48CB7 /* JSON2SwiftConverterExtension */,
84 | 956978562000FFCC00B48CB7 /* Frameworks */,
85 | 9569783F2000FFA500B48CB7 /* Products */,
86 | );
87 | sourceTree = "";
88 | };
89 | 9569783F2000FFA500B48CB7 /* Products */ = {
90 | isa = PBXGroup;
91 | children = (
92 | 9569783E2000FFA500B48CB7 /* XcodeExtension.app */,
93 | 956978552000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex */,
94 | );
95 | name = Products;
96 | sourceTree = "";
97 | };
98 | 956978402000FFA500B48CB7 /* XcodeExtension */ = {
99 | isa = PBXGroup;
100 | children = (
101 | 956978412000FFA500B48CB7 /* AppDelegate.swift */,
102 | 956978432000FFA500B48CB7 /* ViewController.swift */,
103 | 956978452000FFA500B48CB7 /* Assets.xcassets */,
104 | 956978472000FFA500B48CB7 /* Main.storyboard */,
105 | 9569784A2000FFA500B48CB7 /* Info.plist */,
106 | 9569784B2000FFA500B48CB7 /* XcodeExtension.entitlements */,
107 | );
108 | path = XcodeExtension;
109 | sourceTree = "";
110 | };
111 | 956978562000FFCC00B48CB7 /* Frameworks */ = {
112 | isa = PBXGroup;
113 | children = (
114 | 956978572000FFCC00B48CB7 /* Cocoa.framework */,
115 | );
116 | name = Frameworks;
117 | sourceTree = "";
118 | };
119 | 956978592000FFCC00B48CB7 /* JSON2SwiftConverterExtension */ = {
120 | isa = PBXGroup;
121 | children = (
122 | 9569785A2000FFCC00B48CB7 /* SourceEditorExtension.swift */,
123 | 9569785C2000FFCC00B48CB7 /* SourceEditorCommand.swift */,
124 | 9569785E2000FFCC00B48CB7 /* Info.plist */,
125 | 9569785F2000FFCC00B48CB7 /* JSON2SwiftConverterExtension.entitlements */,
126 | );
127 | path = JSON2SwiftConverterExtension;
128 | sourceTree = "";
129 | };
130 | /* End PBXGroup section */
131 |
132 | /* Begin PBXNativeTarget section */
133 | 9569783D2000FFA500B48CB7 /* XcodeExtension */ = {
134 | isa = PBXNativeTarget;
135 | buildConfigurationList = 9569784E2000FFA500B48CB7 /* Build configuration list for PBXNativeTarget "XcodeExtension" */;
136 | buildPhases = (
137 | 9569783A2000FFA500B48CB7 /* Sources */,
138 | 9569783B2000FFA500B48CB7 /* Frameworks */,
139 | 9569783C2000FFA500B48CB7 /* Resources */,
140 | 956978662000FFCC00B48CB7 /* Embed App Extensions */,
141 | );
142 | buildRules = (
143 | );
144 | dependencies = (
145 | 956978612000FFCC00B48CB7 /* PBXTargetDependency */,
146 | );
147 | name = XcodeExtension;
148 | productName = XcodeExtension;
149 | productReference = 9569783E2000FFA500B48CB7 /* XcodeExtension.app */;
150 | productType = "com.apple.product-type.application";
151 | };
152 | 956978542000FFCC00B48CB7 /* JSON2SwiftConverterExtension */ = {
153 | isa = PBXNativeTarget;
154 | buildConfigurationList = 956978632000FFCC00B48CB7 /* Build configuration list for PBXNativeTarget "JSON2SwiftConverterExtension" */;
155 | buildPhases = (
156 | 956978512000FFCC00B48CB7 /* Sources */,
157 | 956978522000FFCC00B48CB7 /* Frameworks */,
158 | 956978532000FFCC00B48CB7 /* Resources */,
159 | );
160 | buildRules = (
161 | );
162 | dependencies = (
163 | );
164 | name = JSON2SwiftConverterExtension;
165 | productName = JSON2SwiftConverterExtension;
166 | productReference = 956978552000FFCC00B48CB7 /* JSON2SwiftConverterExtension.appex */;
167 | productType = "com.apple.product-type.xcode-extension";
168 | };
169 | /* End PBXNativeTarget section */
170 |
171 | /* Begin PBXProject section */
172 | 956978362000FFA500B48CB7 /* Project object */ = {
173 | isa = PBXProject;
174 | attributes = {
175 | LastSwiftUpdateCheck = 0910;
176 | LastUpgradeCheck = 0910;
177 | ORGANIZATIONNAME = "Innotical Solutions ";
178 | TargetAttributes = {
179 | 9569783D2000FFA500B48CB7 = {
180 | CreatedOnToolsVersion = 9.1;
181 | ProvisioningStyle = Automatic;
182 | };
183 | 956978542000FFCC00B48CB7 = {
184 | CreatedOnToolsVersion = 9.1;
185 | ProvisioningStyle = Automatic;
186 | };
187 | };
188 | };
189 | buildConfigurationList = 956978392000FFA500B48CB7 /* Build configuration list for PBXProject "XcodeExtension" */;
190 | compatibilityVersion = "Xcode 8.0";
191 | developmentRegion = en;
192 | hasScannedForEncodings = 0;
193 | knownRegions = (
194 | en,
195 | Base,
196 | );
197 | mainGroup = 956978352000FFA500B48CB7;
198 | productRefGroup = 9569783F2000FFA500B48CB7 /* Products */;
199 | projectDirPath = "";
200 | projectRoot = "";
201 | targets = (
202 | 9569783D2000FFA500B48CB7 /* XcodeExtension */,
203 | 956978542000FFCC00B48CB7 /* JSON2SwiftConverterExtension */,
204 | );
205 | };
206 | /* End PBXProject section */
207 |
208 | /* Begin PBXResourcesBuildPhase section */
209 | 9569783C2000FFA500B48CB7 /* Resources */ = {
210 | isa = PBXResourcesBuildPhase;
211 | buildActionMask = 2147483647;
212 | files = (
213 | 956978462000FFA500B48CB7 /* Assets.xcassets in Resources */,
214 | 956978492000FFA500B48CB7 /* Main.storyboard in Resources */,
215 | );
216 | runOnlyForDeploymentPostprocessing = 0;
217 | };
218 | 956978532000FFCC00B48CB7 /* Resources */ = {
219 | isa = PBXResourcesBuildPhase;
220 | buildActionMask = 2147483647;
221 | files = (
222 | );
223 | runOnlyForDeploymentPostprocessing = 0;
224 | };
225 | /* End PBXResourcesBuildPhase section */
226 |
227 | /* Begin PBXSourcesBuildPhase section */
228 | 9569783A2000FFA500B48CB7 /* Sources */ = {
229 | isa = PBXSourcesBuildPhase;
230 | buildActionMask = 2147483647;
231 | files = (
232 | 956978442000FFA500B48CB7 /* ViewController.swift in Sources */,
233 | 956978422000FFA500B48CB7 /* AppDelegate.swift in Sources */,
234 | );
235 | runOnlyForDeploymentPostprocessing = 0;
236 | };
237 | 956978512000FFCC00B48CB7 /* Sources */ = {
238 | isa = PBXSourcesBuildPhase;
239 | buildActionMask = 2147483647;
240 | files = (
241 | 9569785B2000FFCC00B48CB7 /* SourceEditorExtension.swift in Sources */,
242 | 9569785D2000FFCC00B48CB7 /* SourceEditorCommand.swift in Sources */,
243 | );
244 | runOnlyForDeploymentPostprocessing = 0;
245 | };
246 | /* End PBXSourcesBuildPhase section */
247 |
248 | /* Begin PBXTargetDependency section */
249 | 956978612000FFCC00B48CB7 /* PBXTargetDependency */ = {
250 | isa = PBXTargetDependency;
251 | target = 956978542000FFCC00B48CB7 /* JSON2SwiftConverterExtension */;
252 | targetProxy = 956978602000FFCC00B48CB7 /* PBXContainerItemProxy */;
253 | };
254 | /* End PBXTargetDependency section */
255 |
256 | /* Begin PBXVariantGroup section */
257 | 956978472000FFA500B48CB7 /* Main.storyboard */ = {
258 | isa = PBXVariantGroup;
259 | children = (
260 | 956978482000FFA500B48CB7 /* Base */,
261 | );
262 | name = Main.storyboard;
263 | sourceTree = "";
264 | };
265 | /* End PBXVariantGroup section */
266 |
267 | /* Begin XCBuildConfiguration section */
268 | 9569784C2000FFA500B48CB7 /* Debug */ = {
269 | isa = XCBuildConfiguration;
270 | buildSettings = {
271 | ALWAYS_SEARCH_USER_PATHS = NO;
272 | CLANG_ANALYZER_NONNULL = YES;
273 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
274 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
275 | CLANG_CXX_LIBRARY = "libc++";
276 | CLANG_ENABLE_MODULES = YES;
277 | CLANG_ENABLE_OBJC_ARC = YES;
278 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
279 | CLANG_WARN_BOOL_CONVERSION = YES;
280 | CLANG_WARN_COMMA = YES;
281 | CLANG_WARN_CONSTANT_CONVERSION = YES;
282 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
283 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
284 | CLANG_WARN_EMPTY_BODY = YES;
285 | CLANG_WARN_ENUM_CONVERSION = YES;
286 | CLANG_WARN_INFINITE_RECURSION = YES;
287 | CLANG_WARN_INT_CONVERSION = YES;
288 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
289 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
290 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
291 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
292 | CLANG_WARN_STRICT_PROTOTYPES = YES;
293 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
294 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
295 | CLANG_WARN_UNREACHABLE_CODE = YES;
296 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
297 | CODE_SIGN_IDENTITY = "Mac Developer";
298 | COPY_PHASE_STRIP = NO;
299 | DEBUG_INFORMATION_FORMAT = dwarf;
300 | ENABLE_STRICT_OBJC_MSGSEND = YES;
301 | ENABLE_TESTABILITY = YES;
302 | GCC_C_LANGUAGE_STANDARD = gnu11;
303 | GCC_DYNAMIC_NO_PIC = NO;
304 | GCC_NO_COMMON_BLOCKS = YES;
305 | GCC_OPTIMIZATION_LEVEL = 0;
306 | GCC_PREPROCESSOR_DEFINITIONS = (
307 | "DEBUG=1",
308 | "$(inherited)",
309 | );
310 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
311 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
312 | GCC_WARN_UNDECLARED_SELECTOR = YES;
313 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
314 | GCC_WARN_UNUSED_FUNCTION = YES;
315 | GCC_WARN_UNUSED_VARIABLE = YES;
316 | MACOSX_DEPLOYMENT_TARGET = 10.12;
317 | MTL_ENABLE_DEBUG_INFO = YES;
318 | ONLY_ACTIVE_ARCH = YES;
319 | SDKROOT = macosx;
320 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
321 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
322 | };
323 | name = Debug;
324 | };
325 | 9569784D2000FFA500B48CB7 /* Release */ = {
326 | isa = XCBuildConfiguration;
327 | buildSettings = {
328 | ALWAYS_SEARCH_USER_PATHS = NO;
329 | CLANG_ANALYZER_NONNULL = YES;
330 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
331 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
332 | CLANG_CXX_LIBRARY = "libc++";
333 | CLANG_ENABLE_MODULES = YES;
334 | CLANG_ENABLE_OBJC_ARC = YES;
335 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
336 | CLANG_WARN_BOOL_CONVERSION = YES;
337 | CLANG_WARN_COMMA = YES;
338 | CLANG_WARN_CONSTANT_CONVERSION = YES;
339 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
340 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
341 | CLANG_WARN_EMPTY_BODY = YES;
342 | CLANG_WARN_ENUM_CONVERSION = YES;
343 | CLANG_WARN_INFINITE_RECURSION = YES;
344 | CLANG_WARN_INT_CONVERSION = YES;
345 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
346 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
347 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
348 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
349 | CLANG_WARN_STRICT_PROTOTYPES = YES;
350 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
351 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
352 | CLANG_WARN_UNREACHABLE_CODE = YES;
353 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
354 | CODE_SIGN_IDENTITY = "Mac Developer";
355 | COPY_PHASE_STRIP = NO;
356 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
357 | ENABLE_NS_ASSERTIONS = NO;
358 | ENABLE_STRICT_OBJC_MSGSEND = YES;
359 | GCC_C_LANGUAGE_STANDARD = gnu11;
360 | GCC_NO_COMMON_BLOCKS = YES;
361 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
362 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
363 | GCC_WARN_UNDECLARED_SELECTOR = YES;
364 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
365 | GCC_WARN_UNUSED_FUNCTION = YES;
366 | GCC_WARN_UNUSED_VARIABLE = YES;
367 | MACOSX_DEPLOYMENT_TARGET = 10.12;
368 | MTL_ENABLE_DEBUG_INFO = NO;
369 | SDKROOT = macosx;
370 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
371 | };
372 | name = Release;
373 | };
374 | 9569784F2000FFA500B48CB7 /* Debug */ = {
375 | isa = XCBuildConfiguration;
376 | buildSettings = {
377 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
378 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
379 | CODE_SIGN_ENTITLEMENTS = XcodeExtension/XcodeExtension.entitlements;
380 | CODE_SIGN_STYLE = Automatic;
381 | COMBINE_HIDPI_IMAGES = YES;
382 | DEVELOPMENT_TEAM = A7EF2S2B9W;
383 | INFOPLIST_FILE = XcodeExtension/Info.plist;
384 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
385 | PRODUCT_BUNDLE_IDENTIFIER = com.innotical.XcodeExtension;
386 | PRODUCT_NAME = "$(TARGET_NAME)";
387 | SWIFT_VERSION = 4.0;
388 | };
389 | name = Debug;
390 | };
391 | 956978502000FFA500B48CB7 /* Release */ = {
392 | isa = XCBuildConfiguration;
393 | buildSettings = {
394 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
395 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
396 | CODE_SIGN_ENTITLEMENTS = XcodeExtension/XcodeExtension.entitlements;
397 | CODE_SIGN_STYLE = Automatic;
398 | COMBINE_HIDPI_IMAGES = YES;
399 | DEVELOPMENT_TEAM = A7EF2S2B9W;
400 | INFOPLIST_FILE = XcodeExtension/Info.plist;
401 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
402 | PRODUCT_BUNDLE_IDENTIFIER = com.innotical.XcodeExtension;
403 | PRODUCT_NAME = "$(TARGET_NAME)";
404 | SWIFT_VERSION = 4.0;
405 | };
406 | name = Release;
407 | };
408 | 956978642000FFCC00B48CB7 /* Debug */ = {
409 | isa = XCBuildConfiguration;
410 | buildSettings = {
411 | CODE_SIGN_ENTITLEMENTS = JSON2SwiftConverterExtension/JSON2SwiftConverterExtension.entitlements;
412 | CODE_SIGN_STYLE = Automatic;
413 | COMBINE_HIDPI_IMAGES = YES;
414 | DEVELOPMENT_TEAM = A7EF2S2B9W;
415 | INFOPLIST_FILE = JSON2SwiftConverterExtension/Info.plist;
416 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
417 | PRODUCT_BUNDLE_IDENTIFIER = com.innotical.XcodeExtension.JSON2SwiftConverterExtension;
418 | PRODUCT_NAME = "$(TARGET_NAME)";
419 | SKIP_INSTALL = YES;
420 | SWIFT_VERSION = 4.0;
421 | };
422 | name = Debug;
423 | };
424 | 956978652000FFCC00B48CB7 /* Release */ = {
425 | isa = XCBuildConfiguration;
426 | buildSettings = {
427 | CODE_SIGN_ENTITLEMENTS = JSON2SwiftConverterExtension/JSON2SwiftConverterExtension.entitlements;
428 | CODE_SIGN_STYLE = Automatic;
429 | COMBINE_HIDPI_IMAGES = YES;
430 | DEVELOPMENT_TEAM = A7EF2S2B9W;
431 | INFOPLIST_FILE = JSON2SwiftConverterExtension/Info.plist;
432 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
433 | PRODUCT_BUNDLE_IDENTIFIER = com.innotical.XcodeExtension.JSON2SwiftConverterExtension;
434 | PRODUCT_NAME = "$(TARGET_NAME)";
435 | SKIP_INSTALL = YES;
436 | SWIFT_VERSION = 4.0;
437 | };
438 | name = Release;
439 | };
440 | /* End XCBuildConfiguration section */
441 |
442 | /* Begin XCConfigurationList section */
443 | 956978392000FFA500B48CB7 /* Build configuration list for PBXProject "XcodeExtension" */ = {
444 | isa = XCConfigurationList;
445 | buildConfigurations = (
446 | 9569784C2000FFA500B48CB7 /* Debug */,
447 | 9569784D2000FFA500B48CB7 /* Release */,
448 | );
449 | defaultConfigurationIsVisible = 0;
450 | defaultConfigurationName = Release;
451 | };
452 | 9569784E2000FFA500B48CB7 /* Build configuration list for PBXNativeTarget "XcodeExtension" */ = {
453 | isa = XCConfigurationList;
454 | buildConfigurations = (
455 | 9569784F2000FFA500B48CB7 /* Debug */,
456 | 956978502000FFA500B48CB7 /* Release */,
457 | );
458 | defaultConfigurationIsVisible = 0;
459 | defaultConfigurationName = Release;
460 | };
461 | 956978632000FFCC00B48CB7 /* Build configuration list for PBXNativeTarget "JSON2SwiftConverterExtension" */ = {
462 | isa = XCConfigurationList;
463 | buildConfigurations = (
464 | 956978642000FFCC00B48CB7 /* Debug */,
465 | 956978652000FFCC00B48CB7 /* Release */,
466 | );
467 | defaultConfigurationIsVisible = 0;
468 | defaultConfigurationName = Release;
469 | };
470 | /* End XCConfigurationList section */
471 | };
472 | rootObject = 956978362000FFA500B48CB7 /* Project object */;
473 | }
474 |
--------------------------------------------------------------------------------
/XcodeExtension/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
--------------------------------------------------------------------------------