Search code examples
objective-cxcodeibeaconestimote

Unknown type name 'ESTBeaconRegion'; did you mean 'CLBeaconRegion'?


Isssue 1:

I'm following this estimote tutorial to create my own Estimote app. However this error appeared:

Unknown type name 'ESTBeaconRegion'; did you mean 'CLBeaconRegion'?

How to solve it?

I've included the header and also the delegate

#import <EstimoteSDK/EstimoteSDK.h>

@interface AppDelegate () <UIApplicationDelegate,CLLocationManagerDelegate,ESTBeaconManagerDelegate>

This is my podFile

# Uncomment this line to define a global platform for your project
platform :ios, '7.0'

target 'Tabster' do
pod 'EstimoteSDK', '3.1.0'
end

Issue 2: Why is the framework highlighted in red?

enter image description here

Update: (trying the Example app suggested by Juan Gonzalez) enter image description here


Solution

  • If you want to use an "old app" with the new estimote SDK 3.0, i suggest you to go read the migration guide at this adress :

    https://github.com/Estimote/iOS-SDK/blob/master/SDK_3_0_MIGRATION_GUIDE.md

    ESTBeaconManager

    ESTBeaconManager class remains, but with narrowed functionality. In the current form it is responsible for ranging and monitoring iBeacon devices as well as advertising as iBeacon. It mainly covers CoreLocation functionality but with useful helpers including preventUnknownUpdateCount, avoidUnknownStateBeacons and returnAllRangedBeaconsAtOnce (Already available in previous versions of Estimote SDK).

    Delegate methods works with CLBeacon objects (instead of ESTBeacon) and CLBeaconRegion (instead of ESTBeaconRegion). Let's use ranging delegate as example:

    SDK 2.4 syntax:

    - (void)beaconManager:(ESTBeaconManager *)manager
          didRangeBeacons:(NSArray *)beacons
                 inRegion:(ESTBeaconRegion *)region
    {
        if (beacons.count > 0)
        {
            ESTBeacon *firstBeacon = [beacons objectAtIndex:0];
        }
    }
    

    SDK 3.0 syntax:

    - (void)beaconManager:(id)manager
          didRangeBeacons:(NSArray *)beacons
                 inRegion:(CLBeaconRegion *)region
    {
        if (beacons.count > 0)
        {
            CLBeacon *firstBeacon = [beacons objectAtIndex:0];
        }
    }
    

    I hope that will help you.