Repository navigation
Android and iOS now share the same public API: the same types, methods, fields and error cases on both platforms. Only platform conventions differ: coroutines and Flow on Android, async/await and Combine on iOS, the Activity that Android setup takes, Android's unlock(lock) overload, and each platform's naming and error types.
Breaking Changes
AccessTypeis removed, along withaccessTypeonInviteType,InAppInviteandTemporaryDoorcodeInvite, andInAppInvite.showDoorcodes. UseInAppInvite(startTime:endTime:)andTemporaryDoorcodeInvite(duration:period:).endTimeno longer has a default value, so passnilfor an invite with no end time.BluetoothError.bluetoothDisabledis renamed to.disabled, and.bluetoothPermissionDeniedto.permissionDenied.AccessLogMethod.mechanicalis renamed to.mechanicalLock.UnlockFailureReason.authFailedand.internalnow carry anUnlockFailureErrorwithcode,messageandcontext..internalno longer has a string payload, andUnlockFailureReasonno longer conforms toError.PasscodeTypeno longer has string raw values orallCases.- Model properties on
Lock,Guest,GuestAccess,AccessLog,UnlockEvent,InAppInviteandTemporaryDoorcodeInviteare nowlet. The initializers changed order toUnlockEvent(lock:method:status:),Lock(id:name:buildingID:startTime:endTime:doorCode:isShareable:)andGuestAccess(lockID:lockName:inviteType:passcodeType:startTime:endTime:). InviteGuestErroradds.shareableAccessRequired,.sharingNotEnabledand.requestedTimeOutsideShareableAccess. Update exhaustiveswitchstatements.