Post

Replies

Boosts

Views

Activity

Reply to Crash on iOS 16 when built with Xcode 15 in release mode only - Symbol not found: _$s10Foundation13__DataStorageC12replaceBytes2in4with6lengthySnySiG_SVSgSitF
I haven't been able to reduce it to a single file, but I've uploaded the Swift files I copied into the empty project here: https://github.com/enchantingmoon/EuclidDebug. Another developer provided the following info with a Feedback ID: https://github.com/nicklockwood/Euclid/issues/107#issuecomment-1730491594 This seems to be an SDK issue (I've filed FB13195864): The missing symbol is a variant of the internal __DataStorage.replaceBytes method that takes a Range, which, despite being added in iOS 17, is incorrectly marked as being ?>available back to iOS 8. The method is usable from inline, and a reference to it gets inlined into the app (via a couple layers of inlined framework code). And so the app crashes when >running pre-iOS 17 since method does not actually exist.
Sep ’23
Reply to Crash on iOS 16 when built with Xcode 15 in release mode only - Symbol not found: _$s10Foundation13__DataStorageC12replaceBytes2in4with6lengthySnySiG_SVSgSitF
Thank you for the reply! I isolated the issue to a 3rd party Swift package, so I copied the Swift source files into an empty Xcode project to reproduce the crash. This project has no 3rd party dependencies, as the Swift package did not have any dependencies either. The source code uses replaceSubrange() on an Array, but not append(contentsOf:) specifically. It does use several Data operations, such as append(_ int).
Sep ’23