diff --git a/myApp/HaruDanim/CLAUDE.md b/myApp/HaruDanim/CLAUDE.md
index 62c88e4..3d01978 100644
--- a/myApp/HaruDanim/CLAUDE.md
+++ b/myApp/HaruDanim/CLAUDE.md
@@ -11,12 +11,12 @@
| 항목 | 내용 |
|---|---|
| 앱 이름 | 하루 다님 (스플래시 멘트: "당신의 하루에 다녀가다") |
-| 플랫폼 | iOS (iPhone) + iPadOS(사이드바·일기) + watchOS 앱/컴플리케이션 + 홈·잠금화면 위젯 |
+| 플랫폼 | iOS (iPhone) + iPadOS(사이드바·일기) + watchOS 앱/컴플리케이션 + 홈·잠금화면 위젯. **최소 iOS/iPadOS 26.0**(리퀴드 글라스 API 하한) / **watchOS 10.0**(watchOS 11.5·26.2 시뮬레이터 실기동 검증) |
| 기본 언어 | 한국어. 설정에서 영어/일본어 전환 (String Catalog `IOS/Localizable.xcstrings`) |
| 번들 ID | `com.yechan.HaruDanim` / App Group `group.com.yechan.HaruDanim` / CloudKit `iCloud.com.yechan.HaruDanim` |
| 수익 모델 | 부분 유료화. 무료 한도(행동 10·목표 2·목표당 다짐 3) + 프리미엄 결제 시 해제 |
| 결제 상품 | `com.yechan.HaruDanim.premium.monthly`(월 5,000원) / `.yearly`(년 50,000원) / `.lifetime`(80,000원) — 임시 가격, App Store Connect 등록은 아직 안 됨 |
-| 남은 배포 작업 | App Store Connect 상품 3종 등록(구독 그룹 + 비소모성, 유료 앱 계약), **CloudKit 프로덕션 스키마 배포**(대시보드 Deploy Schema to Production — DiaryTemplate 등 새 레코드 타입/필드는 개발 환경에만 자동 생성되므로 출시 전 필수), 실기기 검증(펜슬 필기감·캘린더 권한), App Store 배포. 코드 측 잔여 없음 — `ITSAppUsesNonExemptEncryption=NO` 등록 완료, 결제 화면 약관 링크 완료(개인정보처리방침 `Docs/PRIVACY.md` ko/en/ja는 `github.com/notalentprogrammer/HaruDanim` main의 PRIVACY.md로 게시됨, 이용약관은 Apple 표준 EULA URL). ASC 등록 시 앱 설명에도 두 링크 기재 + '앱 개인정보 보호'는 "데이터 수집 안 함" 선택 |
+| 남은 배포 작업 | App Store Connect 상품 3종 등록(구독 그룹 + 비소모성, 유료 앱 계약), **CloudKit 프로덕션 스키마 배포**(대시보드 Deploy Schema to Production — DiaryTemplate 등 새 레코드 타입/필드는 개발 환경에만 자동 생성되므로 출시 전 필수), 실기기 검증(펜슬 필기감·캘린더 권한), App Store 배포. 코드 측 잔여 없음 — `ITSAppUsesNonExemptEncryption=NO` 등록 완료, **개인정보 매니페스트(PrivacyInfo.xcprivacy) 4개 번들 완비**(UserDefaults CA92.1·1C8F.1, 수집·트래킹 없음 — 위젯·워치위젯 폴더 것은 앱·워치 앱 타깃에서 membershipException으로 중복 복사 제외), 결제 화면 약관 링크 완료(개인정보처리방침 `Docs/PRIVACY.md` ko/en/ja는 `github.com/notalentprogrammer/HaruDanim` main의 PRIVACY.md로 게시됨, 이용약관은 Apple 표준 EULA URL). ASC 등록 시 앱 설명에도 두 링크 기재 + '앱 개인정보 보호'는 "데이터 수집 안 함" 선택 |
---
diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
index 1e57898..4e3e8c8 100644
--- a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
+++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
@@ -108,6 +108,7 @@
Info.plist,
InfoPlist.xcstrings,
Localizable.xcstrings,
+ PrivacyInfo.xcprivacy,
);
target = 725A9E832FFCC65000846FFB /* Haru_Danim */;
};
@@ -119,6 +120,7 @@
Info.plist,
InfoPlist.xcstrings,
Localizable.xcstrings,
+ PrivacyInfo.xcprivacy,
);
target = 7263D0DF3000433300EA47FC /* Haru_DanimWatch Watch App */;
};
@@ -531,7 +533,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 26.5;
+ IPHONEOS_DEPLOYMENT_TARGET = 26.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -588,7 +590,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 26.5;
+ IPHONEOS_DEPLOYMENT_TARGET = 26.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -714,7 +716,7 @@
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 26.0;
+ WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Debug;
};
@@ -750,7 +752,7 @@
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 26.0;
+ WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Release;
};
@@ -786,7 +788,7 @@
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 26.0;
+ WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Debug;
};
@@ -822,7 +824,7 @@
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 26.0;
+ WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Release;
};
@@ -836,7 +838,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Widgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "하루 다님 위젯";
- IPHONEOS_DEPLOYMENT_TARGET = 26.5;
+ IPHONEOS_DEPLOYMENT_TARGET = 26.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -862,7 +864,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Widgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "하루 다님 위젯";
- IPHONEOS_DEPLOYMENT_TARGET = 26.5;
+ IPHONEOS_DEPLOYMENT_TARGET = 26.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
diff --git a/myApp/HaruDanim/Haru_DanimWatch Watch App/PrivacyInfo.xcprivacy b/myApp/HaruDanim/Haru_DanimWatch Watch App/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..e844b31
--- /dev/null
+++ b/myApp/HaruDanim/Haru_DanimWatch Watch App/PrivacyInfo.xcprivacy
@@ -0,0 +1,27 @@
+
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+ 1C8F.1
+
+
+
+
+
diff --git a/myApp/HaruDanim/Haru_DanimWatchWidgets/PrivacyInfo.xcprivacy b/myApp/HaruDanim/Haru_DanimWatchWidgets/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..e844b31
--- /dev/null
+++ b/myApp/HaruDanim/Haru_DanimWatchWidgets/PrivacyInfo.xcprivacy
@@ -0,0 +1,27 @@
+
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+ 1C8F.1
+
+
+
+
+
diff --git a/myApp/HaruDanim/IOS/PrivacyInfo.xcprivacy b/myApp/HaruDanim/IOS/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..e844b31
--- /dev/null
+++ b/myApp/HaruDanim/IOS/PrivacyInfo.xcprivacy
@@ -0,0 +1,27 @@
+
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+ 1C8F.1
+
+
+
+
+
diff --git a/myApp/HaruDanim/Widgets/PrivacyInfo.xcprivacy b/myApp/HaruDanim/Widgets/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..e844b31
--- /dev/null
+++ b/myApp/HaruDanim/Widgets/PrivacyInfo.xcprivacy
@@ -0,0 +1,27 @@
+
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+ 1C8F.1
+
+
+
+
+