Rebrand from Casera/MyCrib to honeyDue
Total rebrand across KMM project: - Kotlin package: com.example.casera -> com.tt.honeyDue (dirs + declarations) - Gradle: rootProject.name, namespace, applicationId - Android: manifest, strings.xml (all languages), widget resources - iOS: pbxproj bundle IDs, Info.plist, entitlements, xcconfig - iOS directories: Casera/ -> HoneyDue/, CaseraTests/ -> HoneyDueTests/, etc. - Swift source: all class/struct/enum renames - Deep links: casera:// -> honeydue://, .casera -> .honeydue - App icons replaced with honeyDue honeycomb icon - Domains: casera.treytartt.com -> honeyDue.treytartt.com - Bundle IDs: com.tt.casera -> com.tt.honeyDue - Database table names preserved Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -81,7 +81,7 @@ static let cancelButton = "Alert.CancelButton"
|
||||
1. **`iosApp/Helpers/AccessibilityIdentifiers.swift`**
|
||||
- Renamed 6 cancel button identifiers to be context-specific
|
||||
|
||||
2. **`iosApp/MyCribTests/ComprehensiveResidenceTests.swift`**
|
||||
2. **`iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift`**
|
||||
- Updated reference from `Residence.cancelButton` → `Residence.formCancelButton`
|
||||
|
||||
## Usage Examples
|
||||
@@ -139,7 +139,7 @@ Button("Cancel Task") { }
|
||||
The file should now compile without errors. To verify:
|
||||
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
xcodebuild -project iosApp.xcodeproj -scheme iosApp -destination 'generic/platform=iOS Simulator' clean build
|
||||
```
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<dict>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.com.tt.casera.CaseraDev</string>
|
||||
<string>group.com.tt.honeyDue.HoneyDueDev</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
"testTargets" : [
|
||||
{
|
||||
"skippedTests" : [
|
||||
"CaseraUITests",
|
||||
"CaseraUITests\/testExample()",
|
||||
"CaseraUITests\/testLaunchPerformance()",
|
||||
"CaseraUITestsLaunchTests",
|
||||
"CaseraUITestsLaunchTests\/testLaunch()",
|
||||
"HoneyDueUITests",
|
||||
"HoneyDueUITests\/testExample()",
|
||||
"HoneyDueUITests\/testLaunchPerformance()",
|
||||
"HoneyDueUITestsLaunchTests",
|
||||
"HoneyDueUITestsLaunchTests\/testLaunch()",
|
||||
"SimpleLoginTest",
|
||||
"SimpleLoginTest\/testAppLaunchesAndShowsLoginScreen()",
|
||||
"SimpleLoginTest\/testCanTypeInLoginFields()"
|
||||
@@ -26,7 +26,7 @@
|
||||
"target" : {
|
||||
"containerPath" : "container:iosApp.xcodeproj",
|
||||
"identifier" : "1CBF1BEC2ECD9768001BF56C",
|
||||
"name" : "CaseraUITests"
|
||||
"name" : "HoneyDueUITests"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
TEAM_ID=
|
||||
|
||||
PRODUCT_NAME=MyCrib
|
||||
PRODUCT_BUNDLE_IDENTIFIER=com.example.mycrib.MyCrib$(TEAM_ID)
|
||||
PRODUCT_NAME=honeyDue
|
||||
PRODUCT_BUNDLE_IDENTIFIER=com.tt.honeyDue.HoneyDue$(TEAM_ID)
|
||||
|
||||
CURRENT_PROJECT_VERSION=1
|
||||
MARKETING_VERSION=1.0
|
||||
@@ -1,7 +1,7 @@
|
||||
# MyCrib iOS Design System
|
||||
# HoneyDue iOS Design System
|
||||
|
||||
## Overview
|
||||
This document outlines the modern, sleek design system implemented for the MyCrib iOS app.
|
||||
This document outlines the modern, sleek design system implemented for the HoneyDue iOS app.
|
||||
|
||||
## Design Philosophy
|
||||
- **Modern & Clean**: Minimalist approach with ample white space
|
||||
|
||||
@@ -8,21 +8,21 @@ When compiling tests, you're seeing:
|
||||
No such module 'iosApp'
|
||||
```
|
||||
|
||||
This means the test target (`MyCribTests`) is not properly configured to access the main app target (`iosApp`).
|
||||
This means the test target (`HoneyDueTests`) is not properly configured to access the main app target (`iosApp`).
|
||||
|
||||
## Solution: Configure Test Target in Xcode
|
||||
|
||||
### Step 1: Open Xcode Project
|
||||
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
open iosApp.xcodeproj
|
||||
```
|
||||
|
||||
### Step 2: Add Target Dependency
|
||||
|
||||
1. **Select the project** in the Project Navigator (top item, blue icon)
|
||||
2. **Select `MyCribTests` target** in the targets list (middle column)
|
||||
2. **Select `HoneyDueTests` target** in the targets list (middle column)
|
||||
3. **Go to "Build Phases" tab** (top of editor)
|
||||
4. **Expand "Dependencies" section**
|
||||
5. **Click the "+" button** under Dependencies
|
||||
@@ -31,7 +31,7 @@ open iosApp.xcodeproj
|
||||
|
||||
### Step 3: Configure Test Host
|
||||
|
||||
1. Still in **`MyCribTests` target** → **Build Settings** tab
|
||||
1. Still in **`HoneyDueTests` target** → **Build Settings** tab
|
||||
2. **Search for "Test Host"**
|
||||
3. Set **Test Host** to:
|
||||
```
|
||||
@@ -57,7 +57,7 @@ open iosApp.xcodeproj
|
||||
2. Go to **Build Settings** tab
|
||||
3. **Search for "Product Module Name"**
|
||||
4. Verify it says **`iosApp`**
|
||||
- If it's different (e.g., "MyCrib"), you need to update your imports
|
||||
- If it's different (e.g., "HoneyDue"), you need to update your imports
|
||||
|
||||
### Step 6: Clean and Build
|
||||
|
||||
@@ -84,12 +84,12 @@ If you prefer command-line configuration, you can use `xcodebuild` with PlistBud
|
||||
|
||||
### What It Should Look Like:
|
||||
|
||||
**MyCribTests Target → Build Phases → Dependencies:**
|
||||
**HoneyDueTests Target → Build Phases → Dependencies:**
|
||||
```
|
||||
✅ iosApp (target)
|
||||
```
|
||||
|
||||
**MyCribTests Target → Build Settings:**
|
||||
**HoneyDueTests Target → Build Settings:**
|
||||
```
|
||||
Test Host: $(BUILT_PRODUCTS_DIR)/iosApp.app/iosApp
|
||||
Bundle Loader: $(TEST_HOST)
|
||||
@@ -140,7 +140,7 @@ Product Module Name: iosApp
|
||||
|
||||
After making changes, verify:
|
||||
|
||||
- [ ] `MyCribTests` target has `iosApp` in Dependencies
|
||||
- [ ] `HoneyDueTests` target has `iosApp` in Dependencies
|
||||
- [ ] Test Host is set to `$(BUILT_PRODUCTS_DIR)/iosApp.app/iosApp`
|
||||
- [ ] Bundle Loader is set to `$(TEST_HOST)`
|
||||
- [ ] `iosApp` target has "Enable Testability" = YES (Debug)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Fix MyCribTests Target Configuration
|
||||
# Fix HoneyDueTests Target Configuration
|
||||
|
||||
## The Problem
|
||||
|
||||
The tests are failing with "No target application path specified" because the test target's `TEST_HOST` setting is hardcoded to a wrong path:
|
||||
|
||||
```
|
||||
TEST_HOST = /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/build/Release-iphoneos/MyCrib.app//MyCrib
|
||||
TEST_HOST = /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/build/Release-iphoneos/HoneyDue.app//HoneyDue
|
||||
```
|
||||
|
||||
This path doesn't exist when running tests in Debug mode on the simulator.
|
||||
@@ -14,13 +14,13 @@ This path doesn't exist when running tests in Debug mode on the simulator.
|
||||
|
||||
1. **Open the project in Xcode:**
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
open iosApp.xcodeproj
|
||||
```
|
||||
|
||||
2. **Select the MyCribTests target:**
|
||||
2. **Select the HoneyDueTests target:**
|
||||
- Click on the project in the Project Navigator (blue icon at top)
|
||||
- Select **MyCribTests** from the TARGETS list
|
||||
- Select **HoneyDueTests** from the TARGETS list
|
||||
|
||||
3. **Go to Build Settings:**
|
||||
- Click the **Build Settings** tab
|
||||
@@ -34,11 +34,11 @@ This path doesn't exist when running tests in Debug mode on the simulator.
|
||||
- Double-click the value field
|
||||
- Change from:
|
||||
```
|
||||
/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/build/Release-iphoneos/MyCrib.app//MyCrib
|
||||
/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/build/Release-iphoneos/HoneyDue.app//HoneyDue
|
||||
```
|
||||
- To:
|
||||
```
|
||||
$(BUILT_PRODUCTS_DIR)/MyCrib.app/MyCrib
|
||||
$(BUILT_PRODUCTS_DIR)/HoneyDue.app/HoneyDue
|
||||
```
|
||||
- Press Enter
|
||||
|
||||
@@ -63,12 +63,12 @@ This path doesn't exist when running tests in Debug mode on the simulator.
|
||||
After making these changes, run:
|
||||
|
||||
```bash
|
||||
xcodebuild -project iosApp.xcodeproj -target MyCribTests -showBuildSettings | grep TEST_HOST
|
||||
xcodebuild -project iosApp.xcodeproj -target HoneyDueTests -showBuildSettings | grep TEST_HOST
|
||||
```
|
||||
|
||||
Should output:
|
||||
```
|
||||
TEST_HOST = $(BUILT_PRODUCTS_DIR)/MyCrib.app/MyCrib
|
||||
TEST_HOST = $(BUILT_PRODUCTS_DIR)/HoneyDue.app/HoneyDue
|
||||
```
|
||||
|
||||
NOT a hardcoded absolute path.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// AppIntent.swift
|
||||
// Casera
|
||||
// honeyDue
|
||||
//
|
||||
// Created by Trey Tartt on 11/5/25.
|
||||
//
|
||||
@@ -11,8 +11,8 @@ import Foundation
|
||||
|
||||
// MARK: - Widget Configuration Intent
|
||||
struct ConfigurationAppIntent: WidgetConfigurationIntent {
|
||||
static var title: LocalizedStringResource { "Casera Configuration" }
|
||||
static var description: IntentDescription { "Configure your Casera widget" }
|
||||
static var title: LocalizedStringResource { "honeyDue Configuration" }
|
||||
static var description: IntentDescription { "Configure your honeyDue widget" }
|
||||
}
|
||||
|
||||
// MARK: - Complete Task Intent
|
||||
@@ -43,13 +43,13 @@ struct CompleteTaskIntent: AppIntent {
|
||||
// Check auth BEFORE marking pending — if auth fails the task should remain visible
|
||||
guard let token = WidgetActionManager.shared.getAuthToken() else {
|
||||
print("CompleteTaskIntent: No auth token available")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "Casera")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue")
|
||||
return .result()
|
||||
}
|
||||
|
||||
guard let baseURL = WidgetActionManager.shared.getAPIBaseURL() else {
|
||||
print("CompleteTaskIntent: No API base URL available")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "Casera")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue")
|
||||
return .result()
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ struct CompleteTaskIntent: AppIntent {
|
||||
WidgetActionManager.shared.markTaskPendingCompletion(taskId: taskId)
|
||||
|
||||
// Reload widget immediately to update task list and stats
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "Casera")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue")
|
||||
|
||||
// Make API call to complete the task
|
||||
let success = await WidgetAPIClient.quickCompleteTask(
|
||||
@@ -76,7 +76,7 @@ struct CompleteTaskIntent: AppIntent {
|
||||
}
|
||||
|
||||
// Reload widget
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "Casera")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue")
|
||||
|
||||
return .result()
|
||||
}
|
||||
@@ -147,7 +147,7 @@ struct OpenTaskIntent: AppIntent {
|
||||
final class WidgetActionManager {
|
||||
static let shared = WidgetActionManager()
|
||||
|
||||
private let appGroupIdentifier = "group.com.tt.casera.CaseraDev"
|
||||
private let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev"
|
||||
private let pendingTasksFileName = "widget_pending_tasks.json"
|
||||
private let tokenKey = "widget_auth_token"
|
||||
private let dirtyFlagKey = "widget_tasks_dirty"
|
||||
@@ -282,7 +282,7 @@ final class WidgetActionManager {
|
||||
savePendingTaskStates(pendingTasks)
|
||||
|
||||
// Also reload widget
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "Casera")
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue")
|
||||
}
|
||||
|
||||
/// Clear all pending states
|
||||
BIN
iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/icon.png
Normal file
BIN
iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// Casera.swift
|
||||
// Casera
|
||||
// honeyDue.swift
|
||||
// honeyDue
|
||||
//
|
||||
// Created by Trey Tartt on 11/5/25.
|
||||
//
|
||||
@@ -110,7 +110,7 @@ class CacheManager {
|
||||
}
|
||||
}
|
||||
|
||||
private static let appGroupIdentifier = "group.com.tt.casera.CaseraDev"
|
||||
private static let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev"
|
||||
private static let tasksFileName = "widget_tasks.json"
|
||||
|
||||
/// Get the shared App Group container URL
|
||||
@@ -242,7 +242,7 @@ struct SimpleEntry: TimelineEntry {
|
||||
}
|
||||
}
|
||||
|
||||
struct CaseraEntryView : View {
|
||||
struct HoneyDueEntryView : View {
|
||||
var entry: Provider.Entry
|
||||
@Environment(\.widgetFamily) var family
|
||||
|
||||
@@ -754,12 +754,12 @@ struct OrganicStatPillWidget: View {
|
||||
}
|
||||
}
|
||||
|
||||
struct Casera: Widget {
|
||||
let kind: String = "Casera"
|
||||
struct honeyDue: Widget {
|
||||
let kind: String = "honeyDue"
|
||||
|
||||
var body: some WidgetConfiguration {
|
||||
AppIntentConfiguration(kind: kind, intent: ConfigurationAppIntent.self, provider: Provider()) { entry in
|
||||
CaseraEntryView(entry: entry)
|
||||
HoneyDueEntryView(entry: entry)
|
||||
.containerBackground(for: .widget) {
|
||||
// Organic warm gradient background
|
||||
ZStack {
|
||||
@@ -777,7 +777,7 @@ struct Casera: Widget {
|
||||
}
|
||||
}
|
||||
}
|
||||
.configurationDisplayName("Casera Tasks")
|
||||
.configurationDisplayName("honeyDue Tasks")
|
||||
.description("View and complete your upcoming tasks.")
|
||||
.supportedFamilies([.systemSmall, .systemMedium, .systemLarge])
|
||||
}
|
||||
@@ -785,7 +785,7 @@ struct Casera: Widget {
|
||||
|
||||
// MARK: - Previews
|
||||
#Preview(as: .systemSmall) {
|
||||
Casera()
|
||||
honeyDue()
|
||||
} timeline: {
|
||||
SimpleEntry(
|
||||
date: .now,
|
||||
@@ -878,7 +878,7 @@ struct Casera: Widget {
|
||||
}
|
||||
|
||||
#Preview(as: .systemMedium) {
|
||||
Casera()
|
||||
honeyDue()
|
||||
} timeline: {
|
||||
SimpleEntry(
|
||||
date: .now,
|
||||
@@ -1010,7 +1010,7 @@ struct Casera: Widget {
|
||||
}
|
||||
|
||||
#Preview(as: .systemLarge) {
|
||||
Casera()
|
||||
honeyDue()
|
||||
} timeline: {
|
||||
SimpleEntry(
|
||||
date: .now,
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// CaseraBundle.swift
|
||||
// Casera
|
||||
// HoneyDueBundle.swift
|
||||
// honeyDue
|
||||
//
|
||||
// Created by Trey Tartt on 11/5/25.
|
||||
//
|
||||
@@ -9,8 +9,8 @@ import WidgetKit
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct CaseraBundle: WidgetBundle {
|
||||
struct HoneyDueBundle: WidgetBundle {
|
||||
var body: some Widget {
|
||||
Casera()
|
||||
honeyDue()
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import SwiftUI
|
||||
|
||||
// MARK: - Centered Icon View
|
||||
|
||||
struct CaseraIconView: View {
|
||||
struct HoneyDueIconView: View {
|
||||
var houseProgress: CGFloat = 1.0
|
||||
var windowScale: CGFloat = 1.0
|
||||
var checkmarkScale: CGFloat = 1.0
|
||||
@@ -160,7 +160,7 @@ struct FullIntroAnimationView: View {
|
||||
@State private var checkScale: CGFloat = 0
|
||||
|
||||
var body: some View {
|
||||
CaseraIconView(
|
||||
HoneyDueIconView(
|
||||
houseProgress: houseProgress,
|
||||
windowScale: windowScale,
|
||||
checkmarkScale: checkScale
|
||||
@@ -188,7 +188,7 @@ struct PulsatingCheckmarkView: View {
|
||||
@State private var checkScale: CGFloat = 1.0
|
||||
|
||||
var body: some View {
|
||||
CaseraIconView(checkmarkScale: checkScale)
|
||||
HoneyDueIconView(checkmarkScale: checkScale)
|
||||
.onAppear {
|
||||
withAnimation(.easeInOut(duration: 0.5).repeatForever(autoreverses: true)) {
|
||||
checkScale = 1.3
|
||||
@@ -202,7 +202,7 @@ struct PulsingIconView: View {
|
||||
var backgroundColor: Color? = nil
|
||||
|
||||
var body: some View {
|
||||
CaseraIconView(backgroundColor: backgroundColor)
|
||||
HoneyDueIconView(backgroundColor: backgroundColor)
|
||||
.scaleEffect(scale)
|
||||
.onAppear {
|
||||
withAnimation(.easeInOut(duration: 0.8).repeatForever(autoreverses: true)) {
|
||||
@@ -217,7 +217,7 @@ struct BouncyIconView: View {
|
||||
@State private var scale: CGFloat = 0.5
|
||||
|
||||
var body: some View {
|
||||
CaseraIconView()
|
||||
HoneyDueIconView()
|
||||
.scaleEffect(scale)
|
||||
.offset(y: offset)
|
||||
.onAppear {
|
||||
@@ -233,7 +233,7 @@ struct WigglingIconView: View {
|
||||
@State private var angle: Double = 0
|
||||
|
||||
var body: some View {
|
||||
CaseraIconView()
|
||||
HoneyDueIconView()
|
||||
.rotationEffect(.degrees(angle))
|
||||
.onAppear {
|
||||
withAnimation(.easeInOut(duration: 0.1).repeatForever(autoreverses: true)) {
|
||||
@@ -253,7 +253,7 @@ struct PlaygroundContentView: View {
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Text("MyCrib Icon Animations")
|
||||
Text("HoneyDue Icon Animations")
|
||||
.font(.title)
|
||||
.fontWeight(.bold)
|
||||
|
||||
@@ -310,7 +310,7 @@ struct PlaygroundContentView: View {
|
||||
case 2: PulsingIconView()
|
||||
case 3: BouncyIconView()
|
||||
case 4: WigglingIconView()
|
||||
default: CaseraIconView()
|
||||
default: HoneyDueIconView()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Casera Preview</string>
|
||||
<string>honeyDue Preview</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -24,7 +24,7 @@
|
||||
<dict>
|
||||
<key>QLSupportedContentTypes</key>
|
||||
<array>
|
||||
<string>com.casera.contractor</string>
|
||||
<string>com.honeydue.contractor</string>
|
||||
</array>
|
||||
<key>QLSupportsSearchableItems</key>
|
||||
<false/>
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// PreviewProvider.swift
|
||||
// CaseraQLPreview
|
||||
// honeyDueQLPreview
|
||||
//
|
||||
// Created by Trey Tartt on 12/6/25.
|
||||
//
|
||||
@@ -5,7 +5,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
|
||||
// MARK: - Types
|
||||
|
||||
/// Represents the type of .casera package
|
||||
/// Represents the type of .honeydue package
|
||||
private enum PackageType {
|
||||
case contractor
|
||||
case residence
|
||||
@@ -45,7 +45,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
label.font = .systemFont(ofSize: 15, weight: .medium)
|
||||
label.textColor = .secondaryLabel
|
||||
label.textAlignment = .center
|
||||
label.text = "Casera Contractor File"
|
||||
label.text = "honeyDue Contractor File"
|
||||
return label
|
||||
}()
|
||||
|
||||
@@ -80,7 +80,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
label.textColor = UIColor(red: 7/255, green: 160/255, blue: 195/255, alpha: 1)
|
||||
label.textAlignment = .center
|
||||
label.numberOfLines = 0
|
||||
label.text = "Tap the share button below, then select \"Casera\" to import this contractor."
|
||||
label.text = "Tap the share button below, then select \"honeyDue\" to import this contractor."
|
||||
return label
|
||||
}()
|
||||
|
||||
@@ -104,7 +104,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
print("CaseraQLPreview: viewDidLoad called")
|
||||
print("honeyDueQLPreview: viewDidLoad called")
|
||||
setupUI()
|
||||
}
|
||||
|
||||
@@ -196,9 +196,9 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
// MARK: - QLPreviewingController
|
||||
|
||||
func preparePreviewOfFile(at url: URL) async throws {
|
||||
print("CaseraQLPreview: preparePreviewOfFile called with URL: \(url)")
|
||||
print("honeyDueQLPreview: preparePreviewOfFile called with URL: \(url)")
|
||||
|
||||
// Parse the .casera file — single Codable pass to detect type, then decode
|
||||
// Parse the .honeydue file — single Codable pass to detect type, then decode
|
||||
let data = try Data(contentsOf: url)
|
||||
let decoder = JSONDecoder()
|
||||
|
||||
@@ -209,7 +209,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
|
||||
let residence = try decoder.decode(ResidencePreviewData.self, from: data)
|
||||
self.residenceData = residence
|
||||
print("CaseraQLPreview: Parsed residence: \(residence.residenceName)")
|
||||
print("honeyDueQLPreview: Parsed residence: \(residence.residenceName)")
|
||||
|
||||
await MainActor.run {
|
||||
self.updateUIForResidence(with: residence)
|
||||
@@ -219,7 +219,7 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
|
||||
let contractor = try decoder.decode(ContractorPreviewData.self, from: data)
|
||||
self.contractorData = contractor
|
||||
print("CaseraQLPreview: Parsed contractor: \(contractor.name)")
|
||||
print("honeyDueQLPreview: Parsed contractor: \(contractor.name)")
|
||||
|
||||
await MainActor.run {
|
||||
self.updateUIForContractor(with: contractor)
|
||||
@@ -233,8 +233,8 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
iconImageView.image = UIImage(systemName: "person.crop.rectangle.stack", withConfiguration: config)
|
||||
|
||||
titleLabel.text = contractor.name
|
||||
subtitleLabel.text = "Casera Contractor File"
|
||||
instructionLabel.text = "Tap the share button below, then select \"Casera\" to import this contractor."
|
||||
subtitleLabel.text = "honeyDue Contractor File"
|
||||
instructionLabel.text = "Tap the share button below, then select \"honeyDue\" to import this contractor."
|
||||
|
||||
// Clear existing details
|
||||
detailsStackView.arrangedSubviews.forEach { $0.removeFromSuperview() }
|
||||
@@ -268,8 +268,8 @@ class PreviewViewController: UIViewController, QLPreviewingController {
|
||||
iconImageView.image = UIImage(systemName: "house.fill", withConfiguration: config)
|
||||
|
||||
titleLabel.text = residence.residenceName
|
||||
subtitleLabel.text = "Casera Residence Invite"
|
||||
instructionLabel.text = "Tap the share button below, then select \"Casera\" to join this residence."
|
||||
subtitleLabel.text = "honeyDue Residence Invite"
|
||||
instructionLabel.text = "Tap the share button below, then select \"honeyDue\" to join this residence."
|
||||
|
||||
// Clear existing details
|
||||
detailsStackView.arrangedSubviews.forEach { $0.removeFromSuperview() }
|
||||
@@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Casera Thumbnail</string>
|
||||
<string>honeyDue Thumbnail</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -24,7 +24,7 @@
|
||||
<dict>
|
||||
<key>QLSupportedContentTypes</key>
|
||||
<array>
|
||||
<string>com.casera.contractor</string>
|
||||
<string>com.honeydue.contractor</string>
|
||||
</array>
|
||||
<key>QLThumbnailMinimumDimension</key>
|
||||
<integer>0</integer>
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// ThumbnailProvider.swift
|
||||
// CaseraQLThumbnail
|
||||
// honeyDueQLThumbnail
|
||||
//
|
||||
// Created by Trey Tartt on 12/6/25.
|
||||
//
|
||||
@@ -10,7 +10,7 @@ import QuickLookThumbnailing
|
||||
|
||||
class ThumbnailProvider: QLThumbnailProvider {
|
||||
|
||||
/// Represents the type of .casera package
|
||||
/// Represents the type of .honeydue package
|
||||
private enum PackageType {
|
||||
case contractor
|
||||
case residence
|
||||
@@ -1,13 +1,13 @@
|
||||
//
|
||||
// CaseraTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests.swift
|
||||
// honeyDueTests
|
||||
//
|
||||
// Created by Trey Tartt on 11/12/25.
|
||||
//
|
||||
|
||||
import Testing
|
||||
|
||||
struct CaseraTests {
|
||||
struct honeyDueTests {
|
||||
|
||||
@Test func example() async throws {
|
||||
// Write your test here and use APIs like `#expect(...)` to check expected conditions.
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// DataLayerTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for the DATA layer domain (DATA-001 through DATA-007).
|
||||
// Exercises Kotlin DataManager directly from Swift without launching the app.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
import ComposeApp
|
||||
|
||||
// MARK: - Serialized Parent Suite (prevents concurrent DataManager mutations)
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// DataManagerExtendedTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Extended unit tests covering TASK-005, TASK-012, THEME-001, TCOMP-003, and QA-002.
|
||||
//
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
import ComposeApp
|
||||
|
||||
// MARK: - Extension of DataLayerTests (serialized parent in DataLayerTests.swift)
|
||||
@@ -1,13 +1,13 @@
|
||||
//
|
||||
// DateUtilsTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for DateUtils formatting, parsing, and timezone utilities.
|
||||
//
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - DateUtils.formatDate Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// DocumentHelpersTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for DocumentTypeHelper and DocumentCategoryHelper.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - DocumentTypeHelper Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// DoubleExtensionsTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for Double, Int number formatting extensions.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - Double.toCurrency Tests
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
//
|
||||
// ErrorMessageParserTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for ErrorMessageParser error code mapping, network error detection,
|
||||
// and message parsing logic.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - API Error Code Mapping Tests
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
//
|
||||
// PasswordResetViewModelTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for PasswordResetViewModel navigation, state management,
|
||||
// and client-side validation (no network calls).
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - PasswordResetStep Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// StringExtensionsTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for String and Optional<String> extensions.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - isBlank Tests
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// SubscriptionGatingTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for SubscriptionCacheWrapper feature gating logic:
|
||||
// currentTier, shouldShowUpgradePrompt, canShareResidence, canShareContractor.
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
import ComposeApp
|
||||
|
||||
// MARK: - Helpers
|
||||
@@ -1,13 +1,13 @@
|
||||
//
|
||||
// TaskMetricsTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for WidgetDataManager.TaskMetrics and task categorization logic.
|
||||
//
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - Column Name Constants Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// ThemeIDTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for ThemeID enum properties and round-tripping.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - ThemeID Enum Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// ValidationHelpersTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for ValidationHelpers, FormValidator, and related types.
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - ValidationResult Tests
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//
|
||||
// ValidationRulesTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for ValidationError and ValidationRules (distinct from ValidationHelpers).
|
||||
//
|
||||
|
||||
import Testing
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - ValidationError errorDescription Tests
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
// WidgetActionTests.swift
|
||||
// CaseraTests
|
||||
// honeyDueTests
|
||||
//
|
||||
// Unit tests for WidgetDataManager.WidgetAction (Codable, Equatable, accessors)
|
||||
// and WidgetDataManager.parseDate static helper.
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import Testing
|
||||
import Foundation
|
||||
@testable import Casera
|
||||
@testable import honeyDue
|
||||
|
||||
// MARK: - WidgetAction Codable Tests
|
||||
|
||||
@@ -41,7 +41,7 @@ Required infra:
|
||||
|
||||
## Suite1
|
||||
Detailed plan already captured in:
|
||||
- `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md`
|
||||
- `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md`
|
||||
|
||||
### Failing tests
|
||||
- `test07_successfulRegistrationAndVerification`
|
||||
@@ -1,9 +1,9 @@
|
||||
# Casera iOS UI Testing Architecture
|
||||
# honeyDue iOS UI Testing Architecture
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
CaseraUITests/
|
||||
HoneyDueUITests/
|
||||
├── PageObjects/ # Screen abstractions (Page Object pattern)
|
||||
│ ├── BaseScreen.swift # Common wait/assert utilities
|
||||
│ ├── LoginScreen.swift # Login screen elements and actions
|
||||
@@ -53,16 +53,16 @@ All interactive elements must have identifiers defined in `AccessibilityIdentifi
|
||||
```bash
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:CaseraUITests/SmokeTests \
|
||||
-only-testing:CaseraUITests/AuthCriticalPathTests \
|
||||
-only-testing:CaseraUITests/NavigationCriticalPathTests
|
||||
-only-testing:HoneyDueUITests/SmokeTests \
|
||||
-only-testing:HoneyDueUITests/AuthCriticalPathTests \
|
||||
-only-testing:HoneyDueUITests/NavigationCriticalPathTests
|
||||
```
|
||||
|
||||
### Full Regression (nightly)
|
||||
```bash
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:CaseraUITests
|
||||
-only-testing:HoneyDueUITests
|
||||
```
|
||||
|
||||
## Flake Reduction
|
||||
@@ -4,8 +4,8 @@ import XCTest
|
||||
///
|
||||
/// SETUP REQUIREMENTS:
|
||||
/// This test suite requires the app to be UNINSTALLED before running.
|
||||
/// Add a Pre-action script to the CaseraUITests scheme (Edit Scheme → Test → Pre-actions):
|
||||
/// /usr/bin/xcrun simctl uninstall booted com.tt.casera.CaseraDev
|
||||
/// Add a Pre-action script to the honeyDueUITests scheme (Edit Scheme → Test → Pre-actions):
|
||||
/// /usr/bin/xcrun simctl uninstall booted com.tt.honeyDue.HoneyDueDev
|
||||
/// exit 0
|
||||
///
|
||||
/// There is ONE fresh-install test that runs the complete onboarding flow.
|
||||
@@ -1,7 +1,7 @@
|
||||
import XCTest
|
||||
|
||||
/// Comprehensive End-to-End Test Suite
|
||||
/// Closely mirrors TestIntegration_ComprehensiveE2E from myCribAPI-go/internal/integration/integration_test.go
|
||||
/// Closely mirrors TestIntegration_ComprehensiveE2E from honeyDueAPI-go/internal/integration/integration_test.go
|
||||
///
|
||||
/// This test creates a complete scenario:
|
||||
/// 1. Registers a new user and verifies login
|
||||
@@ -1,7 +1,7 @@
|
||||
import XCTest
|
||||
|
||||
/// Comprehensive End-to-End Integration Tests
|
||||
/// Mirrors the backend integration tests in myCribAPI-go/internal/integration/integration_test.go
|
||||
/// Mirrors the backend integration tests in honeyDueAPI-go/internal/integration/integration_test.go
|
||||
///
|
||||
/// This test suite covers:
|
||||
/// 1. Full authentication flow (register, login, logout)
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
## Overview
|
||||
|
||||
Refactor the MyCrib iOS codebase to improve adherence to SOLID principles and DRY patterns. This plan targets ~1,500 lines of code reduction while significantly improving testability and maintainability.
|
||||
Refactor the HoneyDue iOS codebase to improve adherence to SOLID principles and DRY patterns. This plan targets ~1,500 lines of code reduction while significantly improving testability and maintainability.
|
||||
|
||||
**Scope**: `MyCribKMM/iosApp/iosApp/`
|
||||
**Scope**: `HoneyDueKMM/iosApp/iosApp/`
|
||||
**Estimated Effort**: 4-5 focused sessions
|
||||
**Risk Level**: Medium (ViewModels are central to app functionality)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ The UI tests you're seeing fail are **failing for the right reason** - they cann
|
||||
- Ready to be used in views
|
||||
|
||||
3. ✅ **Fixed test compilation issues**
|
||||
- Added `@testable import MyCrib` to all test files
|
||||
- Added `@testable import HoneyDue` to all test files
|
||||
- Fixed ambiguous type references
|
||||
- Tests compile successfully
|
||||
|
||||
@@ -260,7 +260,7 @@ xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribTests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials
|
||||
-only-testing:HoneyDueTests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials
|
||||
```
|
||||
|
||||
## Why Tests Are Failing Now
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# MyCrib iOS UI Tests
|
||||
# HoneyDue iOS UI Tests
|
||||
|
||||
## ✅ Status: WORKING
|
||||
|
||||
@@ -85,25 +85,25 @@ XCTAssertTrue(addButton.waitForExistence(timeout: 5),
|
||||
|
||||
### In Xcode (Recommended)
|
||||
1. Open `iosApp.xcodeproj`
|
||||
2. Select **MyCribUITests** scheme
|
||||
2. Select **HoneyDueUITests** scheme
|
||||
3. Press `Cmd+U` to run all tests
|
||||
4. Or click diamond icon next to individual test to run just that one
|
||||
|
||||
### Command Line
|
||||
```bash
|
||||
# Run all UI tests
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17'
|
||||
|
||||
# Run specific test file
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribUITests/AuthenticationTests
|
||||
-only-testing:HoneyDueUITests/AuthenticationTests
|
||||
|
||||
# Run specific test
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribUITests/AuthenticationTests/testLoginWithValidCredentials
|
||||
-only-testing:HoneyDueUITests/AuthenticationTests/testLoginWithValidCredentials
|
||||
```
|
||||
|
||||
## 📝 Test Credentials
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# MyCrib iOS UI Tests - Complete Rewrite Summary
|
||||
# HoneyDue iOS UI Tests - Complete Rewrite Summary
|
||||
|
||||
## ✅ Status: BUILD SUCCEEDED
|
||||
|
||||
@@ -152,10 +152,10 @@ All UI tests have been completely rewritten from scratch with comprehensive edge
|
||||
- `takeScreenshot(named:)` - Named screenshots
|
||||
|
||||
### 5. **AccessibilityIdentifiers.swift** (213 lines)
|
||||
Copied to MyCribUITests folder for UI test access without `@testable import`.
|
||||
Copied to HoneyDueUITests folder for UI test access without `@testable import`.
|
||||
|
||||
### 6. **MyCribUITests.swift & MyCribUITestsLaunchTests.swift**
|
||||
Updated to remove `@testable import MyCrib` (UI tests run in separate process).
|
||||
### 6. **HoneyDueUITests.swift & HoneyDueUITestsLaunchTests.swift**
|
||||
Updated to remove `@testable import HoneyDue` (UI tests run in separate process).
|
||||
|
||||
## 🗑️ Removed Files
|
||||
- AuthenticationUITests.swift (old, had @testable import)
|
||||
@@ -231,26 +231,26 @@ All tests compile successfully with no errors. Only warnings are from the main a
|
||||
1. **Fix AccessibilityIdentifiers Target Membership:**
|
||||
- Open `iosApp.xcodeproj` in Xcode
|
||||
- Select `iosApp/Helpers/AccessibilityIdentifiers.swift` in Project Navigator
|
||||
- In File Inspector (right panel), **uncheck** "MyCribUITests" from Target Membership
|
||||
- In File Inspector (right panel), **uncheck** "HoneyDueUITests" from Target Membership
|
||||
- Only `iosApp` should be checked
|
||||
- The copy in `MyCribUITests/AccessibilityIdentifiers.swift` should have "MyCribUITests" checked
|
||||
- The copy in `HoneyDueUITests/AccessibilityIdentifiers.swift` should have "HoneyDueUITests" checked
|
||||
|
||||
2. **Run Tests:**
|
||||
```bash
|
||||
# Run all UI tests
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribUITests
|
||||
-only-testing:HoneyDueUITests
|
||||
|
||||
# Run specific test class
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribUITests/ComprehensiveAuthenticationTests
|
||||
-only-testing:HoneyDueUITests/ComprehensiveAuthenticationTests
|
||||
|
||||
# Run specific test
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
||||
-only-testing:MyCribUITests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials
|
||||
-only-testing:HoneyDueUITests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials
|
||||
```
|
||||
|
||||
## 🎯 Test Philosophy
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# MyCrib iOS UI Test Strategy
|
||||
# HoneyDue iOS UI Test Strategy
|
||||
|
||||
## Current Status: REBUILDING FROM SCRATCH
|
||||
|
||||
@@ -50,12 +50,12 @@ Once SimpleLoginTest works, we'll build:
|
||||
|
||||
### In Xcode (Recommended)
|
||||
1. Open `iosApp.xcodeproj`
|
||||
2. Select MyCribUITests scheme
|
||||
2. Select HoneyDueUITests scheme
|
||||
3. Press Cmd+U or click diamond icon next to test
|
||||
|
||||
### Command Line
|
||||
```bash
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17'
|
||||
```
|
||||
|
||||
|
||||
@@ -37,13 +37,13 @@ This is the fastest way to diagnose the issue:
|
||||
|
||||
1. **Open the project in Xcode:**
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
open iosApp.xcodeproj
|
||||
```
|
||||
|
||||
2. **Select the Test target and a simulator:**
|
||||
- Select "iPhone 17 Pro" simulator from the device dropdown
|
||||
- Select the `MyCribTests` scheme
|
||||
- Select the `HoneyDueTests` scheme
|
||||
|
||||
3. **Use UI Recording to see what elements exist:**
|
||||
- Open `DebugLoginTest.swift`
|
||||
@@ -84,12 +84,12 @@ Then run tests and check if "LoginView appeared" prints in console.
|
||||
The `DebugLoginTest.swift` is already simplified. Try running it:
|
||||
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
|
||||
-only-testing:MyCribTests/DebugLoginTest/testAppLaunches
|
||||
-only-testing:HoneyDueTests/DebugLoginTest/testAppLaunches
|
||||
```
|
||||
|
||||
Check if it passes (meaning the app launches and has SOME UI elements).
|
||||
@@ -98,17 +98,17 @@ Check if it passes (meaning the app launches and has SOME UI elements).
|
||||
|
||||
### 1. AccessibilityIdentifiers Not in Test Target
|
||||
|
||||
Verify that `AccessibilityIdentifiers.swift` is included in the **iosApp target** (not MyCribTests):
|
||||
Verify that `AccessibilityIdentifiers.swift` is included in the **iosApp target** (not HoneyDueTests):
|
||||
- In Xcode, select `Helpers/AccessibilityIdentifiers.swift`
|
||||
- In File Inspector (right panel), check "Target Membership"
|
||||
- ✅ `iosApp` should be checked
|
||||
- ❌ `MyCribTests` should NOT be checked
|
||||
- ❌ `HoneyDueTests` should NOT be checked
|
||||
|
||||
### 2. LoginView Not Using Correct Identifiers
|
||||
|
||||
Double-check `Login/LoginView.swift`:
|
||||
```bash
|
||||
grep "accessibilityIdentifier" /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift
|
||||
grep "accessibilityIdentifier" /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift
|
||||
```
|
||||
|
||||
Should output:
|
||||
@@ -148,50 +148,50 @@ Try moving initialization to background thread or making it async.
|
||||
|
||||
```bash
|
||||
# Check if identifiers are in LoginView
|
||||
grep -c "accessibilityIdentifier" /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift
|
||||
grep -c "accessibilityIdentifier" /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift
|
||||
# Should output: 6
|
||||
|
||||
# Check if AccessibilityIdentifiers exists
|
||||
ls -la /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift
|
||||
ls -la /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift
|
||||
# Should show the file
|
||||
|
||||
# Run simplified debug test
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
xcodebuild test -project iosApp.xcodeproj -scheme iosApp \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
|
||||
-only-testing:MyCribTests/DebugLoginTest/testAppLaunches 2>&1 | grep "Test Case"
|
||||
-only-testing:HoneyDueTests/DebugLoginTest/testAppLaunches 2>&1 | grep "Test Case"
|
||||
```
|
||||
|
||||
## Expected Output When Working
|
||||
|
||||
When tests work properly, you should see:
|
||||
```
|
||||
Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' started.
|
||||
Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' started.
|
||||
Activity 'Found 1 text fields' started
|
||||
Activity 'Found 1 secure fields' started
|
||||
Activity 'Found 5 buttons' started
|
||||
Activity 'Email field exists: true' started
|
||||
Activity 'Password field exists: true' started
|
||||
Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' passed (5.234 seconds).
|
||||
Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' passed (5.234 seconds).
|
||||
```
|
||||
|
||||
Currently seeing:
|
||||
```
|
||||
Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' failed (0.540 seconds)
|
||||
Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' failed (0.540 seconds)
|
||||
```
|
||||
|
||||
The ~0.5 second failure suggests the app isn't even launching or is crashing immediately.
|
||||
|
||||
## Files Modified
|
||||
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift` - Created
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift` - Added 6 identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/RegisterView.swift` - Added 6 identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/MainTabView.swift` - Added 5 tab identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Residence/*` - Added 15+ identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Profile/ProfileTabView.swift` - Added logout identifier
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/MyCribTests/TestHelpers.swift` - Updated to use identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/MyCribTests/DebugLoginTest.swift` - Simplified debug test
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift` - Created
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift` - Added 6 identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/RegisterView.swift` - Added 6 identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/MainTabView.swift` - Added 5 tab identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Residence/*` - Added 15+ identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Profile/ProfileTabView.swift` - Added logout identifier
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/HoneyDueTests/TestHelpers.swift` - Updated to use identifiers
|
||||
- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/HoneyDueTests/DebugLoginTest.swift` - Simplified debug test
|
||||
|
||||
## Next Action
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
This guide provides step-by-step instructions for implementing comprehensive UI testing for the MyCrib iOS app using XCUITest.
|
||||
This guide provides step-by-step instructions for implementing comprehensive UI testing for the HoneyDue iOS app using XCUITest.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -18,7 +18,7 @@ This guide provides step-by-step instructions for implementing comprehensive UI
|
||||
### Current Status
|
||||
|
||||
✅ **Already Done:**
|
||||
- UI Test target exists: `MyCribTests`
|
||||
- UI Test target exists: `HoneyDueTests`
|
||||
- Base test infrastructure in place (`TestHelpers.swift`, `BaseUITest`)
|
||||
- Initial test files created
|
||||
|
||||
@@ -272,12 +272,12 @@ Here's a checklist of all views that need accessibility identifiers:
|
||||
|
||||
1. **Open the project:**
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
open iosApp.xcodeproj
|
||||
```
|
||||
|
||||
2. **Select the test target:**
|
||||
- Product → Scheme → MyCribTests
|
||||
- Product → Scheme → HoneyDueTests
|
||||
|
||||
3. **Choose a simulator:**
|
||||
- iPhone 15 Pro (recommended)
|
||||
@@ -296,27 +296,27 @@ Here's a checklist of all views that need accessibility identifiers:
|
||||
|
||||
```bash
|
||||
# Navigate to iOS app directory
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
|
||||
# Run all tests
|
||||
xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme MyCribTests \
|
||||
-scheme HoneyDueTests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0'
|
||||
|
||||
# Run specific test class
|
||||
xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme MyCribTests \
|
||||
-scheme HoneyDueTests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0' \
|
||||
-only-testing:MyCribTests/AuthenticationUITests
|
||||
-only-testing:HoneyDueTests/AuthenticationUITests
|
||||
|
||||
# Run specific test method
|
||||
xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme MyCribTests \
|
||||
-scheme HoneyDueTests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0' \
|
||||
-only-testing:MyCribTests/AuthenticationUITests/testLoginWithValidCredentials
|
||||
-only-testing:HoneyDueTests/AuthenticationUITests/testLoginWithValidCredentials
|
||||
```
|
||||
|
||||
### Test Results
|
||||
@@ -359,7 +359,7 @@ jobs:
|
||||
|
||||
- name: Start Django Backend
|
||||
run: |
|
||||
cd myCribAPI
|
||||
cd honeyDueAPI
|
||||
docker-compose up -d
|
||||
sleep 10 # Wait for backend to start
|
||||
|
||||
@@ -369,10 +369,10 @@ jobs:
|
||||
|
||||
- name: Run iOS UI Tests
|
||||
run: |
|
||||
cd MyCribKMM/iosApp
|
||||
cd HoneyDueKMM/iosApp
|
||||
xcodebuild test \
|
||||
-project iosApp.xcodeproj \
|
||||
-scheme MyCribTests \
|
||||
-scheme HoneyDueTests \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.2' \
|
||||
-resultBundlePath TestResults.xcresult \
|
||||
-enableCodeCoverage YES
|
||||
@@ -382,7 +382,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: test-results
|
||||
path: MyCribKMM/iosApp/TestResults.xcresult
|
||||
path: HoneyDueKMM/iosApp/TestResults.xcresult
|
||||
|
||||
- name: Upload Screenshots
|
||||
if: failure()
|
||||
@@ -395,7 +395,7 @@ jobs:
|
||||
- name: Stop Docker Containers
|
||||
if: always()
|
||||
run: |
|
||||
cd myCribAPI
|
||||
cd honeyDueAPI
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
@@ -408,10 +408,10 @@ jobs:
|
||||
Create a `.xctestplan` file for better organization:
|
||||
|
||||
1. In Xcode: File → New → Test Plan
|
||||
2. Name it: `MyCribTestPlan.xctestplan`
|
||||
2. Name it: `HoneyDueTestPlan.xctestplan`
|
||||
3. Configure:
|
||||
- **Configurations**: Debug, Release
|
||||
- **Test Targets**: MyCribTests
|
||||
- **Test Targets**: HoneyDueTests
|
||||
- **Code Coverage**: Enable
|
||||
- **Screenshots**: Automatically on failure
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
This document summarizes the comprehensive XCUITest implementation created for the MyCrib iOS app. All deliverables are based on the `AUTOMATED_TEST_EXECUTION_PLAN.md` and follow iOS best practices for UI testing.
|
||||
This document summarizes the comprehensive XCUITest implementation created for the HoneyDue iOS app. All deliverables are based on the `AUTOMATED_TEST_EXECUTION_PLAN.md` and follow iOS best practices for UI testing.
|
||||
|
||||
---
|
||||
|
||||
@@ -43,7 +43,7 @@ Three complete test files covering all major flows from the automated test plan:
|
||||
|
||||
####ComprehensiveAuthenticationTests.swift`
|
||||
|
||||
**Location:** `iosApp/MyCribTests/ComprehensiveAuthenticationTests.swift`
|
||||
**Location:** `iosApp/HoneyDueTests/ComprehensiveAuthenticationTests.swift`
|
||||
|
||||
**Tests Included:**
|
||||
- `testUserRegistrationComplete()` - Test 1.1: Full registration flow
|
||||
@@ -70,7 +70,7 @@ Three complete test files covering all major flows from the automated test plan:
|
||||
|
||||
#### `ComprehensiveResidenceTests.swift`
|
||||
|
||||
**Location:** `iosApp/MyCribTests/ComprehensiveResidenceTests.swift`
|
||||
**Location:** `iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift`
|
||||
|
||||
**Tests Included:**
|
||||
- `testCreateResidenceComplete()` - Test 2.1: Create property
|
||||
@@ -102,7 +102,7 @@ Three complete test files covering all major flows from the automated test plan:
|
||||
|
||||
#### `ComprehensiveTaskTests.swift`
|
||||
|
||||
**Location:** `iosApp/MyCribTests/ComprehensiveTaskTests.swift`
|
||||
**Location:** `iosApp/HoneyDueTests/ComprehensiveTaskTests.swift`
|
||||
|
||||
**Tests Included:**
|
||||
- `testCreateOneTimeTaskComplete()` - Test 3.1: Create one-time task
|
||||
@@ -192,7 +192,7 @@ A comprehensive 400+ line guide covering:
|
||||
|
||||
### 4. ✅ Enhanced Test Helpers (Already Existing)
|
||||
|
||||
**File:** `iosApp/MyCribTests/TestHelpers.swift` (Already in project)
|
||||
**File:** `iosApp/HoneyDueTests/TestHelpers.swift` (Already in project)
|
||||
|
||||
The existing test infrastructure includes:
|
||||
|
||||
@@ -268,12 +268,12 @@ TextField("Email", text: $email)
|
||||
|
||||
1. **Open Xcode**
|
||||
```bash
|
||||
cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp
|
||||
cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp
|
||||
open iosApp.xcodeproj
|
||||
```
|
||||
|
||||
2. **Select Test Target**
|
||||
- Product → Scheme → MyCribTests
|
||||
- Product → Scheme → HoneyDueTests
|
||||
|
||||
3. **Run Individual Test**
|
||||
- Open `ComprehensiveAuthenticationTests.swift`
|
||||
@@ -397,13 +397,13 @@ TextField("Email", text: $email)
|
||||
1. **`iosApp/Helpers/AccessibilityIdentifiers.swift`** (253 lines)
|
||||
- Centralized accessibility identifiers
|
||||
|
||||
2. **`iosApp/MyCribTests/ComprehensiveAuthenticationTests.swift`** (232 lines)
|
||||
2. **`iosApp/HoneyDueTests/ComprehensiveAuthenticationTests.swift`** (232 lines)
|
||||
- 11 authentication tests
|
||||
|
||||
3. **`iosApp/MyCribTests/ComprehensiveResidenceTests.swift`** (387 lines)
|
||||
3. **`iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift`** (387 lines)
|
||||
- 10 residence management tests
|
||||
|
||||
4. **`iosApp/MyCribTests/ComprehensiveTaskTests.swift`** (437 lines)
|
||||
4. **`iosApp/HoneyDueTests/ComprehensiveTaskTests.swift`** (437 lines)
|
||||
- 13 task management tests
|
||||
|
||||
5. **`iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md`** (451 lines)
|
||||
@@ -490,7 +490,7 @@ For questions about this implementation, refer to the guide or check:
|
||||
|
||||
## Summary
|
||||
|
||||
This implementation provides a **complete, production-ready XCUITest infrastructure** for the MyCrib iOS app:
|
||||
This implementation provides a **complete, production-ready XCUITest infrastructure** for the HoneyDue iOS app:
|
||||
|
||||
✅ **34 comprehensive tests** covering authentication, residences, and tasks
|
||||
✅ **Centralized accessibility identifiers** for maintainability
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# XCUITest Authoring
|
||||
|
||||
## Required Architecture
|
||||
- Put shared test infrastructure in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Framework`.
|
||||
- Put feature suites in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Tests`.
|
||||
- Put shared test infrastructure in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Framework`.
|
||||
- Put feature suites in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Tests`.
|
||||
- Every test suite inherits `BaseUITestCase`.
|
||||
- Reusable multi-step setup belongs in `TestFlows`.
|
||||
- UI interactions should go through screen objects in `ScreenObjects.swift`.
|
||||
@@ -12,7 +12,7 @@
|
||||
- `--ui-testing`
|
||||
- `--disable-animations`
|
||||
- `--reset-state`
|
||||
- App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`.
|
||||
- App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`.
|
||||
|
||||
## Naming
|
||||
- Test method naming format: `test<CaseID>_<BehaviorDescription>()`.
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
/* Begin PBXBuildFile section */
|
||||
1C0789402EBC218B00392B46 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C07893F2EBC218B00392B46 /* WidgetKit.framework */; };
|
||||
1C0789422EBC218B00392B46 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C0789412EBC218B00392B46 /* SwiftUI.framework */; };
|
||||
1C0789532EBC218D00392B46 /* CaseraExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C0789532EBC218D00392B46 /* HoneyDueExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C81F26B2EE416EE000739EA /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C81F26A2EE416EE000739EA /* QuickLook.framework */; };
|
||||
1C81F2772EE416EF000739EA /* CaseraQLPreview.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C81F2772EE416EF000739EA /* HoneyDueQLPreview.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C81F2822EE41BB6000739EA /* QuickLookThumbnailing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C81F2812EE41BB6000739EA /* QuickLookThumbnailing.framework */; };
|
||||
1C81F2892EE41BB6000739EA /* CaseraQLThumbnail.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C81F2892EE41BB6000739EA /* HoneyDueQLThumbnail.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
1C81F3902EE69AF1000739EA /* PostHog in Frameworks */ = {isa = PBXBuildFile; productRef = 1C81F38F2EE69AF1000739EA /* PostHog */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@@ -23,21 +23,21 @@
|
||||
containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 1C07893C2EBC218B00392B46;
|
||||
remoteInfo = CaseraExtension;
|
||||
remoteInfo = HoneyDueExtension;
|
||||
};
|
||||
1C81F2752EE416EF000739EA /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 1C81F2682EE416EE000739EA;
|
||||
remoteInfo = CaseraQLPreview;
|
||||
remoteInfo = HoneyDueQLPreview;
|
||||
};
|
||||
1C81F2872EE41BB6000739EA /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 1C81F27F2EE41BB6000739EA;
|
||||
remoteInfo = CaseraQLThumbnail;
|
||||
remoteInfo = HoneyDueQLThumbnail;
|
||||
};
|
||||
1CBF16002ECD8AE4001BF56C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
@@ -62,9 +62,9 @@
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 13;
|
||||
files = (
|
||||
1C0789532EBC218D00392B46 /* CaseraExtension.appex in Embed Foundation Extensions */,
|
||||
1C81F2892EE41BB6000739EA /* CaseraQLThumbnail.appex in Embed Foundation Extensions */,
|
||||
1C81F2772EE416EF000739EA /* CaseraQLPreview.appex in Embed Foundation Extensions */,
|
||||
1C0789532EBC218D00392B46 /* HoneyDueExtension.appex in Embed Foundation Extensions */,
|
||||
1C81F2892EE41BB6000739EA /* HoneyDueQLThumbnail.appex in Embed Foundation Extensions */,
|
||||
1C81F2772EE416EF000739EA /* HoneyDueQLPreview.appex in Embed Foundation Extensions */,
|
||||
);
|
||||
name = "Embed Foundation Extensions";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -72,66 +72,31 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
1C07893D2EBC218B00392B46 /* CaseraExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C07893F2EBC218B00392B46 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
|
||||
1C0789412EBC218B00392B46 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
|
||||
1C0789612EBC2F5400392B46 /* CaseraExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CaseraExtension.entitlements; sourceTree = "<group>"; };
|
||||
1C685CD22EC5539000A9669B /* CaseraTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaseraTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraQLPreview.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C0789612EBC2F5400392B46 /* HoneyDueExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HoneyDueExtension.entitlements; sourceTree = "<group>"; };
|
||||
1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HoneyDueTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueQLPreview.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C81F26A2EE416EE000739EA /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; };
|
||||
1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraQLThumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueQLThumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C81F2812EE41BB6000739EA /* QuickLookThumbnailing.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLookThumbnailing.framework; path = System/Library/Frameworks/QuickLookThumbnailing.framework; sourceTree = SDKROOT; };
|
||||
1C87A0C42EDB8ED40081E450 /* CaseraUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = CaseraUITests.xctestplan; sourceTree = "<group>"; };
|
||||
1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaseraUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1C87A0C42EDB8ED40081E450 /* HoneyDueUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = HoneyDueUITests.xctestplan; sourceTree = "<group>"; };
|
||||
1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HoneyDueUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4B07E04F794A4C1CAA8CCD5D /* PhotoViewerSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoViewerSheet.swift; sourceTree = "<group>"; };
|
||||
96A3DDC05E14B3F83E56282F /* Casera.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Casera.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
96A3DDC05E14B3F83E56282F /* HoneyDue.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HoneyDue.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AD6CD907CA1045CBBC845D91 /* CompletionCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompletionCardView.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
|
||||
1C0789572EBC218D00392B46 /* Exceptions for "Casera" folder in "CaseraExtension" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Info.plist,
|
||||
);
|
||||
target = 1C07893C2EBC218B00392B46 /* CaseraExtension */;
|
||||
};
|
||||
1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "CaseraUITests" target */ = {
|
||||
1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "HoneyDueUITests" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Helpers/AccessibilityIdentifiers.swift,
|
||||
);
|
||||
target = 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */;
|
||||
target = 1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */;
|
||||
};
|
||||
1C77EDA22ECE797700A53003 /* Exceptions for "CaseraUITests" folder in "CaseraUITests" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
AccessibilityIdentifiers.swift,
|
||||
);
|
||||
target = 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */;
|
||||
};
|
||||
1C81F27B2EE416EF000739EA /* Exceptions for "CaseraQLPreview" folder in "CaseraQLPreview" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Info.plist,
|
||||
);
|
||||
target = 1C81F2682EE416EE000739EA /* CaseraQLPreview */;
|
||||
};
|
||||
1C81F28D2EE41BB6000739EA /* Exceptions for "CaseraQLThumbnail" folder in "CaseraQLThumbnail" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Info.plist,
|
||||
);
|
||||
target = 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */;
|
||||
};
|
||||
1C81F38A2EE5E430000739EA /* Exceptions for "Casera" folder in "Casera" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
CaseraIconView.swift,
|
||||
);
|
||||
target = D4ADB376A7A4CFB73469E173 /* Casera */;
|
||||
};
|
||||
1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */ = {
|
||||
1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "HoneyDueExtension" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Assets.xcassets,
|
||||
@@ -139,64 +104,41 @@
|
||||
Design/OrganicDesign.swift,
|
||||
Helpers/ThemeManager.swift,
|
||||
);
|
||||
target = 1C07893C2EBC218B00392B46 /* CaseraExtension */;
|
||||
target = 1C07893C2EBC218B00392B46 /* HoneyDueExtension */;
|
||||
};
|
||||
1CBF1C072ECD97AC001BF56C /* Exceptions for "CaseraTests" folder in "CaseraTests" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
CaseraTests.swift,
|
||||
);
|
||||
target = 1C685CD12EC5539000A9669B /* CaseraTests */;
|
||||
};
|
||||
84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "Casera" target */ = {
|
||||
84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "HoneyDue" target */ = {
|
||||
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
|
||||
membershipExceptions = (
|
||||
Info.plist,
|
||||
);
|
||||
target = D4ADB376A7A4CFB73469E173 /* Casera */;
|
||||
target = D4ADB376A7A4CFB73469E173 /* HoneyDue */;
|
||||
};
|
||||
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
|
||||
|
||||
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
||||
1C0789432EBC218B00392B46 /* Casera */ = {
|
||||
1C0789432EBC218B00392B46 /* HoneyDue */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
1C81F38A2EE5E430000739EA /* Exceptions for "Casera" folder in "Casera" target */,
|
||||
1C0789572EBC218D00392B46 /* Exceptions for "Casera" folder in "CaseraExtension" target */,
|
||||
);
|
||||
path = Casera;
|
||||
path = HoneyDue;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1C685CD32EC5539000A9669B /* CaseraTests */ = {
|
||||
1C685CD32EC5539000A9669B /* HoneyDueTests */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
1CBF1C072ECD97AC001BF56C /* Exceptions for "CaseraTests" folder in "CaseraTests" target */,
|
||||
);
|
||||
path = CaseraTests;
|
||||
path = HoneyDueTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1C81F26C2EE416EE000739EA /* CaseraQLPreview */ = {
|
||||
1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
1C81F27B2EE416EF000739EA /* Exceptions for "CaseraQLPreview" folder in "CaseraQLPreview" target */,
|
||||
);
|
||||
path = CaseraQLPreview;
|
||||
path = HoneyDueQLPreview;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */ = {
|
||||
1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
1C81F28D2EE41BB6000739EA /* Exceptions for "CaseraQLThumbnail" folder in "CaseraQLThumbnail" target */,
|
||||
);
|
||||
path = CaseraQLThumbnail;
|
||||
path = HoneyDueQLThumbnail;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1CBF1BEE2ECD9768001BF56C /* CaseraUITests */ = {
|
||||
1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
1C77EDA22ECE797700A53003 /* Exceptions for "CaseraUITests" folder in "CaseraUITests" target */,
|
||||
);
|
||||
path = CaseraUITests;
|
||||
path = HoneyDueUITests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7A237E53D5D71D9D6A361E29 /* Configuration */ = {
|
||||
@@ -207,9 +149,9 @@
|
||||
E822E6B231E7783DE992578C /* iosApp */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "Casera" target */,
|
||||
1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */,
|
||||
1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "CaseraUITests" target */,
|
||||
84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "HoneyDue" target */,
|
||||
1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "HoneyDueExtension" target */,
|
||||
1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "HoneyDueUITests" target */,
|
||||
);
|
||||
path = iosApp;
|
||||
sourceTree = "<group>";
|
||||
@@ -290,15 +232,15 @@
|
||||
86BC7E88090398B44B7DB0E4 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1C87A0C42EDB8ED40081E450 /* CaseraUITests.xctestplan */,
|
||||
1C0789612EBC2F5400392B46 /* CaseraExtension.entitlements */,
|
||||
1C87A0C42EDB8ED40081E450 /* HoneyDueUITests.xctestplan */,
|
||||
1C0789612EBC2F5400392B46 /* HoneyDueExtension.entitlements */,
|
||||
7A237E53D5D71D9D6A361E29 /* Configuration */,
|
||||
E822E6B231E7783DE992578C /* iosApp */,
|
||||
1C0789432EBC218B00392B46 /* Casera */,
|
||||
1C685CD32EC5539000A9669B /* CaseraTests */,
|
||||
1CBF1BEE2ECD9768001BF56C /* CaseraUITests */,
|
||||
1C81F26C2EE416EE000739EA /* CaseraQLPreview */,
|
||||
1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */,
|
||||
1C0789432EBC218B00392B46 /* HoneyDue */,
|
||||
1C685CD32EC5539000A9669B /* HoneyDueTests */,
|
||||
1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */,
|
||||
1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */,
|
||||
1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */,
|
||||
1C07893E2EBC218B00392B46 /* Frameworks */,
|
||||
FA6022B7B844191C54E57EB4 /* Products */,
|
||||
1C078A1B2EC1820B00392B46 /* Recovered References */,
|
||||
@@ -308,12 +250,12 @@
|
||||
FA6022B7B844191C54E57EB4 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
96A3DDC05E14B3F83E56282F /* Casera.app */,
|
||||
1C07893D2EBC218B00392B46 /* CaseraExtension.appex */,
|
||||
1C685CD22EC5539000A9669B /* CaseraTests.xctest */,
|
||||
1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */,
|
||||
1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */,
|
||||
1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */,
|
||||
96A3DDC05E14B3F83E56282F /* HoneyDue.app */,
|
||||
1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */,
|
||||
1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */,
|
||||
1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */,
|
||||
1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */,
|
||||
1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@@ -321,9 +263,9 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
1C07893C2EBC218B00392B46 /* CaseraExtension */ = {
|
||||
1C07893C2EBC218B00392B46 /* HoneyDueExtension */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "CaseraExtension" */;
|
||||
buildConfigurationList = 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "HoneyDueExtension" */;
|
||||
buildPhases = (
|
||||
1C0789392EBC218B00392B46 /* Sources */,
|
||||
1C07893A2EBC218B00392B46 /* Frameworks */,
|
||||
@@ -334,18 +276,18 @@
|
||||
dependencies = (
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
1C0789432EBC218B00392B46 /* Casera */,
|
||||
1C0789432EBC218B00392B46 /* HoneyDue */,
|
||||
);
|
||||
name = CaseraExtension;
|
||||
name = HoneyDueExtension;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = CaseraExtension;
|
||||
productReference = 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */;
|
||||
productName = HoneyDueExtension;
|
||||
productReference = 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
1C685CD12EC5539000A9669B /* CaseraTests */ = {
|
||||
1C685CD12EC5539000A9669B /* HoneyDueTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "CaseraTests" */;
|
||||
buildConfigurationList = 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "HoneyDueTests" */;
|
||||
buildPhases = (
|
||||
1C685CCE2EC5539000A9669B /* Sources */,
|
||||
1C685CCF2EC5539000A9669B /* Frameworks */,
|
||||
@@ -357,18 +299,18 @@
|
||||
1CBF16012ECD8AE4001BF56C /* PBXTargetDependency */,
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
1C685CD32EC5539000A9669B /* CaseraTests */,
|
||||
1C685CD32EC5539000A9669B /* HoneyDueTests */,
|
||||
);
|
||||
name = CaseraTests;
|
||||
name = HoneyDueTests;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = CaseraTests;
|
||||
productReference = 1C685CD22EC5539000A9669B /* CaseraTests.xctest */;
|
||||
productName = HoneyDueTests;
|
||||
productReference = 1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
1C81F2682EE416EE000739EA /* CaseraQLPreview */ = {
|
||||
1C81F2682EE416EE000739EA /* HoneyDueQLPreview */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "CaseraQLPreview" */;
|
||||
buildConfigurationList = 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLPreview" */;
|
||||
buildPhases = (
|
||||
1C81F2652EE416EE000739EA /* Sources */,
|
||||
1C81F2662EE416EE000739EA /* Frameworks */,
|
||||
@@ -379,18 +321,18 @@
|
||||
dependencies = (
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
1C81F26C2EE416EE000739EA /* CaseraQLPreview */,
|
||||
1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */,
|
||||
);
|
||||
name = CaseraQLPreview;
|
||||
name = HoneyDueQLPreview;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = CaseraQLPreview;
|
||||
productReference = 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */;
|
||||
productName = HoneyDueQLPreview;
|
||||
productReference = 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */ = {
|
||||
1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "CaseraQLThumbnail" */;
|
||||
buildConfigurationList = 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLThumbnail" */;
|
||||
buildPhases = (
|
||||
1C81F27C2EE41BB6000739EA /* Sources */,
|
||||
1C81F27D2EE41BB6000739EA /* Frameworks */,
|
||||
@@ -401,18 +343,18 @@
|
||||
dependencies = (
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */,
|
||||
1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */,
|
||||
);
|
||||
name = CaseraQLThumbnail;
|
||||
name = HoneyDueQLThumbnail;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = CaseraQLThumbnail;
|
||||
productReference = 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */;
|
||||
productName = HoneyDueQLThumbnail;
|
||||
productReference = 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
1CBF1BEC2ECD9768001BF56C /* CaseraUITests */ = {
|
||||
1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "CaseraUITests" */;
|
||||
buildConfigurationList = 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "HoneyDueUITests" */;
|
||||
buildPhases = (
|
||||
1CBF1BE92ECD9768001BF56C /* Sources */,
|
||||
1CBF1BEA2ECD9768001BF56C /* Frameworks */,
|
||||
@@ -424,18 +366,18 @@
|
||||
1CBF1BF42ECD9768001BF56C /* PBXTargetDependency */,
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
1CBF1BEE2ECD9768001BF56C /* CaseraUITests */,
|
||||
1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */,
|
||||
);
|
||||
name = CaseraUITests;
|
||||
name = HoneyDueUITests;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = CaseraUITests;
|
||||
productReference = 1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */;
|
||||
productName = HoneyDueUITests;
|
||||
productReference = 1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.ui-testing";
|
||||
};
|
||||
D4ADB376A7A4CFB73469E173 /* Casera */ = {
|
||||
D4ADB376A7A4CFB73469E173 /* HoneyDue */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "Casera" */;
|
||||
buildConfigurationList = 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "HoneyDue" */;
|
||||
buildPhases = (
|
||||
F4215B70FD6989F87745D84C /* Compile Kotlin Framework */,
|
||||
3B506EC7E4A1032BA1E06A37 /* Sources */,
|
||||
@@ -453,12 +395,12 @@
|
||||
fileSystemSynchronizedGroups = (
|
||||
E822E6B231E7783DE992578C /* iosApp */,
|
||||
);
|
||||
name = Casera;
|
||||
name = HoneyDue;
|
||||
packageProductDependencies = (
|
||||
1C81F38F2EE69AF1000739EA /* PostHog */,
|
||||
);
|
||||
productName = iosApp;
|
||||
productReference = 96A3DDC05E14B3F83E56282F /* Casera.app */;
|
||||
productReference = 96A3DDC05E14B3F83E56282F /* HoneyDue.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
@@ -510,12 +452,12 @@
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D4ADB376A7A4CFB73469E173 /* Casera */,
|
||||
1C07893C2EBC218B00392B46 /* CaseraExtension */,
|
||||
1C685CD12EC5539000A9669B /* CaseraTests */,
|
||||
1CBF1BEC2ECD9768001BF56C /* CaseraUITests */,
|
||||
1C81F2682EE416EE000739EA /* CaseraQLPreview */,
|
||||
1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */,
|
||||
D4ADB376A7A4CFB73469E173 /* HoneyDue */,
|
||||
1C07893C2EBC218B00392B46 /* HoneyDueExtension */,
|
||||
1C685CD12EC5539000A9669B /* HoneyDueTests */,
|
||||
1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */,
|
||||
1C81F2682EE416EE000739EA /* HoneyDueQLPreview */,
|
||||
1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
@@ -635,27 +577,27 @@
|
||||
/* Begin PBXTargetDependency section */
|
||||
1C0789522EBC218D00392B46 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 1C07893C2EBC218B00392B46 /* CaseraExtension */;
|
||||
target = 1C07893C2EBC218B00392B46 /* HoneyDueExtension */;
|
||||
targetProxy = 1C0789512EBC218D00392B46 /* PBXContainerItemProxy */;
|
||||
};
|
||||
1C81F2762EE416EF000739EA /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 1C81F2682EE416EE000739EA /* CaseraQLPreview */;
|
||||
target = 1C81F2682EE416EE000739EA /* HoneyDueQLPreview */;
|
||||
targetProxy = 1C81F2752EE416EF000739EA /* PBXContainerItemProxy */;
|
||||
};
|
||||
1C81F2882EE41BB6000739EA /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */;
|
||||
target = 1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */;
|
||||
targetProxy = 1C81F2872EE41BB6000739EA /* PBXContainerItemProxy */;
|
||||
};
|
||||
1CBF16012ECD8AE4001BF56C /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = D4ADB376A7A4CFB73469E173 /* Casera */;
|
||||
target = D4ADB376A7A4CFB73469E173 /* HoneyDue */;
|
||||
targetProxy = 1CBF16002ECD8AE4001BF56C /* PBXContainerItemProxy */;
|
||||
};
|
||||
1CBF1BF42ECD9768001BF56C /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = D4ADB376A7A4CFB73469E173 /* Casera */;
|
||||
target = D4ADB376A7A4CFB73469E173 /* HoneyDue */;
|
||||
targetProxy = 1CBF1BF32ECD9768001BF56C /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
@@ -677,8 +619,8 @@
|
||||
INFOPLIST_FILE = iosApp/Info.plist;
|
||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||
INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO;
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "Casera needs access to your camera to take photos of completed tasks";
|
||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Casera needs access to your photo library to select photos of completed tasks";
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks";
|
||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
@@ -688,7 +630,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -700,15 +642,15 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||
CODE_SIGN_ENTITLEMENTS = CaseraExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Casera/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Casera;
|
||||
INFOPLIST_FILE = HoneyDue/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = honeyDue;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -718,7 +660,7 @@
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraDev;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -735,15 +677,15 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||
CODE_SIGN_ENTITLEMENTS = CaseraExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = Casera/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Casera;
|
||||
INFOPLIST_FILE = HoneyDue/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = honeyDue;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -753,7 +695,7 @@
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraDev;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -777,7 +719,7 @@
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraTests";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||
@@ -786,8 +728,8 @@
|
||||
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Casera.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Casera";
|
||||
TEST_TARGET_NAME = Casera;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HoneyDue.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/HoneyDue";
|
||||
TEST_TARGET_NAME = HoneyDue;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -803,7 +745,7 @@
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraTests";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||
@@ -812,8 +754,8 @@
|
||||
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Casera.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Casera";
|
||||
TEST_TARGET_NAME = Casera;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HoneyDue.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/HoneyDue";
|
||||
TEST_TARGET_NAME = HoneyDue;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -826,8 +768,8 @@
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = CaseraQLPreview/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = CaseraQLPreview;
|
||||
INFOPLIST_FILE = HoneyDueQLPreview/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLPreview;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -836,7 +778,7 @@
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLPreview;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -857,8 +799,8 @@
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = CaseraQLPreview/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = CaseraQLPreview;
|
||||
INFOPLIST_FILE = HoneyDueQLPreview/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLPreview;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -867,7 +809,7 @@
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLPreview;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -888,8 +830,8 @@
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = CaseraQLThumbnail/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = CaseraQLThumbnail;
|
||||
INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLThumbnail;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -898,7 +840,7 @@
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLThumbnail;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -919,8 +861,8 @@
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = CaseraQLThumbnail/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = CaseraQLThumbnail;
|
||||
INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLThumbnail;
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -929,7 +871,7 @@
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLThumbnail;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||
@@ -952,7 +894,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
MACOSX_DEPLOYMENT_TARGET = 26.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraUITests";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = auto;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||
@@ -962,7 +904,7 @@
|
||||
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2,7";
|
||||
TEST_TARGET_NAME = Casera;
|
||||
TEST_TARGET_NAME = HoneyDue;
|
||||
XROS_DEPLOYMENT_TARGET = 26.1;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -978,7 +920,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
|
||||
MACOSX_DEPLOYMENT_TARGET = 26.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraUITests";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = auto;
|
||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||
@@ -988,7 +930,7 @@
|
||||
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2,7";
|
||||
TEST_TARGET_NAME = Casera;
|
||||
TEST_TARGET_NAME = HoneyDue;
|
||||
XROS_DEPLOYMENT_TARGET = 26.1;
|
||||
};
|
||||
name = Release;
|
||||
@@ -1045,7 +987,7 @@
|
||||
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_NAME = Casera;
|
||||
PRODUCT_NAME = honeyDue;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
@@ -1111,7 +1053,7 @@
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PRODUCT_NAME = Casera;
|
||||
PRODUCT_NAME = honeyDue;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
@@ -1134,8 +1076,8 @@
|
||||
INFOPLIST_FILE = iosApp/Info.plist;
|
||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||
INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO;
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "Casera needs access to your camera to take photos of completed tasks";
|
||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Casera needs access to your photo library to select photos of completed tasks";
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks";
|
||||
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks";
|
||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
@@ -1145,7 +1087,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -1155,7 +1097,7 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "CaseraExtension" */ = {
|
||||
1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "HoneyDueExtension" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1C0789552EBC218D00392B46 /* Debug */,
|
||||
@@ -1164,7 +1106,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "CaseraTests" */ = {
|
||||
1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "HoneyDueTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1C685CD92EC5539000A9669B /* Debug */,
|
||||
@@ -1173,7 +1115,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "CaseraQLPreview" */ = {
|
||||
1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLPreview" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1C81F2792EE416EF000739EA /* Debug */,
|
||||
@@ -1182,7 +1124,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "CaseraQLThumbnail" */ = {
|
||||
1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLThumbnail" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1C81F28B2EE41BB6000739EA /* Debug */,
|
||||
@@ -1191,7 +1133,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "CaseraUITests" */ = {
|
||||
1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "HoneyDueUITests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1CBF1BF62ECD9768001BF56C /* Debug */,
|
||||
@@ -1200,7 +1142,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "Casera" */ = {
|
||||
293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "HoneyDue" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
E767E942685C7832D51FF978 /* Debug */,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user