Initial Commit
This commit is contained in:
@@ -0,0 +1,194 @@
|
|||||||
|
{
|
||||||
|
"default-configuration": "Release",
|
||||||
|
"configurations": [
|
||||||
|
"Debug",
|
||||||
|
"Release",
|
||||||
|
],
|
||||||
|
"localizations": {
|
||||||
|
"development": "en",
|
||||||
|
"supported": [
|
||||||
|
"Base",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
{ "kind": "folder", "path": "MikeMail", "target-membership": [ "MikeMail" ] },
|
||||||
|
{ "kind": "folder", "path": "MikeMailTests", "target-membership": [ "MikeMailTests" ] },
|
||||||
|
{ "kind": "folder", "path": "MikeMailUITests", "target-membership": [ "MikeMailUITests" ] },
|
||||||
|
{
|
||||||
|
"kind": "group",
|
||||||
|
"name": "Products",
|
||||||
|
"children": [
|
||||||
|
{ "path": "<PRODUCTS>/MikeMail.app", "id": "4C847ED9309E3BBF00AA96B9", "type": "wrapper.application", "index": false },
|
||||||
|
{ "path": "<PRODUCTS>/MikeMailTests.xctest", "id": "4C847EE8309E3BC000AA96B9", "type": "wrapper.cfbundle", "index": false },
|
||||||
|
{ "path": "<PRODUCTS>/MikeMailUITests.xctest", "id": "4C847EF2309E3BC000AA96B9", "type": "wrapper.cfbundle", "index": false },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"name": "MikeMail",
|
||||||
|
"id": "4C847ED8309E3BBF00AA96B9",
|
||||||
|
"product": "Products/MikeMail.app",
|
||||||
|
"product-type": "application",
|
||||||
|
"build-phases": [
|
||||||
|
"compile-sources",
|
||||||
|
"frameworks",
|
||||||
|
"resources",
|
||||||
|
],
|
||||||
|
"build-settings": {
|
||||||
|
"ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
|
||||||
|
"ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME": "AccentColor",
|
||||||
|
"CODE_SIGN_STYLE": "Automatic",
|
||||||
|
"COMBINE_HIDPI_IMAGES": "YES",
|
||||||
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
|
"DEVELOPMENT_TEAM": "GQR972L9NJ",
|
||||||
|
"ENABLE_APP_SANDBOX": "YES",
|
||||||
|
"ENABLE_HARDENED_RUNTIME": "YES",
|
||||||
|
"ENABLE_PREVIEWS": "YES",
|
||||||
|
"ENABLE_USER_SELECTED_FILES": "readonly",
|
||||||
|
"GENERATE_INFOPLIST_FILE": "YES",
|
||||||
|
"INFOPLIST_KEY_NSHumanReadableCopyright": "",
|
||||||
|
"LD_RUNPATH_SEARCH_PATHS": [
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
],
|
||||||
|
"MARKETING_VERSION": "1.0",
|
||||||
|
"PRODUCT_BUNDLE_IDENTIFIER": "Dr.-med.-Michael-Ku-bler.MikeMail",
|
||||||
|
"PRODUCT_NAME": "$(TARGET_NAME)",
|
||||||
|
"REGISTER_APP_GROUPS": "YES",
|
||||||
|
"STRING_CATALOG_GENERATE_SYMBOLS": "YES",
|
||||||
|
"SWIFT_APPROACHABLE_CONCURRENCY": "YES",
|
||||||
|
"SWIFT_DEFAULT_ACTOR_ISOLATION": "MainActor",
|
||||||
|
"SWIFT_EMIT_LOC_STRINGS": "YES",
|
||||||
|
"SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY": "YES",
|
||||||
|
"SWIFT_VERSION": "5.0",
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
"name": "MikeMailTests",
|
||||||
|
"id": "4C847EE7309E3BC000AA96B9",
|
||||||
|
"product": "Products/MikeMailTests.xctest",
|
||||||
|
"product-type": "bundle.unit-test",
|
||||||
|
"test-host-target": "MikeMail",
|
||||||
|
"dependencies": [
|
||||||
|
"MikeMail",
|
||||||
|
],
|
||||||
|
"build-phases": [
|
||||||
|
"compile-sources",
|
||||||
|
"frameworks",
|
||||||
|
"resources",
|
||||||
|
],
|
||||||
|
"build-settings": {
|
||||||
|
"BUNDLE_LOADER": "$(TEST_HOST)",
|
||||||
|
"CODE_SIGN_STYLE": "Automatic",
|
||||||
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
|
"DEVELOPMENT_TEAM": "GQR972L9NJ",
|
||||||
|
"GENERATE_INFOPLIST_FILE": "YES",
|
||||||
|
"MACOSX_DEPLOYMENT_TARGET": "27.2",
|
||||||
|
"MARKETING_VERSION": "1.0",
|
||||||
|
"PRODUCT_BUNDLE_IDENTIFIER": "Dr.-med.-Michael-Ku-bler.MikeMailTests",
|
||||||
|
"PRODUCT_NAME": "$(TARGET_NAME)",
|
||||||
|
"STRING_CATALOG_GENERATE_SYMBOLS": "NO",
|
||||||
|
"SWIFT_APPROACHABLE_CONCURRENCY": "YES",
|
||||||
|
"SWIFT_EMIT_LOC_STRINGS": "NO",
|
||||||
|
"SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY": "YES",
|
||||||
|
"SWIFT_VERSION": "5.0",
|
||||||
|
"TEST_HOST": "$(BUILT_PRODUCTS_DIR)/MikeMail.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MikeMail",
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
"name": "MikeMailUITests",
|
||||||
|
"id": "4C847EF1309E3BC000AA96B9",
|
||||||
|
"product": "Products/MikeMailUITests.xctest",
|
||||||
|
"product-type": "bundle.ui-testing",
|
||||||
|
"test-host-target": "MikeMail",
|
||||||
|
"dependencies": [
|
||||||
|
"MikeMail",
|
||||||
|
],
|
||||||
|
"build-phases": [
|
||||||
|
"compile-sources",
|
||||||
|
"frameworks",
|
||||||
|
"resources",
|
||||||
|
],
|
||||||
|
"build-settings": {
|
||||||
|
"CODE_SIGN_STYLE": "Automatic",
|
||||||
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
|
"DEVELOPMENT_TEAM": "GQR972L9NJ",
|
||||||
|
"GENERATE_INFOPLIST_FILE": "YES",
|
||||||
|
"MARKETING_VERSION": "1.0",
|
||||||
|
"PRODUCT_BUNDLE_IDENTIFIER": "Dr.-med.-Michael-Ku-bler.MikeMailUITests",
|
||||||
|
"PRODUCT_NAME": "$(TARGET_NAME)",
|
||||||
|
"STRING_CATALOG_GENERATE_SYMBOLS": "NO",
|
||||||
|
"SWIFT_APPROACHABLE_CONCURRENCY": "YES",
|
||||||
|
"SWIFT_EMIT_LOC_STRINGS": "NO",
|
||||||
|
"SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY": "YES",
|
||||||
|
"SWIFT_VERSION": "5.0",
|
||||||
|
"TEST_TARGET_NAME": "MikeMail",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"build-settings": {
|
||||||
|
"ALWAYS_SEARCH_USER_PATHS": "NO",
|
||||||
|
"ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS": "YES",
|
||||||
|
"CLANG_ANALYZER_NONNULL": "YES",
|
||||||
|
"CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION": "YES_AGGRESSIVE",
|
||||||
|
"CLANG_CXX_LANGUAGE_STANDARD": "gnu++20",
|
||||||
|
"CLANG_ENABLE_MODULES": "YES",
|
||||||
|
"CLANG_ENABLE_OBJC_ARC": "YES",
|
||||||
|
"CLANG_ENABLE_OBJC_WEAK": "YES",
|
||||||
|
"CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING": "YES",
|
||||||
|
"CLANG_WARN_BOOL_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_COMMA": "YES",
|
||||||
|
"CLANG_WARN_CONSTANT_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS": "YES",
|
||||||
|
"CLANG_WARN_DIRECT_OBJC_ISA_USAGE": "YES_ERROR",
|
||||||
|
"CLANG_WARN_DOCUMENTATION_COMMENTS": "YES",
|
||||||
|
"CLANG_WARN_EMPTY_BODY": "YES",
|
||||||
|
"CLANG_WARN_ENUM_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_INFINITE_RECURSION": "YES",
|
||||||
|
"CLANG_WARN_INT_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_NON_LITERAL_NULL_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF": "YES",
|
||||||
|
"CLANG_WARN_OBJC_LITERAL_CONVERSION": "YES",
|
||||||
|
"CLANG_WARN_OBJC_ROOT_CLASS": "YES_ERROR",
|
||||||
|
"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER": "YES",
|
||||||
|
"CLANG_WARN_RANGE_LOOP_ANALYSIS": "YES",
|
||||||
|
"CLANG_WARN_STRICT_PROTOTYPES": "YES",
|
||||||
|
"CLANG_WARN_SUSPICIOUS_MOVE": "YES",
|
||||||
|
"CLANG_WARN_UNGUARDED_AVAILABILITY": "YES_AGGRESSIVE",
|
||||||
|
"CLANG_WARN_UNREACHABLE_CODE": "YES",
|
||||||
|
"CLANG_WARN__DUPLICATE_METHOD_MATCH": "YES",
|
||||||
|
"COPY_PHASE_STRIP": "NO",
|
||||||
|
"DEBUG_INFORMATION_FORMAT[config=Debug]": "dwarf",
|
||||||
|
"DEBUG_INFORMATION_FORMAT[config=Release]": "dwarf-with-dsym",
|
||||||
|
"DEVELOPMENT_TEAM": "GQR972L9NJ",
|
||||||
|
"ENABLE_NS_ASSERTIONS[config=Release]": "NO",
|
||||||
|
"ENABLE_STRICT_OBJC_MSGSEND": "YES",
|
||||||
|
"ENABLE_TESTABILITY[config=Debug]": "YES",
|
||||||
|
"ENABLE_USER_SCRIPT_SANDBOXING": "YES",
|
||||||
|
"GCC_C_LANGUAGE_STANDARD": "gnu17",
|
||||||
|
"GCC_DYNAMIC_NO_PIC[config=Debug]": "NO",
|
||||||
|
"GCC_NO_COMMON_BLOCKS": "YES",
|
||||||
|
"GCC_OPTIMIZATION_LEVEL[config=Debug]": "0",
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[config=Debug]": [
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
],
|
||||||
|
"GCC_WARN_64_TO_32_BIT_CONVERSION": "YES",
|
||||||
|
"GCC_WARN_ABOUT_RETURN_TYPE": "YES_ERROR",
|
||||||
|
"GCC_WARN_UNDECLARED_SELECTOR": "YES",
|
||||||
|
"GCC_WARN_UNINITIALIZED_AUTOS": "YES_AGGRESSIVE",
|
||||||
|
"GCC_WARN_UNUSED_FUNCTION": "YES",
|
||||||
|
"GCC_WARN_UNUSED_VARIABLE": "YES",
|
||||||
|
"LOCALIZATION_PREFERS_STRING_CATALOGS": "YES",
|
||||||
|
"MACOSX_DEPLOYMENT_TARGET": "27.2",
|
||||||
|
"MTL_ENABLE_DEBUG_INFO[config=Debug]": "INCLUDE_SOURCE",
|
||||||
|
"MTL_ENABLE_DEBUG_INFO[config=Release]": "NO",
|
||||||
|
"MTL_FAST_MATH": "YES",
|
||||||
|
"ONLY_ACTIVE_ARCH[config=Debug]": "YES",
|
||||||
|
"SDKROOT": "macosx",
|
||||||
|
"SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Debug]": "DEBUG $(inherited)",
|
||||||
|
"SWIFT_COMPILATION_MODE[config=Release]": "wholemodule",
|
||||||
|
"SWIFT_OPTIMIZATION_LEVEL[config=Debug]": "-Onone",
|
||||||
|
},
|
||||||
|
"last-upgrade": "27.2",
|
||||||
|
"last-swift-update": "27.2",
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "self:">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>SchemeUserState</key>
|
||||||
|
<dict>
|
||||||
|
<key>MikeMail.xcscheme_^#shared#^_</key>
|
||||||
|
<dict>
|
||||||
|
<key>orderHint</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"colors" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "16x16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "16x16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "32x32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "32x32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "128x128"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "128x128"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "256x256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "256x256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "512x512"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "mac",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "512x512"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// ContentView.swift
|
||||||
|
// MikeMail
|
||||||
|
//
|
||||||
|
// Created by Dr. med. Michael Kübler on 06.11.26.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import SwiftData
|
||||||
|
|
||||||
|
struct ContentView: View {
|
||||||
|
@Environment(\.modelContext) private var modelContext
|
||||||
|
@Query private var items: [Item]
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
NavigationSplitView {
|
||||||
|
List {
|
||||||
|
ForEach(items) { item in
|
||||||
|
NavigationLink {
|
||||||
|
Text("Item at \(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard))")
|
||||||
|
} label: {
|
||||||
|
Text(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.onDelete(perform: deleteItems)
|
||||||
|
}
|
||||||
|
.navigationSplitViewColumnWidth(min: 180, ideal: 200)
|
||||||
|
.toolbar {
|
||||||
|
ToolbarItem {
|
||||||
|
Button(action: addItem) {
|
||||||
|
Label("Add Item", systemImage: "plus")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} detail: {
|
||||||
|
Text("Select an item")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func addItem() {
|
||||||
|
withAnimation {
|
||||||
|
let newItem = Item(timestamp: Date())
|
||||||
|
modelContext.insert(newItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func deleteItems(offsets: IndexSet) {
|
||||||
|
withAnimation {
|
||||||
|
for index in offsets {
|
||||||
|
modelContext.delete(items[index])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#Preview {
|
||||||
|
ContentView()
|
||||||
|
.modelContainer(for: Item.self, inMemory: true)
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// Item.swift
|
||||||
|
// MikeMail
|
||||||
|
//
|
||||||
|
// Created by Dr. med. Michael Kübler on 06.11.26.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import SwiftData
|
||||||
|
|
||||||
|
@Model
|
||||||
|
final class Item {
|
||||||
|
var timestamp: Date
|
||||||
|
|
||||||
|
init(timestamp: Date) {
|
||||||
|
self.timestamp = timestamp
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// MikeMailApp.swift
|
||||||
|
// MikeMail
|
||||||
|
//
|
||||||
|
// Created by Dr. med. Michael Kübler on 06.11.26.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import SwiftData
|
||||||
|
|
||||||
|
@main
|
||||||
|
struct MikeMailApp: App {
|
||||||
|
var sharedModelContainer: ModelContainer = {
|
||||||
|
let schema = Schema([
|
||||||
|
Item.self,
|
||||||
|
])
|
||||||
|
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
|
||||||
|
|
||||||
|
do {
|
||||||
|
return try ModelContainer(for: schema, configurations: [modelConfiguration])
|
||||||
|
} catch {
|
||||||
|
fatalError("Could not create ModelContainer: \(error)")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
var body: some Scene {
|
||||||
|
WindowGroup {
|
||||||
|
ContentView()
|
||||||
|
}
|
||||||
|
.modelContainer(sharedModelContainer)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// MikeMailTests.swift
|
||||||
|
// MikeMailTests
|
||||||
|
//
|
||||||
|
// Created by Dr. med. Michael Kübler on 06.11.26.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Testing
|
||||||
|
@testable import MikeMail
|
||||||
|
|
||||||
|
struct MikeMailTests {
|
||||||
|
|
||||||
|
@Test func example() async throws {
|
||||||
|
// Write your test here and use APIs like `#expect(...)` to check expected conditions.
|
||||||
|
// Swift Testing Documentation
|
||||||
|
// https://developer.apple.com/documentation/testing
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// MikeMailUITests.swift
|
||||||
|
// MikeMailUITests
|
||||||
|
//
|
||||||
|
// Created by Dr. med. Michael Kübler on 06.11.26.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
|
||||||
|
final class MikeMailUITests: XCTestCase {
|
||||||
|
|
||||||
|
override func setUpWithError() throws {
|
||||||
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||||
|
|
||||||
|
// In UI tests it is usually best to stop immediately when a failure occurs.
|
||||||
|
continueAfterFailure = false
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
}
|
||||||
|
|
||||||
|
override func tearDownWithError() throws {
|
||||||
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||||
|
}
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
func testExample() throws {
|
||||||
|
// UI tests must launch the application that they test.
|
||||||
|
let app = XCUIApplication()
|
||||||
|
app.launch()
|
||||||
|
|
||||||
|
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||||
|
// XCUIAutomation Documentation
|
||||||
|
// https://developer.apple.com/documentation/xcuiautomation
|
||||||
|
}
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
func testLaunchPerformance() throws {
|
||||||
|
// This measures how long it takes to launch your application.
|
||||||
|
measure(metrics: [XCTApplicationLaunchMetric()]) {
|
||||||
|
XCUIApplication().launch()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user