├── Screenshots
├── home.png
└── home1.png
├── Ximulator for macOS 10.15
├── Assets.xcassets
│ ├── Contents.json
│ ├── AppIcon.appiconset
│ │ ├── 1024.png
│ │ ├── 128.png
│ │ ├── 16.png
│ │ ├── 256.png
│ │ ├── 32.png
│ │ ├── 512.png
│ │ ├── 64.png
│ │ └── Contents.json
│ └── iphone.imageset
│ │ ├── -g-icon_iphoneX.png
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── Ximulator_for_macOS_10_15.entitlements
├── AppDelegate.swift
├── Info.plist
├── ContentView.swift
└── Base.lproj
│ └── Main.storyboard
├── Ximulator for macOS 10.15.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ ├── praneet.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── praneets.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── xcuserdata
│ ├── praneet.xcuserdatad
│ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── praneets.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── project.pbxproj
├── README.md
├── Ximulator for macOS 10.15Tests
├── Info.plist
└── Ximulator_for_macOS_10_15Tests.swift
├── Ximulator for macOS 10.15UITests
├── Info.plist
└── Ximulator_for_macOS_10_15UITests.swift
└── LICENSE
/Screenshots/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Screenshots/home.png
--------------------------------------------------------------------------------
/Screenshots/home1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Screenshots/home1.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/1024.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/128.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/16.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/256.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/32.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/512.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/64.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/iphone.imageset/-g-icon_iphoneX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15/Assets.xcassets/iphone.imageset/-g-icon_iphoneX.png
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/xcuserdata/praneet.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/xcuserdata/praneet.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/xcuserdata/praneets.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praneet-suresh/Ximulator/HEAD/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/xcuserdata/praneets.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Ximulator
2 | A GUI tool to manage iOS, iPadOS Simulators with an extensive list of features
3 | 
4 | 
5 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Ximulator_for_macOS_10_15.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.files.user-selected.read-only
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/iphone.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "-g-icon_iphoneX.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/xcuserdata/praneet.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Ximulator for macOS 10.15.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/xcuserdata/praneets.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Ximulator for macOS 10.15.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15Tests/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 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15UITests/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 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Praneet
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 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15Tests/Ximulator_for_macOS_10_15Tests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Ximulator_for_macOS_10_15Tests.swift
3 | // Ximulator for macOS 10.15Tests
4 | //
5 | // Created by Praneet S on 16/02/20.
6 | // Copyright © 2020 Praneet S. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | @testable import Ximulator_for_macOS_10_15
11 |
12 | class Ximulator_for_macOS_10_15Tests: XCTestCase {
13 |
14 | override func setUp() {
15 | // Put setup code here. This method is called before the invocation of each test method in the class.
16 | }
17 |
18 | override func tearDown() {
19 | // Put teardown code here. This method is called after the invocation of each test method in the class.
20 | }
21 |
22 | func testExample() {
23 | // This is an example of a functional test case.
24 | // Use XCTAssert and related functions to verify your tests produce the correct results.
25 | }
26 |
27 | func testPerformanceExample() {
28 | // This is an example of a performance test case.
29 | self.measure {
30 | // Put the code you want to measure the time of here.
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // Ximulator for macOS 10.15
4 | //
5 | // Created by Praneet S and Meghana Khuntia on 16/02/20.
6 | // Copyright © 2020 Praneet S. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 | import SwiftUI
11 |
12 | @NSApplicationMain
13 | class AppDelegate: NSObject, NSApplicationDelegate {
14 |
15 | var window: NSWindow!
16 |
17 |
18 | func applicationDidFinishLaunching(_ aNotification: Notification) {
19 | // Create the SwiftUI view that provides the window contents.
20 | let contentView = ContentView()
21 |
22 | // Create the window and set the content view.
23 | window = NSWindow(
24 | contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
25 | styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
26 | backing: .buffered, defer: false)
27 | window.center()
28 | window.setFrameAutosaveName("Main Window")
29 | window.contentView = NSHostingView(rootView: contentView)
30 | window.makeKeyAndOrderFront(nil)
31 | }
32 |
33 | func applicationWillTerminate(_ aNotification: Notification) {
34 | // Insert code here to tear down your application
35 | }
36 |
37 |
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSHumanReadableCopyright
26 | Copyright © 2020 Praneet S and Meghana Khuntia. All rights reserved.
27 | NSMainStoryboardFile
28 | Main
29 | NSPrincipalClass
30 | NSApplication
31 | NSSupportsAutomaticTermination
32 |
33 | NSSupportsSuddenTermination
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "16x16",
5 | "idiom" : "mac",
6 | "filename" : "16.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "16x16",
11 | "idiom" : "mac",
12 | "filename" : "32.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "32x32",
17 | "idiom" : "mac",
18 | "filename" : "32.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "32x32",
23 | "idiom" : "mac",
24 | "filename" : "64.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "128x128",
29 | "idiom" : "mac",
30 | "filename" : "128.png",
31 | "scale" : "1x"
32 | },
33 | {
34 | "size" : "128x128",
35 | "idiom" : "mac",
36 | "filename" : "256.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "256x256",
41 | "idiom" : "mac",
42 | "filename" : "256.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "256x256",
47 | "idiom" : "mac",
48 | "filename" : "512.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "512x512",
53 | "idiom" : "mac",
54 | "filename" : "512.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "512x512",
59 | "idiom" : "mac",
60 | "filename" : "1024.png",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15UITests/Ximulator_for_macOS_10_15UITests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Ximulator_for_macOS_10_15UITests.swift
3 | // Ximulator for macOS 10.15UITests
4 | //
5 | // Created by Praneet S on 16/02/20.
6 | // Copyright © 2020 Praneet S. All rights reserved.
7 | //
8 |
9 | import XCTest
10 |
11 | class Ximulator_for_macOS_10_15UITests: XCTestCase {
12 |
13 | override func setUp() {
14 | // Put setup code here. This method is called before the invocation of each test method in the class.
15 |
16 | // In UI tests it is usually best to stop immediately when a failure occurs.
17 | continueAfterFailure = false
18 |
19 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
20 | }
21 |
22 | override func tearDown() {
23 | // Put teardown code here. This method is called after the invocation of each test method in the class.
24 | }
25 |
26 | func testExample() {
27 | // UI tests must launch the application that they test.
28 | let app = XCUIApplication()
29 | app.launch()
30 |
31 | // Use recording to get started writing UI tests.
32 | // Use XCTAssert and related functions to verify your tests produce the correct results.
33 | }
34 |
35 | func testLaunchPerformance() {
36 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
37 | // This measures how long it takes to launch your application.
38 | measure(metrics: [XCTOSSignpostMetric.applicationLaunch]) {
39 | XCUIApplication().launch()
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // Ximulator
4 | //
5 | // Created by Praneet S and Meghana Khuntia
6 | // Copyright © 2020 Praneet S. All rights reserved.
7 | //
8 |
9 | import SwiftUI
10 |
11 | struct ContentView: View {
12 |
13 | @State var devices:[String] = []
14 | @State var networks:[String] = ["wifi","3g","4g"]
15 | @State var selection = ""
16 | @State var path = ""
17 | @State var hours = "9"
18 | @State var minutes = "41"
19 | @State var network = "wifi"
20 | @State var batteryModes:[String] = ["charging","charged","discharging"]
21 | @State var battery = "charged"
22 | @State var batteryLevel:Double = 10
23 | @State var clipboard = "Pasteboard: "
24 |
25 | func shell(args: [String], executableURL: URL){
26 | let result = Process()
27 | result.executableURL = executableURL
28 | result.arguments = args
29 | try! result.run()
30 | }
31 |
32 | func screenshot(){
33 | //xcrun simctl io booted screenshot screen.png
34 | //xcrun simctl addmedia booted ~/Desktop/simctl_list.gif
35 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
36 | shell(args: ["simctl","io","booted","screenshot","~/Desktop/screenshot.png"], executableURL: executableURL)
37 | }
38 |
39 | func getDeviceID() -> String {
40 | let uuid = self.selection.split(separator: " ").reversed()[1]
41 | return String(uuid).replacingOccurrences(of: "(", with: "").replacingOccurrences(of: ")", with: "")
42 | }
43 |
44 | func updateTime(){
45 | //xcrun simctl status_bar "iPhone 11" override --time 9:41
46 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
47 | shell(args: ["simctl","status_bar","\(getDeviceID())","override","--time","\(hours):\(minutes)"], executableURL: executableURL)
48 | }
49 |
50 | func updateBattery(){
51 | //xcrun simctl status_bar "iPhone 11" override --time 9:41
52 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
53 | shell(args: ["simctl","status_bar","\(getDeviceID())","override","--batteryState","\(battery)"], executableURL: executableURL)
54 | }
55 |
56 | func updateBatteryLevel(){
57 | //xcrun simctl status_bar "iPhone 11" override --time 9:41
58 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
59 | shell(args: ["simctl","status_bar","\(getDeviceID())","override","--batteryLevel","\(Int(batteryLevel))"], executableURL: executableURL)
60 | }
61 |
62 | func updateDataNetwork(){
63 | //xcrun simctl status_bar "iPhone 11" override --time 9:41
64 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
65 | shell(args: ["simctl","status_bar","\(getDeviceID())","override","--dataNetwork","\(network)"], executableURL: executableURL)
66 | }
67 |
68 | func shutdown(){
69 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
70 | shell(args: ["simctl","shutdown","\(getDeviceID())"], executableURL: executableURL)
71 | self.loadSims()
72 | }
73 |
74 | func addMedia(path:String){
75 | //xcrun simctl addmedia booted ~/Desktop/simctl_list.gif
76 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
77 | shell(args: ["simctl","addmedia","booted", path], executableURL: executableURL)
78 | }
79 |
80 | func installApp(path:String){
81 | //xcrun simctl addmedia booted ~/Desktop/simctl_list.gif
82 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
83 | shell(args: ["simctl","install","booted", path], executableURL: executableURL)
84 | }
85 |
86 | func process(res:[Substring]) -> [String] {
87 | var temp:[String] = []
88 | for element in res {
89 | if element.contains("-") && !element.contains("/Applications") && !element.contains("Unavailable") && !element.contains("runtime"){
90 | temp.append("\(element)")
91 | }
92 | }
93 | return temp
94 | }
95 |
96 | func loadSims(){
97 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
98 | let out = Pipe()
99 | let result = Process()
100 | result.executableURL = executableURL
101 | result.arguments = ["simctl","list","-v","devices"]
102 | result.standardOutput = out
103 | try! result.run()
104 | let res = String(data: out.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8)?.split(separator: "\n")
105 | self.devices = self.process(res: res!)
106 | }
107 |
108 | var body: some View {
109 |
110 | VStack {
111 |
112 | VStack{
113 |
114 | HStack{
115 | Image("iphone")
116 | .resizable()
117 | .frame(width: 77, height: 92, alignment: .center)
118 | Text("Ximulator").font(.largeTitle)
119 | Text("(Beta 1)").font(.system(size: 8))
120 | }
121 |
122 | Picker(selection: $selection, label: Text("Device List")) {
123 | ForEach(devices,id: \.self){ item in
124 | Text(item).tag(1)
125 | }
126 |
127 | }
128 |
129 | Button(action: {
130 | let executableURL = URL(fileURLWithPath: "/usr/bin/xcrun")
131 | let result = Process()
132 | result.executableURL = executableURL
133 | let UUID = self.selection.split(separator: " ").reversed()[1]
134 | let ID = String(UUID).replacingOccurrences(of: "(", with: "").replacingOccurrences(of: ")", with: "")
135 | result.arguments = ["simctl","boot","\(ID)"]
136 | try! result.run()
137 | try! Process.run(URL(fileURLWithPath: "/usr/bin/open"), arguments: ["-a","simulator"], terminationHandler: nil)
138 | }, label: {Text("Run simulator")})
139 |
140 | Button(action: {
141 | self.screenshot()
142 | }, label: {Text("Take screenshot")}).disabled(selection == "" ? true : false)
143 | }
144 |
145 | HStack{
146 | TextField("Absolute path of the media file", text: $path)
147 | Button(action: {
148 | self.addMedia(path: self.path)
149 | }, label: {Text("Add media")}).disabled(selection == "" ? true : false)
150 | }
151 |
152 | Button(action: {
153 | self.shutdown()
154 | }, label: {Text("shutdown simulator")}).disabled(selection == "" ? true : false)
155 |
156 | Text("Status bar customization")
157 | .padding(.top,5)
158 | .padding(.bottom,5)
159 |
160 | HStack{
161 | Text("Time")
162 | .padding(.trailing,15)
163 | TextField("Hours", text: $hours)
164 | TextField("Minutes", text: $minutes)
165 | Button(action: {
166 | self.updateTime()
167 | }, label: {Text("Update Time")}).disabled(selection == "" ? true : false)
168 | }
169 |
170 | HStack{
171 | Text("Data Network")
172 | .padding(.trailing,15)
173 | Picker(selection: $network, label: Text("Device List")) {
174 | ForEach(networks,id: \.self){ item in
175 | Text(item).tag(1)
176 | }
177 | }
178 | Button(action: {
179 | self.updateDataNetwork()
180 | }, label: {Text("Update data network")}).disabled(selection == "" ? true : false)
181 |
182 |
183 | }
184 |
185 | HStack{
186 | Text("Battery stats")
187 | .padding(.trailing,15)
188 | Picker(selection: $battery, label: Text("Mode")) {
189 | ForEach(batteryModes,id: \.self){ item in
190 | Text(item).tag(1)
191 | }
192 | }
193 | Button(action: {
194 | self.updateBattery()
195 | }, label: {Text("Update battery state")}).disabled(selection == "" ? true : false)
196 |
197 |
198 | }
199 |
200 | HStack{
201 | Text("Battery level")
202 | Slider(value: $batteryLevel, in: 0...100, step: 1.0, onEditingChanged: {_ in self.updateBatteryLevel()})
203 | .frame(width: 250)
204 | .disabled(selection == "" ? true : false)
205 | }
206 |
207 | Text("Install Application")
208 | HStack{
209 | TextField("Absolute path of the .app", text: $path)
210 | Button(action: {
211 | self.installApp(path: self.path)
212 | }, label: {Text("Install")}).disabled(selection == "" ? true : false)
213 | }
214 |
215 | }.onAppear(perform: {self.loadSims()})
216 | .padding(25)
217 |
218 | }
219 | struct ContentView_Previews: PreviewProvider {
220 | static var previews: some View {
221 | ContentView()
222 | }
223 | }
224 | }
225 |
226 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 27280CE623F9338800A9E491 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27280CE523F9338800A9E491 /* AppDelegate.swift */; };
11 | 27280CE823F9338800A9E491 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27280CE723F9338800A9E491 /* ContentView.swift */; };
12 | 27280CEA23F9338B00A9E491 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 27280CE923F9338B00A9E491 /* Assets.xcassets */; };
13 | 27280CED23F9338B00A9E491 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 27280CEC23F9338B00A9E491 /* Preview Assets.xcassets */; };
14 | 27280CF023F9338B00A9E491 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 27280CEE23F9338B00A9E491 /* Main.storyboard */; };
15 | 27280CFC23F9338B00A9E491 /* Ximulator_for_macOS_10_15Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27280CFB23F9338B00A9E491 /* Ximulator_for_macOS_10_15Tests.swift */; };
16 | 27280D0723F9338B00A9E491 /* Ximulator_for_macOS_10_15UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27280D0623F9338B00A9E491 /* Ximulator_for_macOS_10_15UITests.swift */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXContainerItemProxy section */
20 | 27280CF823F9338B00A9E491 /* PBXContainerItemProxy */ = {
21 | isa = PBXContainerItemProxy;
22 | containerPortal = 27280CDA23F9338800A9E491 /* Project object */;
23 | proxyType = 1;
24 | remoteGlobalIDString = 27280CE123F9338800A9E491;
25 | remoteInfo = "Ximulator for macOS 10.15";
26 | };
27 | 27280D0323F9338B00A9E491 /* PBXContainerItemProxy */ = {
28 | isa = PBXContainerItemProxy;
29 | containerPortal = 27280CDA23F9338800A9E491 /* Project object */;
30 | proxyType = 1;
31 | remoteGlobalIDString = 27280CE123F9338800A9E491;
32 | remoteInfo = "Ximulator for macOS 10.15";
33 | };
34 | /* End PBXContainerItemProxy section */
35 |
36 | /* Begin PBXFileReference section */
37 | 27280CE223F9338800A9E491 /* Ximulator for macOS 10.15.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Ximulator for macOS 10.15.app"; sourceTree = BUILT_PRODUCTS_DIR; };
38 | 27280CE523F9338800A9E491 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
39 | 27280CE723F9338800A9E491 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
40 | 27280CE923F9338B00A9E491 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
41 | 27280CEC23F9338B00A9E491 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
42 | 27280CEF23F9338B00A9E491 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
43 | 27280CF123F9338B00A9E491 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
44 | 27280CF223F9338B00A9E491 /* Ximulator_for_macOS_10_15.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Ximulator_for_macOS_10_15.entitlements; sourceTree = ""; };
45 | 27280CF723F9338B00A9E491 /* Ximulator for macOS 10.15Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Ximulator for macOS 10.15Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
46 | 27280CFB23F9338B00A9E491 /* Ximulator_for_macOS_10_15Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ximulator_for_macOS_10_15Tests.swift; sourceTree = ""; };
47 | 27280CFD23F9338B00A9E491 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
48 | 27280D0223F9338B00A9E491 /* Ximulator for macOS 10.15UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Ximulator for macOS 10.15UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
49 | 27280D0623F9338B00A9E491 /* Ximulator_for_macOS_10_15UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ximulator_for_macOS_10_15UITests.swift; sourceTree = ""; };
50 | 27280D0823F9338B00A9E491 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
51 | /* End PBXFileReference section */
52 |
53 | /* Begin PBXFrameworksBuildPhase section */
54 | 27280CDF23F9338800A9E491 /* Frameworks */ = {
55 | isa = PBXFrameworksBuildPhase;
56 | buildActionMask = 2147483647;
57 | files = (
58 | );
59 | runOnlyForDeploymentPostprocessing = 0;
60 | };
61 | 27280CF423F9338B00A9E491 /* Frameworks */ = {
62 | isa = PBXFrameworksBuildPhase;
63 | buildActionMask = 2147483647;
64 | files = (
65 | );
66 | runOnlyForDeploymentPostprocessing = 0;
67 | };
68 | 27280CFF23F9338B00A9E491 /* Frameworks */ = {
69 | isa = PBXFrameworksBuildPhase;
70 | buildActionMask = 2147483647;
71 | files = (
72 | );
73 | runOnlyForDeploymentPostprocessing = 0;
74 | };
75 | /* End PBXFrameworksBuildPhase section */
76 |
77 | /* Begin PBXGroup section */
78 | 27280CD923F9338800A9E491 = {
79 | isa = PBXGroup;
80 | children = (
81 | 27280CE423F9338800A9E491 /* Ximulator for macOS 10.15 */,
82 | 27280CFA23F9338B00A9E491 /* Ximulator for macOS 10.15Tests */,
83 | 27280D0523F9338B00A9E491 /* Ximulator for macOS 10.15UITests */,
84 | 27280CE323F9338800A9E491 /* Products */,
85 | );
86 | sourceTree = "";
87 | };
88 | 27280CE323F9338800A9E491 /* Products */ = {
89 | isa = PBXGroup;
90 | children = (
91 | 27280CE223F9338800A9E491 /* Ximulator for macOS 10.15.app */,
92 | 27280CF723F9338B00A9E491 /* Ximulator for macOS 10.15Tests.xctest */,
93 | 27280D0223F9338B00A9E491 /* Ximulator for macOS 10.15UITests.xctest */,
94 | );
95 | name = Products;
96 | sourceTree = "";
97 | };
98 | 27280CE423F9338800A9E491 /* Ximulator for macOS 10.15 */ = {
99 | isa = PBXGroup;
100 | children = (
101 | 27280CE523F9338800A9E491 /* AppDelegate.swift */,
102 | 27280CE723F9338800A9E491 /* ContentView.swift */,
103 | 27280CE923F9338B00A9E491 /* Assets.xcassets */,
104 | 27280CEE23F9338B00A9E491 /* Main.storyboard */,
105 | 27280CF123F9338B00A9E491 /* Info.plist */,
106 | 27280CF223F9338B00A9E491 /* Ximulator_for_macOS_10_15.entitlements */,
107 | 27280CEB23F9338B00A9E491 /* Preview Content */,
108 | );
109 | path = "Ximulator for macOS 10.15";
110 | sourceTree = "";
111 | };
112 | 27280CEB23F9338B00A9E491 /* Preview Content */ = {
113 | isa = PBXGroup;
114 | children = (
115 | 27280CEC23F9338B00A9E491 /* Preview Assets.xcassets */,
116 | );
117 | path = "Preview Content";
118 | sourceTree = "";
119 | };
120 | 27280CFA23F9338B00A9E491 /* Ximulator for macOS 10.15Tests */ = {
121 | isa = PBXGroup;
122 | children = (
123 | 27280CFB23F9338B00A9E491 /* Ximulator_for_macOS_10_15Tests.swift */,
124 | 27280CFD23F9338B00A9E491 /* Info.plist */,
125 | );
126 | path = "Ximulator for macOS 10.15Tests";
127 | sourceTree = "";
128 | };
129 | 27280D0523F9338B00A9E491 /* Ximulator for macOS 10.15UITests */ = {
130 | isa = PBXGroup;
131 | children = (
132 | 27280D0623F9338B00A9E491 /* Ximulator_for_macOS_10_15UITests.swift */,
133 | 27280D0823F9338B00A9E491 /* Info.plist */,
134 | );
135 | path = "Ximulator for macOS 10.15UITests";
136 | sourceTree = "";
137 | };
138 | /* End PBXGroup section */
139 |
140 | /* Begin PBXNativeTarget section */
141 | 27280CE123F9338800A9E491 /* Ximulator for macOS 10.15 */ = {
142 | isa = PBXNativeTarget;
143 | buildConfigurationList = 27280D0B23F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15" */;
144 | buildPhases = (
145 | 27280CDE23F9338800A9E491 /* Sources */,
146 | 27280CDF23F9338800A9E491 /* Frameworks */,
147 | 27280CE023F9338800A9E491 /* Resources */,
148 | );
149 | buildRules = (
150 | );
151 | dependencies = (
152 | );
153 | name = "Ximulator for macOS 10.15";
154 | productName = "Ximulator for macOS 10.15";
155 | productReference = 27280CE223F9338800A9E491 /* Ximulator for macOS 10.15.app */;
156 | productType = "com.apple.product-type.application";
157 | };
158 | 27280CF623F9338B00A9E491 /* Ximulator for macOS 10.15Tests */ = {
159 | isa = PBXNativeTarget;
160 | buildConfigurationList = 27280D0E23F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15Tests" */;
161 | buildPhases = (
162 | 27280CF323F9338B00A9E491 /* Sources */,
163 | 27280CF423F9338B00A9E491 /* Frameworks */,
164 | 27280CF523F9338B00A9E491 /* Resources */,
165 | );
166 | buildRules = (
167 | );
168 | dependencies = (
169 | 27280CF923F9338B00A9E491 /* PBXTargetDependency */,
170 | );
171 | name = "Ximulator for macOS 10.15Tests";
172 | productName = "Ximulator for macOS 10.15Tests";
173 | productReference = 27280CF723F9338B00A9E491 /* Ximulator for macOS 10.15Tests.xctest */;
174 | productType = "com.apple.product-type.bundle.unit-test";
175 | };
176 | 27280D0123F9338B00A9E491 /* Ximulator for macOS 10.15UITests */ = {
177 | isa = PBXNativeTarget;
178 | buildConfigurationList = 27280D1123F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15UITests" */;
179 | buildPhases = (
180 | 27280CFE23F9338B00A9E491 /* Sources */,
181 | 27280CFF23F9338B00A9E491 /* Frameworks */,
182 | 27280D0023F9338B00A9E491 /* Resources */,
183 | );
184 | buildRules = (
185 | );
186 | dependencies = (
187 | 27280D0423F9338B00A9E491 /* PBXTargetDependency */,
188 | );
189 | name = "Ximulator for macOS 10.15UITests";
190 | productName = "Ximulator for macOS 10.15UITests";
191 | productReference = 27280D0223F9338B00A9E491 /* Ximulator for macOS 10.15UITests.xctest */;
192 | productType = "com.apple.product-type.bundle.ui-testing";
193 | };
194 | /* End PBXNativeTarget section */
195 |
196 | /* Begin PBXProject section */
197 | 27280CDA23F9338800A9E491 /* Project object */ = {
198 | isa = PBXProject;
199 | attributes = {
200 | LastSwiftUpdateCheck = 1130;
201 | LastUpgradeCheck = 1130;
202 | ORGANIZATIONNAME = "Praneet S";
203 | TargetAttributes = {
204 | 27280CE123F9338800A9E491 = {
205 | CreatedOnToolsVersion = 11.3.1;
206 | };
207 | 27280CF623F9338B00A9E491 = {
208 | CreatedOnToolsVersion = 11.3.1;
209 | TestTargetID = 27280CE123F9338800A9E491;
210 | };
211 | 27280D0123F9338B00A9E491 = {
212 | CreatedOnToolsVersion = 11.3.1;
213 | TestTargetID = 27280CE123F9338800A9E491;
214 | };
215 | };
216 | };
217 | buildConfigurationList = 27280CDD23F9338800A9E491 /* Build configuration list for PBXProject "Ximulator for macOS 10.15" */;
218 | compatibilityVersion = "Xcode 9.3";
219 | developmentRegion = en;
220 | hasScannedForEncodings = 0;
221 | knownRegions = (
222 | en,
223 | Base,
224 | );
225 | mainGroup = 27280CD923F9338800A9E491;
226 | productRefGroup = 27280CE323F9338800A9E491 /* Products */;
227 | projectDirPath = "";
228 | projectRoot = "";
229 | targets = (
230 | 27280CE123F9338800A9E491 /* Ximulator for macOS 10.15 */,
231 | 27280CF623F9338B00A9E491 /* Ximulator for macOS 10.15Tests */,
232 | 27280D0123F9338B00A9E491 /* Ximulator for macOS 10.15UITests */,
233 | );
234 | };
235 | /* End PBXProject section */
236 |
237 | /* Begin PBXResourcesBuildPhase section */
238 | 27280CE023F9338800A9E491 /* Resources */ = {
239 | isa = PBXResourcesBuildPhase;
240 | buildActionMask = 2147483647;
241 | files = (
242 | 27280CF023F9338B00A9E491 /* Main.storyboard in Resources */,
243 | 27280CED23F9338B00A9E491 /* Preview Assets.xcassets in Resources */,
244 | 27280CEA23F9338B00A9E491 /* Assets.xcassets in Resources */,
245 | );
246 | runOnlyForDeploymentPostprocessing = 0;
247 | };
248 | 27280CF523F9338B00A9E491 /* Resources */ = {
249 | isa = PBXResourcesBuildPhase;
250 | buildActionMask = 2147483647;
251 | files = (
252 | );
253 | runOnlyForDeploymentPostprocessing = 0;
254 | };
255 | 27280D0023F9338B00A9E491 /* Resources */ = {
256 | isa = PBXResourcesBuildPhase;
257 | buildActionMask = 2147483647;
258 | files = (
259 | );
260 | runOnlyForDeploymentPostprocessing = 0;
261 | };
262 | /* End PBXResourcesBuildPhase section */
263 |
264 | /* Begin PBXSourcesBuildPhase section */
265 | 27280CDE23F9338800A9E491 /* Sources */ = {
266 | isa = PBXSourcesBuildPhase;
267 | buildActionMask = 2147483647;
268 | files = (
269 | 27280CE823F9338800A9E491 /* ContentView.swift in Sources */,
270 | 27280CE623F9338800A9E491 /* AppDelegate.swift in Sources */,
271 | );
272 | runOnlyForDeploymentPostprocessing = 0;
273 | };
274 | 27280CF323F9338B00A9E491 /* Sources */ = {
275 | isa = PBXSourcesBuildPhase;
276 | buildActionMask = 2147483647;
277 | files = (
278 | 27280CFC23F9338B00A9E491 /* Ximulator_for_macOS_10_15Tests.swift in Sources */,
279 | );
280 | runOnlyForDeploymentPostprocessing = 0;
281 | };
282 | 27280CFE23F9338B00A9E491 /* Sources */ = {
283 | isa = PBXSourcesBuildPhase;
284 | buildActionMask = 2147483647;
285 | files = (
286 | 27280D0723F9338B00A9E491 /* Ximulator_for_macOS_10_15UITests.swift in Sources */,
287 | );
288 | runOnlyForDeploymentPostprocessing = 0;
289 | };
290 | /* End PBXSourcesBuildPhase section */
291 |
292 | /* Begin PBXTargetDependency section */
293 | 27280CF923F9338B00A9E491 /* PBXTargetDependency */ = {
294 | isa = PBXTargetDependency;
295 | target = 27280CE123F9338800A9E491 /* Ximulator for macOS 10.15 */;
296 | targetProxy = 27280CF823F9338B00A9E491 /* PBXContainerItemProxy */;
297 | };
298 | 27280D0423F9338B00A9E491 /* PBXTargetDependency */ = {
299 | isa = PBXTargetDependency;
300 | target = 27280CE123F9338800A9E491 /* Ximulator for macOS 10.15 */;
301 | targetProxy = 27280D0323F9338B00A9E491 /* PBXContainerItemProxy */;
302 | };
303 | /* End PBXTargetDependency section */
304 |
305 | /* Begin PBXVariantGroup section */
306 | 27280CEE23F9338B00A9E491 /* Main.storyboard */ = {
307 | isa = PBXVariantGroup;
308 | children = (
309 | 27280CEF23F9338B00A9E491 /* Base */,
310 | );
311 | name = Main.storyboard;
312 | sourceTree = "";
313 | };
314 | /* End PBXVariantGroup section */
315 |
316 | /* Begin XCBuildConfiguration section */
317 | 27280D0923F9338B00A9E491 /* Debug */ = {
318 | isa = XCBuildConfiguration;
319 | buildSettings = {
320 | ALWAYS_SEARCH_USER_PATHS = NO;
321 | CLANG_ANALYZER_NONNULL = YES;
322 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
323 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
324 | CLANG_CXX_LIBRARY = "libc++";
325 | CLANG_ENABLE_MODULES = YES;
326 | CLANG_ENABLE_OBJC_ARC = YES;
327 | CLANG_ENABLE_OBJC_WEAK = YES;
328 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
329 | CLANG_WARN_BOOL_CONVERSION = YES;
330 | CLANG_WARN_COMMA = YES;
331 | CLANG_WARN_CONSTANT_CONVERSION = YES;
332 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
333 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
334 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
335 | CLANG_WARN_EMPTY_BODY = YES;
336 | CLANG_WARN_ENUM_CONVERSION = YES;
337 | CLANG_WARN_INFINITE_RECURSION = YES;
338 | CLANG_WARN_INT_CONVERSION = YES;
339 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
340 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
341 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
342 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
343 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
344 | CLANG_WARN_STRICT_PROTOTYPES = YES;
345 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
346 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
347 | CLANG_WARN_UNREACHABLE_CODE = YES;
348 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
349 | COPY_PHASE_STRIP = NO;
350 | DEBUG_INFORMATION_FORMAT = dwarf;
351 | ENABLE_STRICT_OBJC_MSGSEND = YES;
352 | ENABLE_TESTABILITY = YES;
353 | GCC_C_LANGUAGE_STANDARD = gnu11;
354 | GCC_DYNAMIC_NO_PIC = NO;
355 | GCC_NO_COMMON_BLOCKS = YES;
356 | GCC_OPTIMIZATION_LEVEL = 0;
357 | GCC_PREPROCESSOR_DEFINITIONS = (
358 | "DEBUG=1",
359 | "$(inherited)",
360 | );
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.15;
368 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
369 | MTL_FAST_MATH = YES;
370 | ONLY_ACTIVE_ARCH = YES;
371 | SDKROOT = macosx;
372 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
373 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
374 | };
375 | name = Debug;
376 | };
377 | 27280D0A23F9338B00A9E491 /* Release */ = {
378 | isa = XCBuildConfiguration;
379 | buildSettings = {
380 | ALWAYS_SEARCH_USER_PATHS = NO;
381 | CLANG_ANALYZER_NONNULL = YES;
382 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
383 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
384 | CLANG_CXX_LIBRARY = "libc++";
385 | CLANG_ENABLE_MODULES = YES;
386 | CLANG_ENABLE_OBJC_ARC = YES;
387 | CLANG_ENABLE_OBJC_WEAK = YES;
388 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
389 | CLANG_WARN_BOOL_CONVERSION = YES;
390 | CLANG_WARN_COMMA = YES;
391 | CLANG_WARN_CONSTANT_CONVERSION = YES;
392 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
393 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
394 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
395 | CLANG_WARN_EMPTY_BODY = YES;
396 | CLANG_WARN_ENUM_CONVERSION = YES;
397 | CLANG_WARN_INFINITE_RECURSION = YES;
398 | CLANG_WARN_INT_CONVERSION = YES;
399 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
400 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
401 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
402 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
403 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
404 | CLANG_WARN_STRICT_PROTOTYPES = YES;
405 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
406 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
407 | CLANG_WARN_UNREACHABLE_CODE = YES;
408 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
409 | COPY_PHASE_STRIP = NO;
410 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
411 | ENABLE_NS_ASSERTIONS = NO;
412 | ENABLE_STRICT_OBJC_MSGSEND = YES;
413 | GCC_C_LANGUAGE_STANDARD = gnu11;
414 | GCC_NO_COMMON_BLOCKS = YES;
415 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
416 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
417 | GCC_WARN_UNDECLARED_SELECTOR = YES;
418 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
419 | GCC_WARN_UNUSED_FUNCTION = YES;
420 | GCC_WARN_UNUSED_VARIABLE = YES;
421 | MACOSX_DEPLOYMENT_TARGET = 10.15;
422 | MTL_ENABLE_DEBUG_INFO = NO;
423 | MTL_FAST_MATH = YES;
424 | SDKROOT = macosx;
425 | SWIFT_COMPILATION_MODE = wholemodule;
426 | SWIFT_OPTIMIZATION_LEVEL = "-O";
427 | };
428 | name = Release;
429 | };
430 | 27280D0C23F9338B00A9E491 /* Debug */ = {
431 | isa = XCBuildConfiguration;
432 | buildSettings = {
433 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
434 | CODE_SIGN_ENTITLEMENTS = "Ximulator for macOS 10.15/Ximulator_for_macOS_10_15.entitlements";
435 | CODE_SIGN_IDENTITY = "-";
436 | CODE_SIGN_STYLE = Automatic;
437 | COMBINE_HIDPI_IMAGES = YES;
438 | DEVELOPMENT_ASSET_PATHS = "\"Ximulator for macOS 10.15/Preview Content\"";
439 | DEVELOPMENT_TEAM = TR3K2EP48P;
440 | ENABLE_PREVIEWS = YES;
441 | INFOPLIST_FILE = "Ximulator for macOS 10.15/Info.plist";
442 | LD_RUNPATH_SEARCH_PATHS = (
443 | "$(inherited)",
444 | "@executable_path/../Frameworks",
445 | );
446 | MACOSX_DEPLOYMENT_TARGET = 10.15;
447 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15";
448 | PRODUCT_NAME = "$(TARGET_NAME)";
449 | SWIFT_VERSION = 5.0;
450 | };
451 | name = Debug;
452 | };
453 | 27280D0D23F9338B00A9E491 /* Release */ = {
454 | isa = XCBuildConfiguration;
455 | buildSettings = {
456 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
457 | CODE_SIGN_ENTITLEMENTS = "Ximulator for macOS 10.15/Ximulator_for_macOS_10_15.entitlements";
458 | CODE_SIGN_IDENTITY = "-";
459 | CODE_SIGN_STYLE = Automatic;
460 | COMBINE_HIDPI_IMAGES = YES;
461 | DEVELOPMENT_ASSET_PATHS = "\"Ximulator for macOS 10.15/Preview Content\"";
462 | DEVELOPMENT_TEAM = TR3K2EP48P;
463 | ENABLE_PREVIEWS = YES;
464 | INFOPLIST_FILE = "Ximulator for macOS 10.15/Info.plist";
465 | LD_RUNPATH_SEARCH_PATHS = (
466 | "$(inherited)",
467 | "@executable_path/../Frameworks",
468 | );
469 | MACOSX_DEPLOYMENT_TARGET = 10.15;
470 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15";
471 | PRODUCT_NAME = "$(TARGET_NAME)";
472 | SWIFT_VERSION = 5.0;
473 | };
474 | name = Release;
475 | };
476 | 27280D0F23F9338B00A9E491 /* Debug */ = {
477 | isa = XCBuildConfiguration;
478 | buildSettings = {
479 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
480 | BUNDLE_LOADER = "$(TEST_HOST)";
481 | CODE_SIGN_STYLE = Automatic;
482 | COMBINE_HIDPI_IMAGES = YES;
483 | INFOPLIST_FILE = "Ximulator for macOS 10.15Tests/Info.plist";
484 | LD_RUNPATH_SEARCH_PATHS = (
485 | "$(inherited)",
486 | "@executable_path/../Frameworks",
487 | "@loader_path/../Frameworks",
488 | );
489 | MACOSX_DEPLOYMENT_TARGET = 10.15;
490 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15Tests";
491 | PRODUCT_NAME = "$(TARGET_NAME)";
492 | SWIFT_VERSION = 5.0;
493 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Ximulator for macOS 10.15.app/Contents/MacOS/Ximulator for macOS 10.15";
494 | };
495 | name = Debug;
496 | };
497 | 27280D1023F9338B00A9E491 /* Release */ = {
498 | isa = XCBuildConfiguration;
499 | buildSettings = {
500 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
501 | BUNDLE_LOADER = "$(TEST_HOST)";
502 | CODE_SIGN_STYLE = Automatic;
503 | COMBINE_HIDPI_IMAGES = YES;
504 | INFOPLIST_FILE = "Ximulator for macOS 10.15Tests/Info.plist";
505 | LD_RUNPATH_SEARCH_PATHS = (
506 | "$(inherited)",
507 | "@executable_path/../Frameworks",
508 | "@loader_path/../Frameworks",
509 | );
510 | MACOSX_DEPLOYMENT_TARGET = 10.15;
511 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15Tests";
512 | PRODUCT_NAME = "$(TARGET_NAME)";
513 | SWIFT_VERSION = 5.0;
514 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Ximulator for macOS 10.15.app/Contents/MacOS/Ximulator for macOS 10.15";
515 | };
516 | name = Release;
517 | };
518 | 27280D1223F9338B00A9E491 /* Debug */ = {
519 | isa = XCBuildConfiguration;
520 | buildSettings = {
521 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
522 | CODE_SIGN_STYLE = Automatic;
523 | COMBINE_HIDPI_IMAGES = YES;
524 | INFOPLIST_FILE = "Ximulator for macOS 10.15UITests/Info.plist";
525 | LD_RUNPATH_SEARCH_PATHS = (
526 | "$(inherited)",
527 | "@executable_path/../Frameworks",
528 | "@loader_path/../Frameworks",
529 | );
530 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15UITests";
531 | PRODUCT_NAME = "$(TARGET_NAME)";
532 | SWIFT_VERSION = 5.0;
533 | TEST_TARGET_NAME = "Ximulator for macOS 10.15";
534 | };
535 | name = Debug;
536 | };
537 | 27280D1323F9338B00A9E491 /* Release */ = {
538 | isa = XCBuildConfiguration;
539 | buildSettings = {
540 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
541 | CODE_SIGN_STYLE = Automatic;
542 | COMBINE_HIDPI_IMAGES = YES;
543 | INFOPLIST_FILE = "Ximulator for macOS 10.15UITests/Info.plist";
544 | LD_RUNPATH_SEARCH_PATHS = (
545 | "$(inherited)",
546 | "@executable_path/../Frameworks",
547 | "@loader_path/../Frameworks",
548 | );
549 | PRODUCT_BUNDLE_IDENTIFIER = "com.lucifer.Ximulator-for-macOS-10-15UITests";
550 | PRODUCT_NAME = "$(TARGET_NAME)";
551 | SWIFT_VERSION = 5.0;
552 | TEST_TARGET_NAME = "Ximulator for macOS 10.15";
553 | };
554 | name = Release;
555 | };
556 | /* End XCBuildConfiguration section */
557 |
558 | /* Begin XCConfigurationList section */
559 | 27280CDD23F9338800A9E491 /* Build configuration list for PBXProject "Ximulator for macOS 10.15" */ = {
560 | isa = XCConfigurationList;
561 | buildConfigurations = (
562 | 27280D0923F9338B00A9E491 /* Debug */,
563 | 27280D0A23F9338B00A9E491 /* Release */,
564 | );
565 | defaultConfigurationIsVisible = 0;
566 | defaultConfigurationName = Release;
567 | };
568 | 27280D0B23F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15" */ = {
569 | isa = XCConfigurationList;
570 | buildConfigurations = (
571 | 27280D0C23F9338B00A9E491 /* Debug */,
572 | 27280D0D23F9338B00A9E491 /* Release */,
573 | );
574 | defaultConfigurationIsVisible = 0;
575 | defaultConfigurationName = Release;
576 | };
577 | 27280D0E23F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15Tests" */ = {
578 | isa = XCConfigurationList;
579 | buildConfigurations = (
580 | 27280D0F23F9338B00A9E491 /* Debug */,
581 | 27280D1023F9338B00A9E491 /* Release */,
582 | );
583 | defaultConfigurationIsVisible = 0;
584 | defaultConfigurationName = Release;
585 | };
586 | 27280D1123F9338B00A9E491 /* Build configuration list for PBXNativeTarget "Ximulator for macOS 10.15UITests" */ = {
587 | isa = XCConfigurationList;
588 | buildConfigurations = (
589 | 27280D1223F9338B00A9E491 /* Debug */,
590 | 27280D1323F9338B00A9E491 /* Release */,
591 | );
592 | defaultConfigurationIsVisible = 0;
593 | defaultConfigurationName = Release;
594 | };
595 | /* End XCConfigurationList section */
596 | };
597 | rootObject = 27280CDA23F9338800A9E491 /* Project object */;
598 | }
599 |
--------------------------------------------------------------------------------
/Ximulator for macOS 10.15/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 |
--------------------------------------------------------------------------------