Post

Replies

Boosts

Views

Activity

SKCloudServiceController uses wrong Apple Id on Mac Catalyst!
This is becoming a big issue for us. We have a MusicKit app developed using Catalyst and since we released the Mac version we’ve had a constant trickle of users who seem to be completely unable to use the app because SKCloudServiceController().requestCapabilities reports that they do not have .addToCloudMusicLibrary capability, although this is clearly incorrect and they have all the right permissions (the iOS app version works fine). After a LOT of investigation we’ve discovered that on a Mac where the logged-in user has: iCloud logged-in using Apple ID “user1” App Store & Book Store logged-in using Apple ID “user2” Apple Music/iTunes/Media logged-in under Apple ID “user3” SKCloudServiceController().requestCapabilities will sometimes report the Apple Music capabilities of “user2” or even “user1” rather than “user3”. This is very bad: it should only ever use the “user3” account. In one situation, user2 actually had an Apple Music account with the requisite permissions and our app ended-up creating playlists in user2’s account rather than user3’s account. We’ve reported this as a bug (FB9100381) but heard nothing back. Can someone please acknowledge that this is being looked-at? The issue does appear to be intermittent and some Mac’s work fine. However we find that a brand-new Mac set up with a single user account where that account uses different apple id’s, as above, the issue is quite easy to reproduce. iOS handles this 100% correctly. It’s only a MacOS (Big Sur) issue and we’re getting a constant trickle of unwarranted of 1* reviews because of it. Thanks!
6
0
1.6k
Jun ’21
Catalyst: SKCloudServiceController works on wrong Apple Id!
We’ve reported a bug for this and I’m really looking for workarounds in the meantime. The problem: if you use SKCloudServiceController on Catalina, instead of using the account / Apple Id of the current user’s iTunes/Media account as it should, it uses the account / Apple Id of the current user’s iCloud account instead. On most installs these accounts are one & the same so the issue is not apparent. However there is a sizeable minority of Mac users who use different accounts for their itunes login and for these users any Catalyst apps which interact with Apple Music will end up interacting with the WRONG account (e.g. they will create playlists for the wrong user). iOS handles this correctly. So the question is: is there any way to work around this? Either at the MacOS level (apart from telling users not to use a different account) or at the SKCloudServiceController level (e.g. to specify which account to use)?
1
0
1.1k
May ’21
How to enable addToCloudMusicLibrary?
Our app accesses Apple Music and the user's music library. It is installed & running fine on lots of iOS devices. Thanks to a recent release using Catalyst it's also now installed & running fine on a number of Mac's. However we've just had an error reported by one of our Mac users which I don't understand. Specifically: The app is connecting to the user's Apple Music account no problem It then asks for cloud capabilities instead of getting both musicCatalogPlayback and addToCloudMusicLibrary (as we'd normally expect) it's only getting the former. Our app requires addToCloudMusicLibrary to operate. So in the code snippet below it prints "No add to library capability": SKCloudServiceController().requestCapabilities { (cloudServiceCapability, error) in     if let error = error {         print("Error: \(error.localizedDescription)")         return     }     guard cloudServiceCapability.contains(.musicCatalogPlayback) else {         print("No music catalog playback")         return     }     guard cloudServiceCapability.contains(.addToCloudMusicLibrary) else {         print("No add to library capability")         return     }     print("Good to go") } My initial assumption was that the user had not enabled iCloud Sync, but this has clearly been enabled. What else could cause this? The Mac in question is an M1 MBP. We don't have many M1 installs so I'm somewhat concerned this could be an M1 / Catalyst issue. Thanks in advance.
0
0
970
Mar ’21
requestUserToken returns SKErrorDomain error 1, but only during App Review!
Hi there.We are experiencing an issue where our App keeps getting rejected because it's returning an "SKErrorDomain error 1" whenever it calls requestUserToken during App Review. The strange thing is that it seems to run perfectly for all of our TestFlight users & developers. Code snippet here: SKCloudServiceController().requestCapabilities(completionHandler: { (cloudServiceCapability, error) in // Lots of error checking here guard cloudServiceCapability.contains(.addToCloudMusicLibrary) else { // Raise an error... return } guard cloudServiceCapability.contains(.musicCatalogPlayback) else { // Raise an error... return } let newDeveloperToken = "a developer token generated by python script" SKCloudServiceController().requestStorefrontCountryCode(completionHandler: { (countryCode, error) in // Lots more error checking here SKCloudServiceController().requestUserToken(forDeveloperToken: newDeveloperToken, completionHandler: { (token, error) in guard error == nil else { // Error: "The operation couldn't be completed. (SKErrorDomain error 1.)" gets thown here during App Review return } // Success // We never get here during App Review! }) }) })Can anyone give us a pointer on where the issue might be? I've asked App Review to check they are logged-in with an Apple Id with a valid Apple Music account, and I've double-checked that our developer token does not expire for a long period. Is there anything else that we should check on regarding our Developer token? Any ideas would be very welcome.Thanks in advance!
2
0
1.3k
Oct ’19
App rejected - linked IAP not returned by SKProductsRequest
Hi.Am currently struggling to get approval for our first version of an app and have hit a brick wall. Am hoping someone might be able to help point us in the right direction - any help would be greatly appreciated.Background: One of the first things our app does on startup is call SKProductsRequest to get it's IAP (it only has one). When we or any of our TestFlight users run our app everything works fine - the IAP is returned and when the user reaches the appropriate screen we give them a "Purchase" button along with localised pricing information. This has been 100% reliable.The issue: When our app gets run during the Review process it seems as though the SKProductsRequest is not returning any IAPs. If no IAPs are returned we display an error message instead of the "Purchase" button and we've now been rejected twice because the message, rather than the purchase button, is being displayed.Question: Is there anything we need to specifically code for when the app is being reviewed? Why might the response during review be different from when we are testing the app ourselves?Our initial app binary was submitted along side an IAP and the two were linked in App Store Connect when we submitted the binary. We have asked the Review team whether they have turned-over the IAP to their environment but they have referred us to Developer Support.Thanks in advance to to anyone who can give us any pointers!
5
0
1.9k
Aug ’19