> Well, for example, custom zones aren't supported in the public database (afaik), so that means I can't test and develop sharing between users
I make my own sharing in the public database quite simply (aside - I couldn't get over early bugs in CKShare so I abandoned that effort). Each user is a member of one of many accounts. All members of an account share their records. They query with the predicate:
predicate =[NSPredicate predicateWithFormat:@"modificationDate>%@ && AccountName == %@"
,timeStamp,accountRecordName];
> I'd also have to change my code pretty dramatically between development and production.... I'm not sure if you're suggesting I just switch all of my privateDB operations to the publicDB, but that's not really feasible
I am suggesting exactly that for all things that involve more than one user. And if you do that then I see no need to change any code between development and production. I have found it very feasible to use only the public database for almost everything. There is a privacy issue in that, as developer, I can see things that I would not be able to see if the user was using their Private database. You would need to disclose that you have that access.
> i understand not giving developers access to another users private database, but a sandbox user is what this scenario is meant for and was a part of CloudKit dashboard at one point so I don't think it's out of the realm of possibility.
You are correct, the sandbox is not well designed to test CKSharing. I believe that CKShare was created after CloudKit and the sandbox were designed. And CKShare was shoehorned into the sandbox. bugs and all.