Probably late to the party. Posting it just in case anyone is facing up with the same problem.
Unfortunately, at least in iOS13 as the time of writing, all CLBeacon properties are shielded within an _internal NSObject property that, in turns, holds the relative value.
The result is that you cannot use simple value/key approach. Also the exposed public header for CLBeacon class doesn't expose the relative method to init with arbitrary value the internal object.
This gist, create a FakeBeacon Obj-C class, that re-enable the required init method, allowing such call also from Swift, in the following way:
var beacon = FakeBeacon(fakeWithUUID: UUID(uuidString: uuid)!,
major: 1,
minor: 100,
proximity: 2,
accuracy: 1,
rssi: 0,
timestamp: Date().timeIntervalSinceReferenceDate)
obviously, you shouldn't include such code in a production IPA, otherwise Apple's reject is inevitable.