We have updated our cross-platform applications to support iOS 18 and are in the final stages of releasing versions built with MacCatalyst. After merging the MacCatalyst changes with those for iOS 18, we are now required to build the app using Xcode 16. However, since transitioning to Xcode 16, the app builds successfully but crashes immediately on startup with the following error:
dyld[45279]: Symbol not found: _$sSo22VNFaceLandmarkRegion2DC6VisionE16normalizedPointsSaySo7CGPointVGvg
Referenced from: <211097A0-6612-3A9A-80B5-AE12915EBA2A> /Users/***/Library/Developer/Xcode/DerivedData/DM_iOS_Apps-gzpzdsacfldxxwclyngreqkbhtey/Build/Products/Debug-maccatalyst/MyApp.app/Contents/Frameworks/Filters_MyApp.framework/Versions/A/Filters_MyApp
Expected in: <50DB755E-C83C-3FC7-A0BB-9C4DF9FEA374> /System/Library/Frameworks/Vision.framework/Versions/A/Vision
This crash occurs only when building the app with Xcode 16 for MacCatalyst on macOS 14.6.1. On iOS and macOS 15, it functions as expected, and it also worked prior to the iOS 18 changes, which are independent of the Vision framework code, when building with Xcode 15.
Here are the environment details where the error occurs:
Xcode Version: Xcode 16.0 (16A242d)
macOS Version: macOS Sonoma 14.6.1
And the setup where it works:
Xcode Version: Xcode 16.0 (16A242d)
macOS Version: macOS Sequoia 15.0
Additionally, attempting to implement a workaround using pointsInImage(imageSize:) resulted in a similar issue, where the symbol for this method is also missing.
Is this a known issue? Are there any workarounds or fixes available?
We have already submitted this issue as feedback (FB15164375), along with a demo project to illustrate the problem.
Post
Replies
Boosts
Views
Activity
In the XCode 16 beta, it isn't possible to create a new StoreKit configuration file because the templates list doesn't contain that option.
Adding the storekit extension to a file crashes XCode or doesn't have an effect at all. But, loading an existing file still works.
I am working on a SwiftUI app where users can apply effects at any
arbitrary point in time to a video. After selecting an effect, it can be
applied by starting and stopping the playback at desired times.
Besides the player, the UI also contains a scrubber, which shows thumbnails from the video and indicating the current timestamp.
The player and the scrubber are synced via a PeriodicTimeObserver,
so the scrubber always moves along with the video. Since the player is
working asynchronously, I am facing the problem that when the user
pauses the playback, the observer is still being called 3 to 4 times
afterward, which distorts the result. This is probably caused by some
internal async behavior of the player.
Currently, I am "solving" this by using my own asynchronous pause
implementation, which registers its own observer, and each time this
gets called, a timer gets restarted. When this timer finishes, it calls a
given callback.
It looks something like this (I know this is not actual swift code, I've simplified it a lot)
func pause(callback: () -> Void) {
let timer = Timer(interval: 3, repeat: false) {
callback()
}
timer.start()
self.addPeriodicTimeObserver(forInterval: 1, queue: .main) { _ in
timer.restart()
}
}
Does anyone have a better idea to know when the player actually stopped playing?
Hey, we have multiple image editing apps, and some of our users report a strange behavior where the images exported with our apps vanish after syncing with iCloud.
In more detail:
The user loads an image from his library
Edits it with our app(s) and saves it back to his library
The image appears in his library
iCloud sync starts, and right after it finished, the image vanishes from the user's library
We narrowed it down to a problem with an older macOS. One of our users has a MacBook with High Sierra 10.13.6, and if he shuts it down, the image remains in his library.
We suspect that our exports are classified as duplicates of the original image, but we are unsure if this is the reason.
Currently, we copy all the image metadata along and only change the modification date.
Any idea why this could happen and how we can prevent this?