5.12.0
Released on 2026-05-04. All issues associated with this milestone can be found using this filter.
- Rare race in
Request.suspend()andRequest.cancel()where the state update would be lost if it occurred before the task was created. Request.cancel()incorrect calledRequest.finish()when the underlying task was already.completed.- Rare race in
Request.resume()that could lead to multipleURLSessionTasks created. - Repeated calls to
Request.suspend()andRequest.resume()could lead to multiple pipeline executions. - Thread-safety issue in
Session.deinitwhen accessing internal state. - Rare
Request.finish()race inSession.deinit. Session.deinitcalledRequest.finish()onRequests that were already finished.Request.onHTTPRequestdidn't call the fullRequest.cancel()when the.canceldisposition was returned.- Multiple unlikely force unwrap or
unowned selfcrashes. - Write to
DataStreamRequest'soutputStreamafter it was closed. - MIME type parsing, where a single element (
text) or empty strings would be accepted. - Cancelled
DownloadRequests could still trigger retry. DataRequest.DataTaskandDownloadRequest.DownloadTaskcould miss early cancellation events if they happened before the underlyingTaskwas created.- 🔥 Multiple issues in
AuthenticationInterceptor. These fixes slightly change the interceptor's behavior.adapt()enqueued adaptations, leading to requests restarted with a new credential to not execute the whole adapt pipeline again.AuthenticationInterceptorwill now let those requests fail with the old credential and retry their whole pipeline with the new credential.- Concurrent adaptations for the same stale credential could trigger multiple refreshes.
retry()now lazily checks for new credentials rather than capturing eagerly.
已支持 Lottie 的依赖最新版本, 支持指定渲染模式
CYLTabBarController 1.99.20以上版本,已对 Lottie 的依赖版本, 进一步细化, 采用二分法: ObjC 和Swift版本,进行区分。ObjC指定 ~>2.5.3 , Swift版本指定>=4.0.0。CYLTabBarController 内部 , 可以根据依赖版本的不同,执行不同逻辑。同时保持API接口不变。
用法见GitHub Demo演示。
#pod 'CYLTabBarController', '~> 1.99.20' # 默认不依赖Lottie
#pod 'CYLTabBarController/LottieObjectiveC', '~> 1.99.20' # 依赖Lottie Objective-C库
#pod 'CYLTabBarController/LottieSwift', '~> 1.99.20' # 依赖Lottie Swift库
自我评估,已经可以满足大部分场景, 如需要更精细的 Lottie 版本区分, 请提issue, 描述清楚场景, 我排期开发。
注意LottieSwift支持的iOS版本最低为iOS13
s.ios.deployment_target = '13.0'
如果你的项目支持iOS12则不能使用Lottie Swift 版本。
你在选择时应该遵循这样的规则: Lottie OC版本仅在需要支持iOS12时引入,如果你的项目最低版本高于或等于iOS13那么你应该总是选择LottieSwift。
Lottie OC 对支持Lottie文件的暗黑模式有bug. 不再建议使用。
另外提一句, iOS26 未选中状态下的Label颜色,一直是总是 labelColor 也就是黑色或者白色, 无法通过appearance 自定义, 怀疑是Apple的bug, 或者是一个功能, 为了提高未选中时的辨识度。我没想到好的方案进行修复,调研了一下, 似乎大家都接受了这个bug? 如果你有好的方案,请提issue,社交媒体给我的留言,无法保证看见并回复。 issue为唯一反馈途径,谢谢理解。
添加接口lottie动画的渲染模式可以从外部指定 (默认渲染模式是fit) 增加didLayoutSubViewsBlock, 扩大PlusButton可点击面积, 解决iOS15有时候tabbar会变透明的问题;([bug]:iOS15在切换到某些vc后有可能出现TabBar变透明的情况 #574) reloadTabBarItemsWithAttributes; (关联 issue 动态更新 tabbarItem 的 icon 跟 title #303)
1.10.0
- Add a ChaCha20 initializer with explicit 4-byte counter support and QUIC test vectors
- Fix XChaCha20-Poly1305 nonce length metadata to require 24-byte nonces
- Make the privacy manifest Apple-only via a dedicated resources target and add visionOS/macCatalyst support
- Prefer FoundationEssentials when available, with Foundation fallback for compatibility
- Fix Scrypt and SecureBytes memory handling to avoid unsafe baseAddress crashes and release allocated memory correctly
2.6.0-beta.1
[!NOTE] Please review this page in the wiki for a deeper dive into all the changes.
[!NOTE] We're naming this v2.6.0 to be clear that we expect it to be 100% compatible, non-source breaking with v2.5.1. Please report any issues you may find.
- Fix memory safety issues and buffer handling bugs by @naftaly in https://github.com/kstenerud/KSCrash/pull/723
- Fix flaky tests by @naftaly in https://github.com/kstenerud/KSCrash/pull/727
- Add performance benchmarks by @naftaly in https://github.com/kstenerud/KSCrash/pull/721
- Fix memory monitor safety improvements by @naftaly in https://github.com/kstenerud/KSCrash/pull/725
- Optimize KSBinaryImageCache and KSDynamicLinker performance by @naftaly in https://github.com/kstenerud/KSCrash/pull/722
- Update CI runners from macos-13 to macos-14 by @naftaly in https://github.com/kstenerud/KSCrash/pull/728
- Fix uninitialized g_stackCursor crash in background threads (#712) by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/717
- Add Watchdog Monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/726
- Fix symbolication regression in KSBinaryImageCache by @naftaly in https://github.com/kstenerud/KSCrash/pull/731
- Remove Namespace Check Workflow by @naftaly in https://github.com/kstenerud/KSCrash/pull/734
- Fix sanitizer compatibility and add sanitizer CI by @naftaly in https://github.com/kstenerud/KSCrash/pull/733
- fix: watchdog monitor now collects threads by @naftaly in https://github.com/kstenerud/KSCrash/pull/730
- Fix sanitizer issues and Mach port leak by @naftaly in https://github.com/kstenerud/KSCrash/pull/736
- Add standard deviation column to benchmark results by @naftaly in https://github.com/kstenerud/KSCrash/pull/735
- Fix benchmarks workflow for fork PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/738
- Add CI workflow for Clang static analyzer by @naftaly in https://github.com/kstenerud/KSCrash/pull/744
- Fix thread safety issues in memory tracking by @naftaly in https://github.com/kstenerud/KSCrash/pull/742
- Fix memory leaks, optimize binary image cache, add leaks CI by @naftaly in https://github.com/kstenerud/KSCrash/pull/740
- Use lock-free atomic container for userInfoJSON thread safety by @naftaly in https://github.com/kstenerud/KSCrash/pull/741
- [RFC] Introducing Sampling Profiler by @naftaly in https://github.com/kstenerud/KSCrash/pull/732
- Add
ReportSwift target for a type safe crash report structure by @naftaly in https://github.com/kstenerud/KSCrash/pull/729 - Add cpu info to backtrace symbolication by @maxep in https://github.com/kstenerud/KSCrash/pull/737
- Fix static analyzer warnings by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/749
- Make leaks CI failable on real memory leaks by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/750
- Fix undefined behavior issues detected by UBSan by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/751
- Fix flaky testOtherThreadSymbolicate test by @naftaly in https://github.com/kstenerud/KSCrash/pull/755
- __cxa_throw swapper upgrades by @naftaly in https://github.com/kstenerud/KSCrash/pull/753
- Use ptrauth_strip for PAC handling instead of hardcoded mask by @naftaly in https://github.com/kstenerud/KSCrash/pull/756
- Prepare Benchmarks For OnDevice Runs by @naftaly in https://github.com/kstenerud/KSCrash/pull/754
- Convert KSCrashReportFixer to Objective-C and improve symbol resolution by @naftaly in https://github.com/kstenerud/KSCrash/pull/761
- Fix crash handler deadlock when Watchdog monitor is enabled by @naftaly in https://github.com/kstenerud/KSCrash/pull/758
- Add compact unwind and DWARF CFI support for stack unwinding by @naftaly in https://github.com/kstenerud/KSCrash/pull/757
- Security improvements for OpenSSF Scorecard by @naftaly in https://github.com/kstenerud/KSCrash/pull/765
- ci: bump the github-actions group with 4 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/766
- Restore pre-profiler deployment targets by @naftaly in https://github.com/kstenerud/KSCrash/pull/773
- Add visionOS 1.0 platform support to SPM by @naftaly in https://github.com/kstenerud/KSCrash/pull/775
- ci: add Infer static analysis and fix PR comments for fork PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/769
- Improve OOM handling and async-signal-safety by @naftaly in https://github.com/kstenerud/KSCrash/pull/768
- Add backtrace truncation detection and KSCrash+Backtrace category by @naftaly in https://github.com/kstenerud/KSCrash/pull/767
- Improve CI tooling and add namespace check workflow by @naftaly in https://github.com/kstenerud/KSCrash/pull/776
- Add BrowserStack CI integration for benchmarks by @naftaly in https://github.com/kstenerud/KSCrash/pull/762
- Fix ARM64 spurious frame after thread_start during stack unwinding by @naftaly in https://github.com/kstenerud/KSCrash/pull/764
- Fix async-signal-safety crash in monitor disable path by @naftaly in https://github.com/kstenerud/KSCrash/pull/770
- ci: bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/779
- Fix benchmarks workflow secret availability check by @naftaly in https://github.com/kstenerud/KSCrash/pull/780
- Add monitor sidecar infrastructure and rewrite watchdog to pure C by @naftaly in https://github.com/kstenerud/KSCrash/pull/771
- [EASY] Fix os_version reporting host macOS build on simulator by @naftaly in https://github.com/kstenerud/KSCrash/pull/782
- Add MetricKit crash monitor plugin by @naftaly in https://github.com/kstenerud/KSCrash/pull/774
- Add compact binary image reporting and inline object_uuid on frames by @naftaly in https://github.com/kstenerud/KSCrash/pull/777
- Add last_exception_backtrace for exception crashes by @naftaly in https://github.com/kstenerud/KSCrash/pull/778
- Add run sidecars for per-process-run sidecar data by @naftaly in https://github.com/kstenerud/KSCrash/pull/783
- Convert system monitor to mmap'd run sidecar by @naftaly in https://github.com/kstenerud/KSCrash/pull/784
- Refactor CLAUDE.md into .claude/rules/ for path-scoped loading by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/789
- Convert AppState monitor to mmap'd Lifecycle run sidecar by @naftaly in https://github.com/kstenerud/KSCrash/pull/786
- Correctness fixes, hang reporting config, and Report model improvements by @naftaly in https://github.com/kstenerud/KSCrash/pull/787
- ci: bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/791
- Skip crash report for SIGTERM by @naftaly in https://github.com/kstenerud/KSCrash/pull/793
- ci: add binary size analysis for PRs by @naftaly in https://github.com/kstenerud/KSCrash/pull/792
- Add UserInfo monitor with reusable KSKeyValueStore by @naftaly in https://github.com/kstenerud/KSCrash/pull/788
- Add passive Resource monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/790
- Add ResourceTermination monitor for post-mortem termination detection by @naftaly in https://github.com/kstenerud/KSCrash/pull/794
- Add task role tracking to Lifecycle monitor by @naftaly in https://github.com/kstenerud/KSCrash/pull/795
- ci: bump jdx/mise-action from 3 to 4 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/797
- ci: report Infer results as a neutral check run by @naftaly in https://github.com/kstenerud/KSCrash/pull/800
- Fix Zombie monitor hang and enable proper disable by @naftaly in https://github.com/kstenerud/KSCrash/pull/798
- Fix test reliability and add Tuist Derived to gitignore by @naftaly in https://github.com/kstenerud/KSCrash/pull/799
- Fix data race in KSReachabilityKSCrash initializer by @naftaly in https://github.com/kstenerud/KSCrash/pull/801
- Termination monitor, RunContext shared layer, and integration tests by @naftaly in https://github.com/kstenerud/KSCrash/pull/796
- Replace snprintf with async-signal-safe string conversion in crash-time code by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/804
- Update nullability for several interfaces, add some missing designated initializer stuff too by @alanzeino in https://github.com/kstenerud/KSCrash/pull/711
- Finalize recovered hang reports with live system data by @naftaly in https://github.com/kstenerud/KSCrash/pull/802
- Add fork PR guards to CI workflows by @naftaly in https://github.com/kstenerud/KSCrash/pull/805
- Refactor stitch pipeline to parse once, stitch all, encode once by @naftaly in https://github.com/kstenerud/KSCrash/pull/803
- Fix mach.subcode always 0 due to 32-bit/64-bit struct mismatch by @naftaly in https://github.com/kstenerud/KSCrash/pull/811
- Finalize non-fatal reports immediately by @naftaly in https://github.com/kstenerud/KSCrash/pull/806
- ci: bump actions/github-script from 7 to 8 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/807
- Collapse category sections in benchmark report by @naftaly in https://github.com/kstenerud/KSCrash/pull/812
- fix: zero mach code/subcode in watchdog fatal hang reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/813
- fix: add missing signal code to injected termination reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/814
- Track app transition state in hang reports, suppress startup hangs by @naftaly in https://github.com/kstenerud/KSCrash/pull/808
- [2] Track app transition state in hang reports, suppress startup hangs by @naftaly in https://github.com/kstenerud/KSCrash/pull/817
- Add API: ksbt_captureBacktraceFromSuspendedMachThread by @kstenerud in https://github.com/kstenerud/KSCrash/pull/816
- Add missing
nonecase to Swift TerminationReason enum by @naftaly in https://github.com/kstenerud/KSCrash/pull/818 - Add async-signal-safety-review skill by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/820
- fix: watchdog stitch no longer overwrites is_fatal on non-watchdog reports by @naftaly in https://github.com/kstenerud/KSCrash/pull/822
- ci: bump actions/github-script from 8 to 9 in the github-actions group by @dependabot[bot] in https://github.com/kstenerud/KSCrash/pull/823
- Fix async-signal-safety violations in JSON codec and logger by @GLinnik21 in https://github.com/kstenerud/KSCrash/pull/821
- Let consumers opt out of KSLogger.h's DEBUG/ERROR/etc. aliases by @naftaly in https://github.com/kstenerud/KSCrash/pull/824
- ci: rework release workflow for reversibility by @naftaly in https://github.com/kstenerud/KSCrash/pull/825
Full Changelog: https://github.com/kstenerud/KSCrash/compare/2.5.0...2.6.0-beta.1
CYLTabBarController 现已支持 iOS26 上实现以下效果, 请更新至版本1.99.4以上版本:
Preview of the latest version 1.99.4 on iOS 26+
CYLTabBarController 现已支持 iOS26 上实现以下效果, 请更新至版本1.99.3以上版本:
- ✅同时展示 Lottie动画与液态玻璃效果;
- ✅支持将加号➕按钮,展示在液态玻璃效果上,并居中展示。保留 CYLTabBarController 旧版本的所有加号按钮逻辑。仅增加玻璃遮罩效果;
- ✅未使用私有API实现液态玻璃,可通过代码静态扫描,Apple 审核过审安全;
- ✅采用纯原生的液态玻璃效果,支持 iOS 系统设置对液态玻璃属性的全部修改操作;
- ✅企业生产环境级别开源解决方案;
- ✅对于已经集成 CYLTabBarController 的开发者友好,升级适配开发难度, 代码修改低于10行,升级总时长低于1小时;
- ✅不依赖UI兼容模式, iOS27 过审友好;
- ✅不依赖UI兼容模式, 实现扁平风格UI, iOS27 过审友好;
即刻访问 这里 ,了解更多:
5.11.2
- Use of
#fileto#fileIDto prevent build system info leakage. - CI and dependencies.
- A rare race between the creation of
StreamOfvalues and the start of their iteration, which could miss values. - Handling of duplicate
URLSessionTaskMetricscallbacks, likely caused by using the new loading system (usesClassicLoadingMode = false).
5.21.7 - 5.21 Patch
See all tickets marked for the 5.21.7 release
- Fix AppKit SDImageCoderHelper does not use APNG instead of GIF for animated image creation #3870 #3871 @ijunfly
v20.0.4
- Update build scripts for Xcode 26.
- Drop support for Xcode < 26.
- Prebuilt binaries are no longer code signed as Realm is no longer officially distributed by MongoDB.
- Fix compilation with Xcode 26.4.
- Carthage release for Swift is built with Xcode 26.3.
- CocoaPods: 1.10 or later.
- Xcode: 26.1-26.4
v20.0.4
- Update build scripts for Xcode 26.
- Drop support for Xcode < 26.
- Prebuilt binaries are no longer code signed as Realm is no longer officially distributed by MongoDB.
- Fix compilation with Xcode 26.4.
- Carthage release for Swift is built with Xcode 26.3.
- CocoaPods: 1.10 or later.
- Xcode: 26.1-26.4








