Post

Replies

Boosts

Views

Activity

Reply to Unable to read user file after Mac OS and Xcode update
is the file inside your app's sandbox? You haven't said where it is. fileimporter (not file_importer) puts up a user interface, so the user is granting explicit permission to access the file. fopen() doesn't have UI, so it has to get the permission from somewhere else. That somewhere else can be implicit (the path leads to somewhere in the app's sandbox), or you can get the path by resolving a security scoped bookmark which you have created earlier by interacting with the user.
Oct ’23
Reply to Is it possible to synchronously request configuration information within the Start method of DriverKit?
I think the short answer might be "no". dexts are always sandboxed. You generally can't read or write files outside the sandbox. If a user explicitly grants permission to read or write a file, you can get a security scoped bookmark for that file in your app, and give it to your app to resolve. You should be able to use the property interface to read/write configuration data. Use CopyProperties from your driver's Start(), to read the properties, and implement SetProperties in your dext. To alter the properties from the app, you should be able to use IORegistryEntrySetCFProperties from IOKitLib.h, but you may need to use IOConnectSetCFProperty or IOConnectSetCFProperties. Those two need a connection, which you get from IOServiceOpen, which in turn requires that you can make a user client from your dext, so you would have to implement code to create a user client object. I haven't tried any of these (at least not for a long while) and I can't find any sample code which does this. Good luck.
Topic: App & System Services SubTopic: Drivers Tags:
Oct ’23
Reply to NSView blurry in Sonoma, in app and Xcode 15
I filed a bug related to this, FB13238490. I could not reproduce exactly the same behavior in a test application. I'm using a xib based interface with Core Animation layer effects. In Ventura, a Box Blur type of Background Filter effect only affected the background directly behind the view with the filter effect - it did not extend beyond the bounds of the view. In Sonoma, the Background Filter effect blurs all the views 'behind' (in z order) the view with the filter, and the blur effect extends over the entire background.
Topic: UI Frameworks SubTopic: AppKit Tags:
Oct ’23
Reply to issues with my testing project C/C++
which symbols are missing? Show the the Report Navigator in Xcode Click the most recent Build output in the main panel of the window, scroll to the link error and highlight it at the extreme right side of the error, you'll see a little lozenge-shaped control that looks like lines of text in a tiny document click that to expose the details of the link error, that should help you figure out if you are missing a library or framework, and which one.
Oct ’23
Reply to Help with "Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure."
So you made some progress! You said "When I comment out a section of the view. The build is successful..." - what section? Initially, you were asking about a build problem. That original build problem was caused by something in that commented-out section. Figure out what exactly the problem is. Sorry, can't help you with Firebase. That may be caused by commenting out some of the code to fix your build error.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Sep ’23
Reply to Help with "Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure."
welcome to the forum! Nothing jumps out at me as obviously wrong in the code you posted. The code is incomplete, so it can't be simply copied and pasted into someone else's project so they can maybe duplicate the error you see. In situations like this, where it looks like the compiler is complaining of an error in the Form closure, I would try commenting out different elements of the Form to figure out what exactly it is complaining about. My hunch would be a typo in TLButton, which you have not shown. You asked how you receive a response. You can 'watch' a thread, by clicking the bell icon on the top right of a thread. I think the forum may now automatically email you when there's a new response to a thread that you started. Incidentally, if you want to share a YouTube video at a particular point in time, you can use the Share button on the YouTube button to generate a link. On desktop at least, there is an option to "start at", which appends a time to the URL.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Sep ’23
Reply to Looking for hints on swiftui camera app.
To apply a CIFilter to your photo, you first need to create a CIImage from your saved photo. You could use the init?(contentsOf: url) initializer for this. Then you can perform CIFilter operations on the CIImage. To produce a new picture that you can save, you'll need to make a CIContext (with no destination), then use e.g. CIContext.createCGImage:fromRect I've found these extensions to be useful: https://github.com/DigitalMasterpieces/CoreImageExtensions Search for "write CGImage to file" for hints on how to do that. Note that neither CIImage nor CGImage are files, nor are they bitmap representations of images; they are abstract representations of "things that can be represented as an image" by their respective frameworks. Good luck!
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Sep ’23
Reply to should an AVPlayer work in a Camera Extension?
You're right (an AVPlayer would have to run in the application). Thank you for reminding of this post. After much experimentation, I ended up using two AVAssetReaders. Unlike the AVAssetImageGenerator, an AVAssetReader can maintain state. Unlike AVPlayer, an AVAssetReader doesn't need to run in an application context. I use two so I can ping-pong between them to enable seamless transitions from the last frame of the movie back to the first. I want to do the compositing inside the extension because the composited video is the output of the virtual camera, which should work without running the hosting app.
Topic: Code Signing SubTopic: General Tags:
Aug ’23
Reply to XCODE PROBLEM
you may also have run into a situation where the IDE is not showing the program's output. In the screenshot you posted, the output is not shown. While (or after) running the program, disclose the output pane by clicking on the little disclosure button. It the furthest right button on the bottom of your screenshot.
Aug ’23
Reply to Unable to read user file after Mac OS and Xcode update
is the file inside your app's sandbox? You haven't said where it is. fileimporter (not file_importer) puts up a user interface, so the user is granting explicit permission to access the file. fopen() doesn't have UI, so it has to get the permission from somewhere else. That somewhere else can be implicit (the path leads to somewhere in the app's sandbox), or you can get the path by resolving a security scoped bookmark which you have created earlier by interacting with the user.
Replies
Boosts
Views
Activity
Oct ’23
Reply to Is it possible to synchronously request configuration information within the Start method of DriverKit?
I think the short answer might be "no". dexts are always sandboxed. You generally can't read or write files outside the sandbox. If a user explicitly grants permission to read or write a file, you can get a security scoped bookmark for that file in your app, and give it to your app to resolve. You should be able to use the property interface to read/write configuration data. Use CopyProperties from your driver's Start(), to read the properties, and implement SetProperties in your dext. To alter the properties from the app, you should be able to use IORegistryEntrySetCFProperties from IOKitLib.h, but you may need to use IOConnectSetCFProperty or IOConnectSetCFProperties. Those two need a connection, which you get from IOServiceOpen, which in turn requires that you can make a user client from your dext, so you would have to implement code to create a user client object. I haven't tried any of these (at least not for a long while) and I can't find any sample code which does this. Good luck.
Topic: App & System Services SubTopic: Drivers Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to NSView blurry in Sonoma, in app and Xcode 15
I filed a bug related to this, FB13238490. I could not reproduce exactly the same behavior in a test application. I'm using a xib based interface with Core Animation layer effects. In Ventura, a Box Blur type of Background Filter effect only affected the background directly behind the view with the filter effect - it did not extend beyond the bounds of the view. In Sonoma, the Background Filter effect blurs all the views 'behind' (in z order) the view with the filter, and the blur effect extends over the entire background.
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to issues with my testing project C/C++
which symbols are missing? Show the the Report Navigator in Xcode Click the most recent Build output in the main panel of the window, scroll to the link error and highlight it at the extreme right side of the error, you'll see a little lozenge-shaped control that looks like lines of text in a tiny document click that to expose the details of the link error, that should help you figure out if you are missing a library or framework, and which one.
Replies
Boosts
Views
Activity
Oct ’23
Reply to Help with "Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure."
So you made some progress! You said "When I comment out a section of the view. The build is successful..." - what section? Initially, you were asking about a build problem. That original build problem was caused by something in that commented-out section. Figure out what exactly the problem is. Sorry, can't help you with Firebase. That may be caused by commenting out some of the code to fix your build error.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to Help with "Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure."
welcome to the forum! Nothing jumps out at me as obviously wrong in the code you posted. The code is incomplete, so it can't be simply copied and pasted into someone else's project so they can maybe duplicate the error you see. In situations like this, where it looks like the compiler is complaining of an error in the Form closure, I would try commenting out different elements of the Form to figure out what exactly it is complaining about. My hunch would be a typo in TLButton, which you have not shown. You asked how you receive a response. You can 'watch' a thread, by clicking the bell icon on the top right of a thread. I think the forum may now automatically email you when there's a new response to a thread that you started. Incidentally, if you want to share a YouTube video at a particular point in time, you can use the Share button on the YouTube button to generate a link. On desktop at least, there is an option to "start at", which appends a time to the URL.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to Looking for hints on swiftui camera app.
To apply a CIFilter to your photo, you first need to create a CIImage from your saved photo. You could use the init?(contentsOf: url) initializer for this. Then you can perform CIFilter operations on the CIImage. To produce a new picture that you can save, you'll need to make a CIContext (with no destination), then use e.g. CIContext.createCGImage:fromRect I've found these extensions to be useful: https://github.com/DigitalMasterpieces/CoreImageExtensions Search for "write CGImage to file" for hints on how to do that. Note that neither CIImage nor CGImage are files, nor are they bitmap representations of images; they are abstract representations of "things that can be represented as an image" by their respective frameworks. Good luck!
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to should an AVPlayer work in a Camera Extension?
You're right (an AVPlayer would have to run in the application). Thank you for reminding of this post. After much experimentation, I ended up using two AVAssetReaders. Unlike the AVAssetImageGenerator, an AVAssetReader can maintain state. Unlike AVPlayer, an AVAssetReader doesn't need to run in an application context. I use two so I can ping-pong between them to enable seamless transitions from the last frame of the movie back to the first. I want to do the compositing inside the extension because the composited video is the output of the virtual camera, which should work without running the hosting app.
Topic: Code Signing SubTopic: General Tags:
Replies
Boosts
Views
Activity
Aug ’23
Reply to XCODE PROBLEM
you may also have run into a situation where the IDE is not showing the program's output. In the screenshot you posted, the output is not shown. While (or after) running the program, disclose the output pane by clicking on the little disclosure button. It the furthest right button on the bottom of your screenshot.
Replies
Boosts
Views
Activity
Aug ’23