Beacon Implementation Broken from iOS EstimoteSDK 3.8.1 -> 4.5.0

Hello Estimote Community ->

We recently updated our EstimoteSDK and discovered that the “instanceId” parameter as been removed from ESTEddystone.h and packed into the ESTEddystoneUID class. This poses quite a problem considering that the docs haven’t been updated to reflect the change and delegate method doesn’t find ESTEddystoneUID - it returns ESTEddystone objects:

func eddystoneManager(manager: ESTEddystoneManager, didDiscoverEddystones eddystones: [ESTEddystone], withFilter eddystoneFilter: ESTEddystoneFilter?) {
    
    for eddystone in eddystones as ESTEddystoneUID {
        if let index = beacons.indexOf({$0.instanceId ==eddystone.instanceID}) {
            let beacon = beacons[index]
            
            if (beacon.didLoadBeacon) {
                beacon.update()
                
                beacon.proximity = eddystone.proximity
                rangeBeacon(beacon)
            }
            
        } else {
            let beacon = EddystoneBeacon.newBeacon()
            beacon.instanceId = eddystone.instanceID!
            beacon.loadBeaconActions()
            beacons.append(beacon)
        }
    }
    
    NSNotificationCenter.defaultCenter().postNotificationName(BeaconManagerDidDiscoverBeaconsNotification, object: self, userInfo: nil);
}

Has anyone else had this problem? How are we supposed to access and compare the instanceId’s in the new SDK (4.5)? Note - the one’s we already have are being returned from our web service.