We are using NSUserNotification to display local notifications on macOS in notification center. However, when the applications are displayed within the Notification Center window, they have, as the name of the application, the name of our app bundle (i.e. if our application were installed in /Application/MyApplication.app, it would show as "MYAPPLICATION".We would like to change/modify this string that gets displayed within Notification Center (idealy, localized). We've tried changing CFBundleName and CFBundleDisplayName - and localizing them both - to no avail. The only way we have found to change the name that displays in notification center is to change the name on-disk (i.e. to name the application /Application/MyLocalizedApplicationName.app)It doesn't seem like this is the "right" approach...is there some other way to set the name of the application that gets displayed in notification center?(to clarify a bit, this is when opening notification center and looking at *previously-received* notifications. It also is the name that shows up when opening the "Notifications" settings pane)
Post
Replies
Boosts
Views
Activity
I realize that kexts have been deprecated with Catalina, and we are working towards replacing them, but after upgrading to Xcode 11, I am no longer able to build and load my kext at all. With the exact same code and project (only difference is building with Xcode 11), I get the following error when trying to load my built kext:kxld[com.myorg.kext]: The super class vtable 'vtable for IOUserClient' for vtable 'vtable for com_myorg_kext_UserClient' is out of date. Make sure your kext has been built against the correct headers.
kxld[com.myorg.kext]: The super class vtable 'vtable for IOService' for vtable 'vtable for com_myorg_kext' is out of date. Make sure your kext has been built against the correct headers.xld[com.myorg.kext]: The super class vtable 'vtable for IOService' for vtable 'vtable for com_myorg_kext' is out ofdIs there some way to be able to build the kext in Xcode 11, or do I just keep Xcode 10.3 around for the express purpose of building kexts?
I am trying to set up catalina machine to point to a kernel core dump server. However, I get the following (when booted to the recovery partition):$ nvram boot-args="debug=0xd44 _panicd_ip=<CORE_SERVER_IP>"
nvram: Error setting variable - 'boot-args': (iokit/common) general errorI am booted into the recovery partition. Any ideas on how I can point my machine to the kernel core dump server?
Is there some way to trigger a cleanup process when an app is deleted (moved to the Trash)? It seems that there is...but I can't seem to find what API or mechanism to use.
I am working for a company (Company A) that was recently acquired by another company (Company B). We have a Developer ID certificate under both companies, and we are in the process of transitioning all our applications from Company A to Company B.
Our Developer Program for Company A is set to expire in a couple of weeks, and we are wondering if we can continue to sign with Company A's Developer ID certificate for a couple of months after the developer program has lapsed. The Developer ID certificate doesn't expire until next year.
The problem is that there are some release cycle constraints on our side (as well as some deployment constraints with some of our largest customers) that means one application will not be able to be fully-transitioned to be signed by Company B's Developer ID certificate prior to the expiration of Company A's developer program. We plan to do a final release update for that application within a couple of months - which needs to be signed with Company A's Developer ID, and after that point we can begin using Company B's Developer ID.
So - the question is if we can let our Company A developer program expire (and use our Company B developer program for all DTS and certificate needs moving forward), but continue to sign our upcoming release with Company A's Developer ID certificate in a couple of months (after the developer program has expired, but before the certificate expires). Or, do we need to renew our Company A developer program for another year in order to continue using the Developer ID certificate in a couple of months?
Is there some kind of page describing details on how to build third-party open source libraries? In the platforms state of the union, it showed there were quite a few libraries already ported - is there some documentation on how to get access to build instructions for those (i.e. boost)?
Alternatively, is there some kind of documentation as to how to modify a "standard" ./configure && make && make install workflow to just attempt at building an ARM64 build (I can do lipo after the fact to create the universal binary).
In the video, it was mentioned that the machine the presenter was using was running in System Extension developer mode to make things easier to develop and test. How does one go about enabling this mode? What sorts of things does it make easier? Is there documentation around this mode?
I can see questions that I’ve asked in my profile page - but is there some way to see all the posts and comments that I’ve made - even to questions I did not originate? Or a list of threads that I’m following or interested in? I find the navigation of the new developer forums quite lacking.
I would like to (optionally) provide the ability to configure my Mac App (which is distributed via a DeveloperID certificate and notarization) using profiles that are pushed down via MDM. Is there documentation that I can reference to find out the APIs needed to be able to read those values as they are set by the MDM?
On a machine running Big Sur 11.2.1, I'm getting a flood of messages in my console of this format:
2021-02-11 10:10:53.942696-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:53.942861-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:53.992408-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:53.992560-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:53.992735-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:54.042439-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:54.042573-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
2021-02-11 10:10:54.042728-0700 0x2d2 Fault 0x0 0 0 kernel: (IOAcceleratorFamily2) bool IOAccelResource2::map(): resource already has a map
Is there something I can clear or clean in order to prevent these from being spit out so frequently?
I’m trying to set up a VPN profile to auto-configure my network extension via MDM, and am wondering what the difference between “Provider Bundle Identifier” and “Bundle Identifier” are. That is - which component is which? I’m guessing that one of them is the bundle ID for the app bundle itself, and the other is the bundle ID for the extension, but I don’t know which is which.
When I use an MDM (JAMF, in my case) to deploy an application which contains a system extension, I am able to whitelist that extension to be automatically installed. However, when I uninstall the application, the system extension is not automatically removed.
Is there a limit to the number of NETransparentProxyNetworkSettings rules? That is, how many excludedNetworkRules and/or includedNetworkRules am I allowed to have before the system will reject it?
As of this afternoon, I'm getting the following error when trying to notarize binaries (I have masked out my identifiers and file names):
[2021-03-08 15:36:13 MST] main INFO: Attempting to connect to Apple's webDAV...
[2021-03-08 15:36:13 MST] main DEBUG: requestUri:[https://itmsdav.apple.com:443/5/XXXXXXXXXX/uploading/] resource:[https://itmsdav.apple.com:443/5/XXXXXXXXXX/uploading/]
[2021-03-08 15:36:13 MST] main DEBUG: PROPFIND depth:[0]
[2021-03-08 15:36:13 MST] main DEBUG: PROPFIND statusCode:[405]
[2021-03-08 15:36:13 MST] main ERROR: An error occurred while processing the http request for the webDAV upload.
[2021-03-08 15:36:13 MST] main ERROR: An exception has occurred: Method Not Allowed
[2021-03-08 15:36:13 MST] main DEBUG: com.apple.transporter.transport.webdav.HttpException: Method Not Allowed
at com.apple.transporter.transport.webdav.WebdavFile.getProperties(WebdavFile.java:274)
at com.apple.transporter.transport.webdav.WebdavFile.init(WebdavFile.java:144)
at com.apple.transporter.transport.webdav.WebDAVTransport.createConnectionToWebDAVURL(WebDAVTransport.java:602)
at com.apple.transporter.transport.webdav.WebDAVTransport.uploadPackage(WebDAVTransport.java:345)
at com.apple.transporter.operation.Upload.performUploadOperation(Upload.java:1039)
SNIP
at com.apple.transporter.launcher.Application.start(Application.java:450)
at com.apple.transporter.launcher.Application.main(Application.java:947)
[2021-03-08 15:36:13 MST] main DBG-X: Memory: [JVM] 957M free, 1024M total, 2048M max [System] (Physical) 1978M free, 32768M total (Swap) 0 free, 0 total
[2021-03-08 15:36:13 MST] main DBG-X: Using operation named: uploadFailedWithArguments
[2021-03-08 15:36:13 MST] main DBG-X: Apple's web service operation input parameters:
[2021-03-08 15:36:13 MST] main DBG-X: parameter Application = iTMSTransporter
[2021-03-08 15:36:13 MST] main DBG-X: parameter BaseVersion = 2.1.0
[2021-03-08 15:36:13 MST] main DBG-X: parameter CPUToken = 15080805-5958-4e1f-a472-a252f3e9e9f3/1615242973101
[2021-03-08 15:36:13 MST] main DBG-X: parameter Client = altool
[2021-03-08 15:36:13 MST] main DBG-X: parameter ClientChecksumInfo = [{CalculationTime=118, FileLastModified=1615242877444, Filename=XXXXXXXXXXXXX.zip, FileSize=70984309, CalculatedChecksum=57e8bcf6956fb612f53e2d68831969c4}]
[2021-03-08 15:36:13 MST] main DBG-X: parameter ClientVersion = 4.029 (1194)
[2021-03-08 15:36:13 MST] main DBG-X: parameter ItcProviderName = XXXXXXXXXX
[2021-03-08 15:36:13 MST] main DBG-X: parameter NewPackageName = com.XXXXXXXXXXXXXXXXXXXX.itmsp
[2021-03-08 15:36:13 MST] main DBG-X: parameter NumberBytesTransferred = (null)
[2021-03-08 15:36:13 MST] main DBG-X: parameter OSIdentifier = Mac OS X 11.2.3 (x86_64); jvm=14.0.2+12-iTunesOpenJDK-5; jre=14.0.2+12-iTunesOpenJDK-5
[2021-03-08 15:36:13 MST] main DBG-X: parameter StatisticsArray = [{duration=0.265851828, method=clientApplication.start, count=1}, {duration=0.653015636, method=validateMetadata, count=1}, {duration=0.275264665, method=lookupTransportDiagnostic, count=1}, {duration=1.027068726, method=validateAssets, count=1}, {duration=2.22303E-4, method=createTransportPod, count=1}]
[2021-03-08 15:36:13 MST] main DBG-X: parameter StatisticsClientStartDateTimeZoneISO = 2021-03-08T15:36:13-07:00
[2021-03-08 15:36:13 MST] main DBG-X: parameter StatisticsPreviousCallDurationInSecs = 0.170076956
[2021-03-08 15:36:13 MST] main DBG-X: parameter TransferTime = 0
[2021-03-08 15:36:13 MST] main DBG-X: parameter Transport = DAV
[2021-03-08 15:36:13 MST] main DBG-X: parameter TransportLogCompressed = (suppressed)
[2021-03-08 15:36:13 MST] main DBG-X: parameter TransporterArguments = -m upload -u XXXXXXXXXX@XXXXXXXXXXX -vp json -DTxHeaders=eyJqZW5nYSI6dHJ1ZX0= -sessionid @env:1396BB96-381F-40CF-A00F-D2ADA70152D7 -sharedsecret hidden value -itc_provider XXXXXXXXXX -t DAV -f /var/folders/bp/z43l86yn10n79qy_7v12nbmw0000gn/T/3C16D3DD-30B5-460D-A80E-8D67A7ED9226/com.XXXXXXXXXXX.itmsp -indicator true -v eXtreme -Dtransporter.client=altool -Dtransporter.client.version=4.029 (1194)
[2021-03-08 15:36:13 MST] main DBG-X: parameter Version = 2.1.0
[2021-03-08 15:36:13 MST] main DBG-X: parameter iTMSTransporterMode = upload
[2021-03-08 15:36:13 MST] main INFO: id = 20210308153613-516
[2021-03-08 15:36:13 MST] main INFO: iTMSTransporter Correlation Key: 1d172d41-6b01-49ba-87b9-aadec296590b-0001
[2021-03-08 15:36:14 MST] main DBG-X: Apple's web service operation return value:
[2021-03-08 15:36:14 MST] main DBG-X: parameter EnableJWTForAllCalls = false
[2021-03-08 15:36:14 MST] main DBG-X: parameter SessionExpiration = 2021-03-12T22:36:13.662Z
[2021-03-08 15:36:14 MST] main DBG-X: parameter ShouldUseRESTAPIs = false
[2021-03-08 15:36:14 MST] main DBG-X: parameter Success = true
[2021-03-08 15:36:14 MST] main DBG-X: parameter StreamingSettings = {LogStreamingEnabled=true, MultipartUploadsEnabled=true, AssetDescriptionStreamingEnabled=false}
[2021-03-08 15:36:14 MST] main INFO: Transporter's command line arguments are: -m upload -u XXXXXXXXXX@XXXXXXXXXXX -vp json -DTxHeaders=eyJqZW5nYSI6dHJ1ZX0= -sessionid @env:1396BB96-381F-40CF-A00F-D2ADA70152D7 -sharedsecret hidden value -itc_provider XXXXXXXXXX -t DAV -f /var/folders/bp/z43l86yn10n79qy_7v12nbmw0000gn/T/3C16D3DD-30B5-460D-A80E-8D67A7ED9226/com.XXXXXXXXXXX.itmsp -indicator true -v eXtreme -Dtransporter.client=altool -Dtransporter.client.version=4.029 (1194)
[2021-03-08 15:36:14 MST] main DBG-X: Returning 1
2021-03-08 15:36:14.938 altool[12326:183763] Out:
Package Summary:
1 package(s) were not uploaded because they had problems:
/var/folders/bp/z43l86yn10n79qy_7v12nbmw0000gn/T/3C16D3DD-30B5-460D-A80E-8D67A7ED9226/com.XXXXXXXXXXX.itmsp - Error Messages:
An error occurred while processing the http request for the webDAV upload.
An exception has occurred: Method Not Allowed
2021-03-08 15:36:15.024 altool[12326:183754] * Error: Unable to notarize app.
2021-03-08 15:36:15.024 altool[12326:183754] * Error: code -18000 (An error occurred while processing the http request for the webDAV upload.)
2021-03-08 15:36:15.024 altool[12326:183754] *** Error: code -18000 (An exception has occurred: Method Not Allowed)
Is there something going on with the notarization servers? Or is there something I'm doing wrong? This has worked until just this afternoon (I was able to notarize this morning using the same code).
Given I run this command:
$ defaults write com.example.encoding room -string "Baño"
plutil shows that it is properly stored in UTF-8, and the character is correct:
$ plutil -convert xml1 ~/Library/Preferences/com.example.encoding.plist -o -
<?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>
<key>room</key>
<string>Baño</string>
</dict>
</plist>
I can also get this value from PlistBuddy:
$ /usr/libexec/PlistBuddy -c "Print :room" ~/Library/Preferences/com.example.encoding.plist
Baño
However - if I try using defaults read, the value comes back garbled - the special character (ñ) does not get returned correctly:
$ defaults read com.example.encoding room
Ba\361o
Is there some way to set the encoding that defaults read uses?