Bundle ID

RSS for tag

A bundle ID is a unique identifier for a single app.

Posts under Bundle ID tag

24 Posts

Post

Replies

Boosts

Views

Activity

APNs Background Push Success but Wallet Pass Fails with ‘Unable to Deserialize JSON Payload’ on Device
I'm working on implementing Apple Wallet passes using background push notifications. My server successfully sends the push notification using APNs. The response from the server is HTTP/2 200, and the device receives the push — I can confirm this from device logs. However, the device logs show the following error: "Failed to parse JSON message payload for topic " "Unable to deserialize JSON message payload" My payload is below 2 payload. //string payload = "{"aps":{"content-available":1}}"; string payload = JsonConvert.SerializeObject(new { aps = new Dictionary<string, object> { { "content-available", 1 } } }); string curlArgs = $"-s -o nul -w \"%{{http_code}}\" " + $"--data-binary \"{payload}\" " + $"-H \"apns-topic: {bundleId}\" " + $"-H \"apns-push-type: background\" " + $"-H \"apns-priority: 5\" " + $"-H \"content-type: application/json\" " + $"-H \"authorization: bearer {jwt}\" " + $"--http2 https://api.push.apple.com/3/device/{token}"; I’ve confirmed that: The device has the Wallet pass installed. The apns-topic header is set to my passTypeIdentifier. The apns-push-type is background and apns-priority is 5. Steps to Reproduce: Install Wallet pass on iOS device. Send background push to device using the above payload. Observe the device logs using Console.app or log stream. See error: unable to deserialize JSON message payload. Is there a specific payload format expected for Wallet passes? Or any additional fields required in the push payload to avoid this deserialization error?
1
0
226
Jul ’25
Clear Rosetta Flag for Desktop App
A little bit of background: If you make an app with no compiled Arm64 binaries in the Content/MacOS folder, MacOS erroneously identifies it as an Intel based app. After launching the app, MacOS will prompt the user to install rosetta, despite the app running fine natively. I found a simple solution to this issue, either include a do-nothing compiled binary to Contents/MacOS, or add <key>LSArchitecturePriority</key> <array> <string>arm64</string> </array> to the plist. The problem is this change only fixes the issue if you also change the BundleID. If you run the app even once with the bad configuration, MacOS seems to cache the intel flag somewhere based on the BundleID. It does not seem to be cached in the usual places. How to reproduce: (On apple silicon) You probably already have rosetta, and it is a pain to remove, so a VM is likely needed. Make an empty app with Script Editor, export with file format: Application. Replace Example.app/Content/MacOS/applet with a script of the same name. Make sure the old applet is gone, don't rename it and leave it in the directory. I used: #!/usr/bin/osascript display dialog "Hello, world" Make it executable sudo chmod +x ./Example.app/Content/MacOS/applet Run the app and observe that it asks you to install rosetta Add the previously mentioned fix to you plist, including the BundleID change Run it again and observe that it now works Change your BundleID back. Running this now raises the rosetta prompt despite the fact that it runs fine on a clean install of MacOS. Things I have tried: Rebooting, no effect Reforming the app, no effect Reboot in recovery mode, no effect lsregister -delete, no effect ~/Library/Preferences, ~/Library/Caches, /Library/Preferences, and /Library/Caches, none contain an entry for the BundleId defaults delete, domain not found
3
1
1.3k
Jun ’25
App Store Connect API: 'UNIVERSAL' is not a valid value for the attribute 'platform'
Hello, We are encountering an issue when using the App Store Connect API to create a bundle ID via the endpoint: POST https://api.appstoreconnect.apple.com/v1/bundleIds In our request, we specify the platform value "UNIVERSAL", which according to the official documentation is a valid value: BundleIdPlatform documentation However, the API now returns the following error response: { "errors": [ { "code": "ENTITY_ERROR.ATTRIBUTE.TYPE", "detail": "'UNIVERSAL' is not a valid value for the attribute 'platform'. Expected one of: 'IOS', 'MAC_OS'", "status": "409", "title": "An attribute in the provided entity has the wrong type" } ] } According to the documentation, the platform attribute accepts the following values: IOS, MAC_OS and UNIVERSAL. It appears that UNIVERSAL is no longer accepted even though it is still listed as a valid option. Has support for UNIVERSAL been deprecated or changed recently? If so, what is the current recommended way to create bundle IDs that are intended for multiple platforms? Any clarification would be greatly appreciated. Thank you!
0
0
189
Jun ’25
APNs Background Push Success but Wallet Pass Fails with ‘Unable to Deserialize JSON Payload’ on Device
I'm working on implementing Apple Wallet passes using background push notifications. My server successfully sends the push notification using APNs. The response from the server is HTTP/2 200, and the device receives the push — I can confirm this from device logs. However, the device logs show the following error: "Failed to parse JSON message payload for topic " "Unable to deserialize JSON message payload" My payload is below 2 payload. //string payload = "{"aps":{"content-available":1}}"; string payload = JsonConvert.SerializeObject(new { aps = new Dictionary<string, object> { { "content-available", 1 } } }); string curlArgs = $"-s -o nul -w \"%{{http_code}}\" " + $"--data-binary \"{payload}\" " + $"-H \"apns-topic: {bundleId}\" " + $"-H \"apns-push-type: background\" " + $"-H \"apns-priority: 5\" " + $"-H \"content-type: application/json\" " + $"-H \"authorization: bearer {jwt}\" " + $"--http2 https://api.push.apple.com/3/device/{token}"; I’ve confirmed that: The device has the Wallet pass installed. The apns-topic header is set to my passTypeIdentifier. The apns-push-type is background and apns-priority is 5. Steps to Reproduce: Install Wallet pass on iOS device. Send background push to device using the above payload. Observe the device logs using Console.app or log stream. See error: unable to deserialize JSON message payload. Is there a specific payload format expected for Wallet passes? Or any additional fields required in the push payload to avoid this deserialization error?
Replies
1
Boosts
0
Views
226
Activity
Jul ’25
Can the bundle ID for an unsubmitted app be reused?
I was developing an app using a certain bundle ID, but then had to delete it (and I also removed the app ID Identifier) My question is, can I make a new app with the exact same bundle ID as I was using on the removed one? Since the old app never went into production I don't see why that would be a problem
Replies
2
Boosts
0
Views
566
Activity
Jul ’25
Clear Rosetta Flag for Desktop App
A little bit of background: If you make an app with no compiled Arm64 binaries in the Content/MacOS folder, MacOS erroneously identifies it as an Intel based app. After launching the app, MacOS will prompt the user to install rosetta, despite the app running fine natively. I found a simple solution to this issue, either include a do-nothing compiled binary to Contents/MacOS, or add <key>LSArchitecturePriority</key> <array> <string>arm64</string> </array> to the plist. The problem is this change only fixes the issue if you also change the BundleID. If you run the app even once with the bad configuration, MacOS seems to cache the intel flag somewhere based on the BundleID. It does not seem to be cached in the usual places. How to reproduce: (On apple silicon) You probably already have rosetta, and it is a pain to remove, so a VM is likely needed. Make an empty app with Script Editor, export with file format: Application. Replace Example.app/Content/MacOS/applet with a script of the same name. Make sure the old applet is gone, don't rename it and leave it in the directory. I used: #!/usr/bin/osascript display dialog "Hello, world" Make it executable sudo chmod +x ./Example.app/Content/MacOS/applet Run the app and observe that it asks you to install rosetta Add the previously mentioned fix to you plist, including the BundleID change Run it again and observe that it now works Change your BundleID back. Running this now raises the rosetta prompt despite the fact that it runs fine on a clean install of MacOS. Things I have tried: Rebooting, no effect Reforming the app, no effect Reboot in recovery mode, no effect lsregister -delete, no effect ~/Library/Preferences, ~/Library/Caches, /Library/Preferences, and /Library/Caches, none contain an entry for the BundleId defaults delete, domain not found
Replies
3
Boosts
1
Views
1.3k
Activity
Jun ’25
App Store Connect API: 'UNIVERSAL' is not a valid value for the attribute 'platform'
Hello, We are encountering an issue when using the App Store Connect API to create a bundle ID via the endpoint: POST https://api.appstoreconnect.apple.com/v1/bundleIds In our request, we specify the platform value "UNIVERSAL", which according to the official documentation is a valid value: BundleIdPlatform documentation However, the API now returns the following error response: { "errors": [ { "code": "ENTITY_ERROR.ATTRIBUTE.TYPE", "detail": "'UNIVERSAL' is not a valid value for the attribute 'platform'. Expected one of: 'IOS', 'MAC_OS'", "status": "409", "title": "An attribute in the provided entity has the wrong type" } ] } According to the documentation, the platform attribute accepts the following values: IOS, MAC_OS and UNIVERSAL. It appears that UNIVERSAL is no longer accepted even though it is still listed as a valid option. Has support for UNIVERSAL been deprecated or changed recently? If so, what is the current recommended way to create bundle IDs that are intended for multiple platforms? Any clarification would be greatly appreciated. Thank you!
Replies
0
Boosts
0
Views
189
Activity
Jun ’25