Post

Replies

Boosts

Views

Activity

Transferring multiple apps that use Sign in with Apple
Hello, These questions are in regard to transferring Sign in With Apple users as part of an app transfer to another developer team. We’ve already read and absorbed the following documents from Apple, but we still have questions that aren’t covered in these documents, due to the unique nature of our use case. Transferring Your Apps and Users to Another Team Bringing New Apps and Users Into Your Team Resolving Sign in with Apple Response Errors Background: We have a suite of three apps that we are tranferring to another developer team. Each app supports Sign In With Apple. Our accounts/users are shared among all three apps. We have all three apps currently grouped together for SIWA. We’re aware that we will need to un-group them before doing the SIWA user transfer. Questions: The API for generating and exchanging transferIDs for users (endpoint /auth/usermigrationinfo) requires a parameter client_id which is described in the docs as "The identifier (App ID or Services ID) for the transferring app." Since we are transferring a set of three apps which share users, we aren’t sure which AppID to use, or whether it matters? We’re assuming we only need to transfer the users once in total (not once-per-app), is this correct? Does it matter which of the three apps’ AppID we use for this? To give more specific context to this question, here’s a more detailed example: For simplicity’s sake, let’s say we have 10 user accounts total, and any of them could sign into any of our three apps. Users 1-7 have signed into all three apps previously User8 has only signed into AppA User9 has only signed into AppB User10 has only signed into AppC Ideally we want to transfer all 10 users all at once. Does it matter which AppID we use for client_id? For example, if we use AppA as the client_id, will we still be able to transfer all 10 users (including User9 and User10)? We’ve tested this on the sender team side, and we’re able to successfully create transferIDs for all 10 users using AppA as client_id. But we’re not sure if this will still work on the recipient side, that we’ll be able to exchange the transferID for all 10 users. . To add another wrinkle, there is a possibility that we won’t be able to transfer one of our three apps (due to one of Apple’s limitations for app transfer). In that case we’ll have to create a new app on the recipient team and shut down the old one on the sender team. But the other two apps in the suite would still be transferred normally. We’d still want all 10 users to be transferred, as the intention is still that all our users can sign into any of their existing accounts in any of the three apps. Would this scenario change the answer to question 1? For example, say we aren’t able to transfer AppC over to the new development team, but instead had to create a new app, AppCNew on the new development team. But we still are able to transfer AppA and AppB. Would we still be able to transfer all 10 users using AppA as the client_id? Including User10 who only ever signed in to AppC (which isn’t being transferred)? We'd really appreciate any answers or guidance that anyone can provide. Thank you, Adam
4
6
642
Dec ’24
Crashes when trying to register SWCollaborationMetadata in NSItemProvider
We're doing a custom collaboration and trying to follow the example code in the presentation "Integrate your custom collaboration app with Messages". This issue is happening on iOS 16 beta 4. After creating and setting up a SWCollaborationMetadata object, we're creating an NSItemProvider and registering the metadata object. The call to registerObject() is crashing with the exception: +[_SWCollaborationMetadata writableTypeIdentifiersForItemProvider]: unrecognized selector sent to class 0x1ea29aed0 It seems like the SWCollaborationMetadata is maybe not actually compliant to the NSItemProviderWriting protocol, despite the fact that it is documented to be so. In fact, looking at the header `SWCollaborationMetadata.h, it looks like it does not comply with NSItemProviderWriting after all: @interface SWCollaborationMetadata : NSObject <NSSecureCoding, NSCopying, NSMutableCopying> ...which of course would explain the crash. I've set up a sample project which contains basically identical code to what is shown in the WWDC session, and still getting this issue. I have added the SharedWithYou entitlement. Is this a known issue in the current betas, or is there some updated sample code somewhere. Here's the function I'm testing it with: func share() {      let localIdentifier = SWLocalCollaborationIdentifier(rawValue: "identifier")      let metadata = SWCollaborationMetadata(localIdentifier: localIdentifier)      metadata.title = "Content Title"      metadata.initiatorHandle = "user@example.com"      let formatter = PersonNameComponentsFormatter()      if let components = formatter.personNameComponents(from: "Devin") {          metadata.initiatorNameComponents = components      }     let itemProvider = NSItemProvider()      itemProvider.registerObject(metadata, visibility: .all)      let activityConfig = UIActivityItemsConfiguration(itemProviders: [itemProvider])      let shareSheet = UIActivityViewController(activityItemsConfiguration: activityConfig)   self.present(shareSheet, animated: true) } The crash happens at the call to itemProvider.registerObject(metadata, visibility: .all) Thanks, Adam
1
0
1.4k
Aug ’22
Transferring multiple apps that use Sign in with Apple
Hello, These questions are in regard to transferring Sign in With Apple users as part of an app transfer to another developer team. We’ve already read and absorbed the following documents from Apple, but we still have questions that aren’t covered in these documents, due to the unique nature of our use case. Transferring Your Apps and Users to Another Team Bringing New Apps and Users Into Your Team Resolving Sign in with Apple Response Errors Background: We have a suite of three apps that we are tranferring to another developer team. Each app supports Sign In With Apple. Our accounts/users are shared among all three apps. We have all three apps currently grouped together for SIWA. We’re aware that we will need to un-group them before doing the SIWA user transfer. Questions: The API for generating and exchanging transferIDs for users (endpoint /auth/usermigrationinfo) requires a parameter client_id which is described in the docs as "The identifier (App ID or Services ID) for the transferring app." Since we are transferring a set of three apps which share users, we aren’t sure which AppID to use, or whether it matters? We’re assuming we only need to transfer the users once in total (not once-per-app), is this correct? Does it matter which of the three apps’ AppID we use for this? To give more specific context to this question, here’s a more detailed example: For simplicity’s sake, let’s say we have 10 user accounts total, and any of them could sign into any of our three apps. Users 1-7 have signed into all three apps previously User8 has only signed into AppA User9 has only signed into AppB User10 has only signed into AppC Ideally we want to transfer all 10 users all at once. Does it matter which AppID we use for client_id? For example, if we use AppA as the client_id, will we still be able to transfer all 10 users (including User9 and User10)? We’ve tested this on the sender team side, and we’re able to successfully create transferIDs for all 10 users using AppA as client_id. But we’re not sure if this will still work on the recipient side, that we’ll be able to exchange the transferID for all 10 users. . To add another wrinkle, there is a possibility that we won’t be able to transfer one of our three apps (due to one of Apple’s limitations for app transfer). In that case we’ll have to create a new app on the recipient team and shut down the old one on the sender team. But the other two apps in the suite would still be transferred normally. We’d still want all 10 users to be transferred, as the intention is still that all our users can sign into any of their existing accounts in any of the three apps. Would this scenario change the answer to question 1? For example, say we aren’t able to transfer AppC over to the new development team, but instead had to create a new app, AppCNew on the new development team. But we still are able to transfer AppA and AppB. Would we still be able to transfer all 10 users using AppA as the client_id? Including User10 who only ever signed in to AppC (which isn’t being transferred)? We'd really appreciate any answers or guidance that anyone can provide. Thank you, Adam
Replies
4
Boosts
6
Views
642
Activity
Dec ’24
Crashes when trying to register SWCollaborationMetadata in NSItemProvider
We're doing a custom collaboration and trying to follow the example code in the presentation "Integrate your custom collaboration app with Messages". This issue is happening on iOS 16 beta 4. After creating and setting up a SWCollaborationMetadata object, we're creating an NSItemProvider and registering the metadata object. The call to registerObject() is crashing with the exception: +[_SWCollaborationMetadata writableTypeIdentifiersForItemProvider]: unrecognized selector sent to class 0x1ea29aed0 It seems like the SWCollaborationMetadata is maybe not actually compliant to the NSItemProviderWriting protocol, despite the fact that it is documented to be so. In fact, looking at the header `SWCollaborationMetadata.h, it looks like it does not comply with NSItemProviderWriting after all: @interface SWCollaborationMetadata : NSObject <NSSecureCoding, NSCopying, NSMutableCopying> ...which of course would explain the crash. I've set up a sample project which contains basically identical code to what is shown in the WWDC session, and still getting this issue. I have added the SharedWithYou entitlement. Is this a known issue in the current betas, or is there some updated sample code somewhere. Here's the function I'm testing it with: func share() {      let localIdentifier = SWLocalCollaborationIdentifier(rawValue: "identifier")      let metadata = SWCollaborationMetadata(localIdentifier: localIdentifier)      metadata.title = "Content Title"      metadata.initiatorHandle = "user@example.com"      let formatter = PersonNameComponentsFormatter()      if let components = formatter.personNameComponents(from: "Devin") {          metadata.initiatorNameComponents = components      }     let itemProvider = NSItemProvider()      itemProvider.registerObject(metadata, visibility: .all)      let activityConfig = UIActivityItemsConfiguration(itemProviders: [itemProvider])      let shareSheet = UIActivityViewController(activityItemsConfiguration: activityConfig)   self.present(shareSheet, animated: true) } The crash happens at the call to itemProvider.registerObject(metadata, visibility: .all) Thanks, Adam
Replies
1
Boosts
0
Views
1.4k
Activity
Aug ’22