Password complexity: real-time validation UI on register, onboarding, and reset screens (uppercase, lowercase, digit, min 8 chars) — Compose + iOS Swift iOS privacy descriptions: camera, photo library, photo save usage strings Token refresh: Ktor interceptor catches 401 "token_expired", refreshes, retries Retry with backoff: 3 retries on 5xx/IO errors, exponential delay (1s base, 10s max) Gzip: ContentEncoding plugin on all platform HTTP clients Request timeouts: 30s request, 10s connect, 30s socket Validation rules: split passwordMissingLetter into uppercase/lowercase (iOS Swift) Test fixes: corrected import paths in 5 existing test files New tests: HTTP client retry/refresh (9), validation rules
86 lines
2.4 KiB
Plaintext
86 lines
2.4 KiB
Plaintext
<?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>AppGroupIdentifier</key>
|
|
<string>$(APP_GROUP_IDENTIFIER)</string>
|
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
|
<array>
|
|
<string>com.tt.honeyDue.refresh</string>
|
|
</array>
|
|
<key>HONEYDUE_IAP_ANNUAL_PRODUCT_ID</key>
|
|
<string>com.tt.honeyDue.pro.annual</string>
|
|
<key>HONEYDUE_IAP_MONTHLY_PRODUCT_ID</key>
|
|
<string>com.tt.honeyDue.pro.monthly</string>
|
|
<key>HONEYDUE_GOOGLE_WEB_CLIENT_ID</key>
|
|
<string></string>
|
|
<key>CFBundleDocumentTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>honeyDue Contractor</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Editor</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Owner</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>com.honeydue.contractor</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>com.honeydue.app</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>honeydue</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsLocalNetworking</key>
|
|
<true/>
|
|
</dict>
|
|
<key>NSCameraUsageDescription</key>
|
|
<string>honeyDue needs camera access to take photos of tasks, documents, and receipts.</string>
|
|
<key>NSPhotoLibraryUsageDescription</key>
|
|
<string>honeyDue needs photo library access to attach photos to tasks and documents.</string>
|
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
|
<string>honeyDue needs permission to save photos to your library.</string>
|
|
<key>UIBackgroundModes</key>
|
|
<array>
|
|
<string>remote-notification</string>
|
|
<string>processing</string>
|
|
</array>
|
|
<key>UTExportedTypeDeclarations</key>
|
|
<array>
|
|
<dict>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
<string>public.content</string>
|
|
</array>
|
|
<key>UTTypeDescription</key>
|
|
<string>honeyDue Contractor</string>
|
|
<key>UTTypeIconFiles</key>
|
|
<array/>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.honeydue.contractor</string>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>honeydue</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/x-honeydue</string>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</plist>
|