Post

Replies

Boosts

Views

Activity

Keeping track of thread creation in a process
In some cases, one of our daemons will end up with thousands of threads. Clearly a bug somewhere, but I can't see it in the code. (Admittedly, it's C++ which is a bit alien to me still. Anyway.) If I wanted to just be notified each time a thread was created in the process, what are some ways to do that? I assume dtrace and lldb have ways to od it, but I'm not quite sure what.
6
0
1.1k
Jul ’23
Can I tell if a system is awake/asleep?
macOS, really, so there are a bunch of things that may be running during various types of sleep. I know I can get notifications from IOKit about the system going to sleep or waking up, but if I've got a daemon that crashed, and is then relaunched automatically, can I tell whether the machine is awake, or in some sort of sleep state other than hibernation?
0
0
638
Aug ’23
Not being prompted when removing a root CA
We have our own root CA that is installed with our application. For non-MDM installs, the system asks if the user wants to do that, which is all well and good. It also used to ask us when removing that certificate. It doesn't now. So now I am wondering if I dreamed it, except other people say they also got prompted and don't now. It's being installed and removed using the security command, in scripts.
1
0
879
Aug ’23
Sonoma on a virtual machine?
I don't have enough physical machines to install Sonoma; I do, however, have lots of CPU cycles, memory, and disk space -- so can I get Sonoma running in VMWare Fusion? Ideally on both AS and Intel. I searched to see if this had been asked, but I will be the first to admit my searching skills are bad. (This is why I like find and grep.)
3
0
2.6k
Sep ’23
This doesn't seem like correct behaviour for ASWebAuthenticationSession?
I just wrote code for our app to use ASWebAuthenticationSession for 3rd-party authentication (in particular, YUBIKEYS WOOHOO). Our app registers a URI scheme of x-com-kithrup for launch services events, so I used x-com-kithrup-yubi for ASWebAUthenticationSession. Only, I didn't change the back end, so it still redirects to x-com-kithrup://success on a successful login. And... ASWebAuthenticationSession is still calling the handler when it gets a URL with the x-com-kithrup URI, instead of the x-com-kithrup-yubi URI scheme.
1
0
541
Sep ’23
malloc_history never works for me: unable to read input graph: The data couldn’t be read because it isn’t in the correct format
root# malloc_history /tmp/stack-logs.60147.10f5f7000.agent-tests.0EDkOu.index -callTree malloc_history[60193]: [fatal] unable to read input graph: The data couldn’t be read because it isn’t in the correct format. I ran my program as root# env MallocDebugReport=stderr MallocGuardEdges=1 MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocScribble=1 MallocErrorAbort=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib ./test/agent-test (The program then segfaults, which looks to be due to a memory stomper.)
1
0
906
Sep ’23
SwiftUI, FetchedResults, and uninitliazed?
I've got @Environment(\.managedObjectContext) var context private var home: Home private var predicate: NSPredicate @State var sortBy: SortDescriptor<Room> @FetchRequest private var rooms: FetchedResults<Room> init(home: Home) { self.home = home _sortBy = State(initialValue: SortDescriptor<Room>(\.name)) self.predicate = NSPredicate(format: "%K = %@", "home", self.home) _rooms = FetchRequest<Room>( sortDescriptors: [self.sortBy], predicate: self.predicate) } But it won't compile -- it says Variable 'self.rooms' used before being initialized. But... how?
2
0
614
Sep ’23
DatePicker behaving strangely
I was trying to have a date picker show up conditionally; it seems to work for iOS, but macOS (13, haven't tried it on 14 yet) it ... doesn't. In particular, if I select "custom" in this code, and then click on a date part, it brings up the graphical picker, and I can select a date, but then... it doesn't go away. Clearly I am doing something wrong, but is it clear to anyone who isn't me what that is? import SwiftUI extension View { /// Hide or show the view based on a boolean value. /// /// Example for visibility: /// /// Text("Label") /// .isHidden(true) /// /// Example for complete removal: /// /// Text("Label") /// .isHidden(true, remove: true) /// /// - Parameters: /// - hidden: Set to `false` to show the view. Set to `true` to hide the view. /// - remove: Boolean value indicating whether or not to remove the view. @ViewBuilder func isHidden(_ hidden: Bool, remove: Bool = false, disable: Bool = false) -> some View { if hidden { if !remove { self.hidden() .disabled(disable) } } else { self } } } enum ExpireType: CustomStringConvertible, Hashable, CaseIterable { case never case oneWeek case twoWeek case oneMonth case sixMonth case custom func expires(given date: Date) -> Date? { let calendar = Calendar.current switch self { case .never: return nil case .custom: return nil case .oneWeek: return calendar.date(byAdding: .weekOfYear, value: 1, to: Date()) case .twoWeek: return calendar.date(byAdding: .weekOfYear, value: 2, to: Date()) case .oneMonth: return calendar.date(byAdding:.month, value: 1, to: Date()) case .sixMonth: return calendar.date(byAdding: .month, value: 6, to: Date()) } } var description: String { switch self { case .never: return "Never" case .custom: return "Custom" case .oneWeek: return "One week" case .twoWeek: return "Two weeks" case .oneMonth: return "One month" case .sixMonth: return "Six months" } } } struct ExpireDatePicker: View { @State var expires = Date() @State var expireType = ExpireType.never @State var didChange = false @State var dateString = "" @State var showDatePicker = false private func updateText() { if self.expireType == .never { self.dateString = "" } else if self.expireType == .custom { self.dateString = self.expires.formatted(.dateTime.day().month().year()) } else { self.dateString = self.expireType.expires(given: Date())!.formatted(.dateTime.day().month().year()) } } /* * For the expire date, we want to let * the user pick one of the predfined dates, * or a custom date. */ var body: some View { VStack(alignment: .trailing) { let _ = print("showDatePicker \(self.showDatePicker)") Picker("Expiration date", selection: self.$expireType) { ForEach(ExpireType.allCases, id: \.self) { et in Text(String(describing: et)) .tag(et) } } ZStack(alignment: .trailing) { Text(dateString) .fontWeight(.ultraLight) .isHidden(self.showDatePicker, disable: true) /* * This does not work well. * I can't get it to disappear, * or relinquish control */ DatePicker("", selection: self.$expires, displayedComponents: .date) .datePickerStyle(.compact) .isHidden(!self.showDatePicker, disable: true) } } .onChange(of: self.expireType) { to in self.showDatePicker = (to == .custom) self.updateText() } .onChange(of: self.expires) { to in print("expires changed to \(self.expires)") self.showDatePicker = false } } }
1
0
802
Sep ’23
CMake, Xcode, and Entitlements.plist
Our project uses CMake, which generates a .xcodeproj bundle. Our project has an existing network extension (Transparent Proxy Provider); I'm trying to add a second one, which is a packet filter. Xcode is extremely unhappy: error: Multiple commands produce '/Build/mybuild/Entitlements.plist' note: Target 'PacketFilter' (project 'project') has write command with output /Build/mybuild/Entitlements.plist note: Target 'ProxyProvier' (project 'project') has write command with output /Build/mybuild/Entitlements.plist My problem is: I can't tell what is generating the Entitlements.plist file! If I build each of those two targets separately, it does get generated. But if I search for "Entitlements" in the bundle, there is nothing. So I am unable to tell what is going on. Each of the extension targets has their own entitlements file -- each of them has their own CMakeLists.txt file, and has this setting: XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.entitlements" but something -- and I assume it's CMake, although I can't find anything that does that -- is producing a rule somewhere that says it creates Entitlements.plist. And it's doing it outside of the project.xcodeproj bundle? How can I track this down and/or fix it?
1
0
1.2k
Sep ’23
Cannot import a Developer ID Application certificate: Error -25294
I looked at other posts with this problem and didn't find anything that worked. I used Keychain Access and Certificate Assistant to create a CSR; I uploaded that on the portal. Downloaded the certificate, and I get that error whenever I try to import it. I can import it into the System one, but then it's untrusted, and I still can't export it as a p12 file. This is one of the few times I did everything by reading the documentation as I did it, so I'm very confused.
4
0
2.1k
Oct ’23
CMake, vcpkg, and universal builds
Again, none of this is really my choice: our project is multi-platform (specifically, at this time, Windows and macOS). As a result, the people who started 8 hours before I did picked CMake and vcpkg to handle build system generation and 3rd party dependencies. (TBF, I can't blame them for this, since this does work on a Mac, for at least a simple build.) I want to support Apple Silicon, obviously. I can build native on my M1 MBP. (I could, theoretically, use lipo and create a universal bundle, but that would mean manually signing a handful of executables, and then the whole thing, unless I missed a way to do this much more easily?) We're using CircleCI for CI, or maybe github actions in the future. I have not been able to figure out how to use CMake and vcpkg to do a cross build. Not even universal, just "build for arm64 on Intel mac". googling and searching these fora hasn't shown a lot that seems to work (mainly, I think, for the vcpkg side). Which is weird, because one of the things people use CMake for is to build Android and iOS apps, which generally does mean cross-compiling. Does anyone know how to do that? I'm at the point where I'm looking at CocoaPods again -- but that will not work with CMake, so we'll have two completely different build systems, one of which requires a Mac with GUI to add/remove sources/targets.
13
0
7.3k
Oct ’23
Having trouble getting the endpoint-security entitlement working
I got the permission from Apple (yay), and when I generate a profile on the portal, I can select it. But when I download it... it doesn't have it. Looking at the profile on the portal again, it says I have "Enabled Capabilities Endpoint Security, In-App Purchase". (Although how did that get there?)
Replies
17
Boosts
0
Views
2.8k
Activity
Jul ’23
Keeping track of thread creation in a process
In some cases, one of our daemons will end up with thousands of threads. Clearly a bug somewhere, but I can't see it in the code. (Admittedly, it's C++ which is a bit alien to me still. Anyway.) If I wanted to just be notified each time a thread was created in the process, what are some ways to do that? I assume dtrace and lldb have ways to od it, but I'm not quite sure what.
Replies
6
Boosts
0
Views
1.1k
Activity
Jul ’23
Can I tell if a system is awake/asleep?
macOS, really, so there are a bunch of things that may be running during various types of sleep. I know I can get notifications from IOKit about the system going to sleep or waking up, but if I've got a daemon that crashed, and is then relaunched automatically, can I tell whether the machine is awake, or in some sort of sleep state other than hibernation?
Replies
0
Boosts
0
Views
638
Activity
Aug ’23
Not being prompted when removing a root CA
We have our own root CA that is installed with our application. For non-MDM installs, the system asks if the user wants to do that, which is all well and good. It also used to ask us when removing that certificate. It doesn't now. So now I am wondering if I dreamed it, except other people say they also got prompted and don't now. It's being installed and removed using the security command, in scripts.
Replies
1
Boosts
0
Views
879
Activity
Aug ’23
Sonoma on a virtual machine?
I don't have enough physical machines to install Sonoma; I do, however, have lots of CPU cycles, memory, and disk space -- so can I get Sonoma running in VMWare Fusion? Ideally on both AS and Intel. I searched to see if this had been asked, but I will be the first to admit my searching skills are bad. (This is why I like find and grep.)
Replies
3
Boosts
0
Views
2.6k
Activity
Sep ’23
This output from Instruments doesn't make a lot of sense to me...
This seems to show that a bunch of memory being allocated in... mach_vm_deallocate. That doesn't seem likely, so I have to assume I'm misreading the output? (This is on macOS.)
Replies
4
Boosts
1
Views
923
Activity
Sep ’23
This doesn't seem like correct behaviour for ASWebAuthenticationSession?
I just wrote code for our app to use ASWebAuthenticationSession for 3rd-party authentication (in particular, YUBIKEYS WOOHOO). Our app registers a URI scheme of x-com-kithrup for launch services events, so I used x-com-kithrup-yubi for ASWebAUthenticationSession. Only, I didn't change the back end, so it still redirects to x-com-kithrup://success on a successful login. And... ASWebAuthenticationSession is still calling the handler when it gets a URL with the x-com-kithrup URI, instead of the x-com-kithrup-yubi URI scheme.
Replies
1
Boosts
0
Views
541
Activity
Sep ’23
malloc_history never works for me: unable to read input graph: The data couldn’t be read because it isn’t in the correct format
root# malloc_history /tmp/stack-logs.60147.10f5f7000.agent-tests.0EDkOu.index -callTree malloc_history[60193]: [fatal] unable to read input graph: The data couldn’t be read because it isn’t in the correct format. I ran my program as root# env MallocDebugReport=stderr MallocGuardEdges=1 MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocScribble=1 MallocErrorAbort=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib ./test/agent-test (The program then segfaults, which looks to be due to a memory stomper.)
Replies
1
Boosts
0
Views
906
Activity
Sep ’23
SwiftUI, FetchedResults, and uninitliazed?
I've got @Environment(\.managedObjectContext) var context private var home: Home private var predicate: NSPredicate @State var sortBy: SortDescriptor<Room> @FetchRequest private var rooms: FetchedResults<Room> init(home: Home) { self.home = home _sortBy = State(initialValue: SortDescriptor<Room>(\.name)) self.predicate = NSPredicate(format: "%K = %@", "home", self.home) _rooms = FetchRequest<Room>( sortDescriptors: [self.sortBy], predicate: self.predicate) } But it won't compile -- it says Variable 'self.rooms' used before being initialized. But... how?
Replies
2
Boosts
0
Views
614
Activity
Sep ’23
DatePicker behaving strangely
I was trying to have a date picker show up conditionally; it seems to work for iOS, but macOS (13, haven't tried it on 14 yet) it ... doesn't. In particular, if I select "custom" in this code, and then click on a date part, it brings up the graphical picker, and I can select a date, but then... it doesn't go away. Clearly I am doing something wrong, but is it clear to anyone who isn't me what that is? import SwiftUI extension View { /// Hide or show the view based on a boolean value. /// /// Example for visibility: /// /// Text("Label") /// .isHidden(true) /// /// Example for complete removal: /// /// Text("Label") /// .isHidden(true, remove: true) /// /// - Parameters: /// - hidden: Set to `false` to show the view. Set to `true` to hide the view. /// - remove: Boolean value indicating whether or not to remove the view. @ViewBuilder func isHidden(_ hidden: Bool, remove: Bool = false, disable: Bool = false) -> some View { if hidden { if !remove { self.hidden() .disabled(disable) } } else { self } } } enum ExpireType: CustomStringConvertible, Hashable, CaseIterable { case never case oneWeek case twoWeek case oneMonth case sixMonth case custom func expires(given date: Date) -> Date? { let calendar = Calendar.current switch self { case .never: return nil case .custom: return nil case .oneWeek: return calendar.date(byAdding: .weekOfYear, value: 1, to: Date()) case .twoWeek: return calendar.date(byAdding: .weekOfYear, value: 2, to: Date()) case .oneMonth: return calendar.date(byAdding:.month, value: 1, to: Date()) case .sixMonth: return calendar.date(byAdding: .month, value: 6, to: Date()) } } var description: String { switch self { case .never: return "Never" case .custom: return "Custom" case .oneWeek: return "One week" case .twoWeek: return "Two weeks" case .oneMonth: return "One month" case .sixMonth: return "Six months" } } } struct ExpireDatePicker: View { @State var expires = Date() @State var expireType = ExpireType.never @State var didChange = false @State var dateString = "" @State var showDatePicker = false private func updateText() { if self.expireType == .never { self.dateString = "" } else if self.expireType == .custom { self.dateString = self.expires.formatted(.dateTime.day().month().year()) } else { self.dateString = self.expireType.expires(given: Date())!.formatted(.dateTime.day().month().year()) } } /* * For the expire date, we want to let * the user pick one of the predfined dates, * or a custom date. */ var body: some View { VStack(alignment: .trailing) { let _ = print("showDatePicker \(self.showDatePicker)") Picker("Expiration date", selection: self.$expireType) { ForEach(ExpireType.allCases, id: \.self) { et in Text(String(describing: et)) .tag(et) } } ZStack(alignment: .trailing) { Text(dateString) .fontWeight(.ultraLight) .isHidden(self.showDatePicker, disable: true) /* * This does not work well. * I can't get it to disappear, * or relinquish control */ DatePicker("", selection: self.$expires, displayedComponents: .date) .datePickerStyle(.compact) .isHidden(!self.showDatePicker, disable: true) } } .onChange(of: self.expireType) { to in self.showDatePicker = (to == .custom) self.updateText() } .onChange(of: self.expires) { to in print("expires changed to \(self.expires)") self.showDatePicker = false } } }
Replies
1
Boosts
0
Views
802
Activity
Sep ’23
Dumb question about pf
Is it actually usable as a fireawall in macOS? I tried (as an example) adding a rule to block port 80, and it did not seem to work. But, that's all I tried -- just added a line to /etc/pf.conf
Replies
4
Boosts
0
Views
758
Activity
Sep ’23
CMake, Xcode, and Entitlements.plist
Our project uses CMake, which generates a .xcodeproj bundle. Our project has an existing network extension (Transparent Proxy Provider); I'm trying to add a second one, which is a packet filter. Xcode is extremely unhappy: error: Multiple commands produce '/Build/mybuild/Entitlements.plist' note: Target 'PacketFilter' (project 'project') has write command with output /Build/mybuild/Entitlements.plist note: Target 'ProxyProvier' (project 'project') has write command with output /Build/mybuild/Entitlements.plist My problem is: I can't tell what is generating the Entitlements.plist file! If I build each of those two targets separately, it does get generated. But if I search for "Entitlements" in the bundle, there is nothing. So I am unable to tell what is going on. Each of the extension targets has their own entitlements file -- each of them has their own CMakeLists.txt file, and has this setting: XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.entitlements" but something -- and I assume it's CMake, although I can't find anything that does that -- is producing a rule somewhere that says it creates Entitlements.plist. And it's doing it outside of the project.xcodeproj bundle? How can I track this down and/or fix it?
Replies
1
Boosts
0
Views
1.2k
Activity
Sep ’23
Cannot import a Developer ID Application certificate: Error -25294
I looked at other posts with this problem and didn't find anything that worked. I used Keychain Access and Certificate Assistant to create a CSR; I uploaded that on the portal. Downloaded the certificate, and I get that error whenever I try to import it. I can import it into the System one, but then it's untrusted, and I still can't export it as a p12 file. This is one of the few times I did everything by reading the documentation as I did it, so I'm very confused.
Replies
4
Boosts
0
Views
2.1k
Activity
Oct ’23
Developer ID Application requires different entitlement names than other
I had dealt with this in cmake, and then forgotten about it -- now trying my Xcode-only test project, and it won't work, because the profile has -systemextension as a suffix, while the one Xcode generates doesn't. Am I missing something in how to get Xcode to deal with this?
Replies
8
Boosts
0
Views
802
Activity
Oct ’23
CMake, vcpkg, and universal builds
Again, none of this is really my choice: our project is multi-platform (specifically, at this time, Windows and macOS). As a result, the people who started 8 hours before I did picked CMake and vcpkg to handle build system generation and 3rd party dependencies. (TBF, I can't blame them for this, since this does work on a Mac, for at least a simple build.) I want to support Apple Silicon, obviously. I can build native on my M1 MBP. (I could, theoretically, use lipo and create a universal bundle, but that would mean manually signing a handful of executables, and then the whole thing, unless I missed a way to do this much more easily?) We're using CircleCI for CI, or maybe github actions in the future. I have not been able to figure out how to use CMake and vcpkg to do a cross build. Not even universal, just "build for arm64 on Intel mac". googling and searching these fora hasn't shown a lot that seems to work (mainly, I think, for the vcpkg side). Which is weird, because one of the things people use CMake for is to build Android and iOS apps, which generally does mean cross-compiling. Does anyone know how to do that? I'm at the point where I'm looking at CocoaPods again -- but that will not work with CMake, so we'll have two completely different build systems, one of which requires a Mac with GUI to add/remove sources/targets.
Replies
13
Boosts
0
Views
7.3k
Activity
Oct ’23