Post

Replies

Boosts

Views

Activity

Reply to dyld linking to the wrong dylib
That's right - this setup has two separate libraries, both of them have the same binary name "MyLibrary". [The exported symbols are all different because the symbols contain the version "A" or "B" in the symbol names.] I was surprised that this could even work, but my coworkers told me that they have been using this scheme for some time, and it seems to work fine on most other Macs. Thanks. Devendra.
Mar ’23
Reply to Enumerating available interfaces for use with NWEthernetChannel
Hi Quinn, You can get this from the BSD interface name (en7 in my example) using the old school BSD API (SIOCGIFXMEDIA). If I understand this correctly, this ioctl provides the settings - and may not be the actual speed that the interface is working on. (BTW all of that is also available via NWInterface APIs). What we would need seems to what the ifconfig utility seems to use - SIOCGIFLINKPARAMS, but that one seems to be PRIVATE - so we are not able to use that. Thanks. Devendra.
Apr ’21
Reply to Enumerating available interfaces for use with NWEthernetChannel
Hi Quinn, Agreed - we have some very unique requirements! We need the actual link speed - to be able to identify cable issues, for example. Regarding the enhancement request - I saw that other people had already file some. But I think you are quite right - more is better! So I filed one: FB9074593 - Need coherent APIs for using NWEthernetChannel. As always, Thank You for your support! Devendra.
Apr ’21
Reply to Enumerating available interfaces for use with NWEthernetChannel
Thanks Quinn - that's exactly what we ended up doing. It just sounds improper to have to use five different APIs (SCNetwork, NWEthernet, ifaddrs, DynamicStore, and sysctl) to work with the same network interface!! The sysctl is also needed to determine the link speed - we also need to show that to the user - as DynamicStore only provides link status. I hope this gets some attention from Apple in the future! Thanks. Devendra.
Mar ’21
Reply to Enumerating available interfaces for use with NWEthernetChannel
Thanks Quinn for looking into this. Here's the situation... We have an Audio over Ethernet solution which communicates using our own Layer 2 protocol to devices connected on the (private) network. As part of this - we allow the user to select which Ethernet interface to use for this audio driver. Typical user workflow often involves the user wanting to select the interface in our software even when no device is physically connected to the interface - because they know where they will be connecting the devices later on. Or simply, they want to setup the rest of the system while the device (or switch) is powered down - etc. All of this is working well in our current releases - but we are using Kernel Extensions and the APIs available there. As you know, we need to move out of the kernel - and thus the need for NWEthernetChannel and friends. Thanks. Devendra.
Mar ’21
Reply to Enable showing private logs on macOS
Thank You Quinn! I was able to build a profile using this information, the Configurator 2 app, inspecting some other profiles, and tweaking the generated xml by hand. It would be nice if the Configurator 2 supported this directly. Here's what I used - in case someone else wants to do this. IMPORTANT: Please consider Quinn's warning about using this on a production Mac! xml ?xml version="1.0" encoding="UTF-8"? !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" plist version="1.0" dict keyConsentText/key dict keydefault/key stringThis will enable showing private strings and data in Unified Logs./string /dict keyPayloadContent/key array dict keyPayloadDisplayName/key stringManagedClient logging/string keyPayloadEnabled/key true/ keyPayloadIdentifier/key stringcom.apple.system.logging.89AE58D8-0A4A-448B-8AE0-761DEE2D007F/string keyPayloadType/key stringcom.apple.system.logging/string keyPayloadUUID/key string89AE58D8-0A4A-448B-8AE0-761DEE2D007F/string keyPayloadVersion/key integer1/integer keySystem/key dict keyEnable-Private-Data/key true/ /dict /dict /array keyPayloadDescription/key stringAllows showing private log messages./string keyPayloadDisplayName/key stringAllow Private Logs/string keyPayloadIdentifier/key stringcom.yourdomain.enable.private.logs/string keyPayloadOrganization/key stringYour Organization/string keyPayloadRemovalDisallowed/key false/ keyPayloadType/key stringConfiguration/string keyPayloadUUID/key string529DF49A-6CB3-4DE9-A29F-4C41EC88BFDD/string keyPayloadVersion/key integer1/integer Save the above in a text file - give it an extension .mobileconfig - and load it in Configurator 2 - and "sign it"! This can now be installed on any Mac. Thanks. Devendra.
Mar ’21