A
CKShareParticipant can only have one permission for the entire share.
As discussed in this
this thread, one idea might be to use two distinct shares. If taking a dual-share approach, one possible option might be to include the share URL for the second share in the first share (either as a custom field on the first
CKShare itself or a custom
CKRecord type which is part of the first share. That way, the owner only needs to distribute a share URL for the first share to the invited participant. Once the invited participant accepts the first share, your code could read the share URL for the second share and accept the second share on behalf of the participant.