Release 1.3.1 (build 20): iCloud sync fix + sources search/filter

iCloud sync:
- Fix: deploy CloudKit schema to production so exports work
- Fix: PredictionCache marked syncable=NO (binary attr caused partial failures)
- Fix: forceExportToiCloud uses createdAt+1ms for guaranteed persistent history
- Fix: auto-deduplication on CloudKit import (processRemoteChanges)
- Add: NSPersistentHistoryTrackingKey always enabled regardless of CloudKit state
- Add: cloudKitForceReload notification so repositories re-fetch on remote changes

Sources UI:
- Add: horizontal category filter chips in SourceListView
- Add: search toggle button with animated TextField

Other:
- Add: ITSAppUsesNonExemptEncryption=NO in Info.plist (skip manual compliance)
- Add: fastlane submit lane with run_precheck_before_submit=false
- Update: release notes all locales for 1.3.1
- Update: fastlane API key via pass

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-05-07 22:19:33 +02:00
parent 8acac3d529
commit 773da6800b
23 changed files with 524 additions and 144 deletions
+29 -4
View File
@@ -1,8 +1,5 @@
default_platform(:ios)
# Credentials via `pass`
# export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=$(pass show appstore/apple-app-specific-password)
platform :ios do
EXPORT_OPTIONS = {
method: "app-store",
@@ -14,9 +11,19 @@ platform :ios do
}
}
def api_key
app_store_connect_api_key(
key_id: sh("pass show appstore/api-key-id", log: false).strip,
issuer_id: sh("pass show appstore/issuer-id", log: false).strip,
key_content: sh("pass show appstore/api-key-p8", log: false).strip,
is_key_content_base64: false
)
end
desc "Upload metadata and release notes only (binary already uploaded)"
lane :metadata do
deliver(
api_key: api_key,
metadata_path: "fastlane/metadata",
skip_screenshots: true,
skip_binary_upload: true,
@@ -30,7 +37,24 @@ platform :ios do
scheme: "PortfolioJournal",
export_options: EXPORT_OPTIONS
)
upload_to_testflight(skip_waiting_for_build_processing: true)
upload_to_testflight(
api_key: api_key,
skip_waiting_for_build_processing: true
)
end
desc "Submit already-uploaded build for App Store review (binary already in TestFlight)"
lane :submit do
deliver(
api_key: api_key,
metadata_path: "fastlane/metadata",
skip_screenshots: true,
skip_binary_upload: true,
submit_for_review: true,
automatic_release: false,
run_precheck_before_submit: false,
force: true
)
end
desc "Build, export and push a new release to the App Store"
@@ -40,6 +64,7 @@ platform :ios do
export_options: EXPORT_OPTIONS
)
upload_to_app_store(
api_key: api_key,
metadata_path: "fastlane/metadata",
skip_screenshots: true,
force: true