remove all iCloud/CloudKit to run purely local first
- Delete entitlements file entirely - Remove remote-notification background mode - Simplify ModelContainer to plain local store - Fix bundle ID prefix to de.felixfoertsch per convention iCloud sync can be added back once the container is set up in the Apple Developer Portal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -49,7 +49,6 @@
|
||||
D4431B77FD9EDB156C12BB19 /* DiaryViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiaryViewModel.swift; sourceTree = "<group>"; };
|
||||
D4CCBA3B214071BEDD37CB6E /* DiaryEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiaryEntryView.swift; sourceTree = "<group>"; };
|
||||
E4B15363D4D0CAD8C0DD46D6 /* RecordingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordingView.swift; sourceTree = "<group>"; };
|
||||
F18ECC39AB60EF3AFF82EB90 /* VoiceDiary.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = VoiceDiary.entitlements; sourceTree = "<group>"; };
|
||||
F30F8103F5AEAC26F1412FEC /* AudioRecorderService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioRecorderService.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@@ -138,7 +137,6 @@
|
||||
142BDBF117BAFAC9CA20527E /* Services */,
|
||||
88B119656D1AB183CCE625F9 /* ViewModels */,
|
||||
C12EA9E46E07D0BD5F8F9158 /* Views */,
|
||||
F18ECC39AB60EF3AFF82EB90 /* VoiceDiary.entitlements */,
|
||||
);
|
||||
path = VoiceDiary;
|
||||
sourceTree = "<group>";
|
||||
@@ -285,13 +283,11 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = VoiceDiary/VoiceDiary.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription = "Voice Diary needs microphone access to record your voice memos for diary entries.";
|
||||
INFOPLIST_KEY_NSSpeechRecognitionUsageDescription = "Voice Diary uses on-device speech recognition to transcribe your voice memos.";
|
||||
INFOPLIST_KEY_UIBackgroundModes = "remote-notification";
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
@@ -299,7 +295,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.felixfoertsch.VoiceDiary;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.felixfoertsch.VoiceDiary;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -369,13 +365,11 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = VoiceDiary/VoiceDiary.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription = "Voice Diary needs microphone access to record your voice memos for diary entries.";
|
||||
INFOPLIST_KEY_NSSpeechRecognitionUsageDescription = "Voice Diary uses on-device speech recognition to transcribe your voice memos.";
|
||||
INFOPLIST_KEY_UIBackgroundModes = "remote-notification";
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
@@ -383,7 +377,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.felixfoertsch.VoiceDiary;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.felixfoertsch.VoiceDiary;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -399,7 +393,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.felixfoertsch.VoiceDiaryTests;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.felixfoertsch.VoiceDiaryTests;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VoiceDiary.app/VoiceDiary";
|
||||
@@ -415,7 +409,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.felixfoertsch.VoiceDiaryTests;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.felixfoertsch.VoiceDiaryTests;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VoiceDiary.app/VoiceDiary";
|
||||
|
||||
@@ -3,26 +3,10 @@ import SwiftUI
|
||||
|
||||
@main
|
||||
struct VoiceDiaryApp: App {
|
||||
let modelContainer: ModelContainer
|
||||
|
||||
init() {
|
||||
let schema = Schema([DiaryEntry.self, VoiceMemo.self])
|
||||
let configuration = ModelConfiguration(
|
||||
"VoiceDiary",
|
||||
schema: schema,
|
||||
cloudKitDatabase: .none
|
||||
)
|
||||
do {
|
||||
modelContainer = try ModelContainer(for: schema, configurations: [configuration])
|
||||
} catch {
|
||||
fatalError("Failed to create ModelContainer: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
ContentView()
|
||||
}
|
||||
.modelContainer(modelContainer)
|
||||
.modelContainer(for: [DiaryEntry.self, VoiceMemo.self])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||
<array>
|
||||
<string>iCloud.com.felixfoertsch.VoiceDiary</string>
|
||||
</array>
|
||||
<key>com.apple.developer.icloud-services</key>
|
||||
<array>
|
||||
<string>CloudKit</string>
|
||||
</array>
|
||||
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
|
||||
<string>$(TeamIdentifierPrefix)com.felixfoertsch.VoiceDiary</string>
|
||||
</dict>
|
||||
</plist>
|
||||
15
project.yml
15
project.yml
@@ -1,6 +1,6 @@
|
||||
name: VoiceDiary
|
||||
options:
|
||||
bundleIdPrefix: com.felixfoertsch
|
||||
bundleIdPrefix: de.felixfoertsch
|
||||
deploymentTarget:
|
||||
iOS: "26.0"
|
||||
xcodeVersion: "26.2"
|
||||
@@ -27,7 +27,7 @@ targets:
|
||||
settings:
|
||||
base:
|
||||
GENERATE_INFOPLIST_FILE: true
|
||||
PRODUCT_BUNDLE_IDENTIFIER: com.felixfoertsch.VoiceDiary
|
||||
PRODUCT_BUNDLE_IDENTIFIER: de.felixfoertsch.VoiceDiary
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
||||
ENABLE_PREVIEWS: true
|
||||
SWIFT_EMIT_LOC_STRINGS: true
|
||||
@@ -36,15 +36,6 @@ targets:
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription: "Voice Diary needs microphone access to record your voice memos for diary entries."
|
||||
INFOPLIST_KEY_NSSpeechRecognitionUsageDescription: "Voice Diary uses on-device speech recognition to transcribe your voice memos."
|
||||
INFOPLIST_KEY_UIBackgroundModes: remote-notification
|
||||
entitlements:
|
||||
path: VoiceDiary/VoiceDiary.entitlements
|
||||
properties:
|
||||
com.apple.developer.icloud-container-identifiers:
|
||||
- iCloud.com.felixfoertsch.VoiceDiary
|
||||
com.apple.developer.icloud-services:
|
||||
- CloudKit
|
||||
com.apple.developer.ubiquity-kvstore-identifier: $(TeamIdentifierPrefix)com.felixfoertsch.VoiceDiary
|
||||
|
||||
VoiceDiaryTests:
|
||||
type: bundle.unit-test
|
||||
@@ -55,4 +46,4 @@ targets:
|
||||
- target: VoiceDiary
|
||||
settings:
|
||||
base:
|
||||
PRODUCT_BUNDLE_IDENTIFIER: com.felixfoertsch.VoiceDiaryTests
|
||||
PRODUCT_BUNDLE_IDENTIFIER: de.felixfoertsch.VoiceDiaryTests
|
||||
|
||||
Reference in New Issue
Block a user