SHInstall Class Reference

Inherits from SHObject : NSObject
Declared in SHInstall.h

Overview

An installed device in the StreetHawk system. @discuss Apple has made announcements in 2012 that device IDs (UDIDs) are a not to be used for privacy reasons. However what all StreetHawk powered applications/clients need a way to identify installations. So the client side will be responsible for “requesting” a new device GUID when it first starts and then will store it over time. This ID is recorded here. Unfortunately every app deletion and re-install will request/create a new install ID.

General properties

  appKey

Customer developer register app_key in streethawk server. It’s same as StreetHawk.appKey.

@property (nonatomic, strong) NSString *appKey

Declared In

SHInstall.h

  sh_cuid

Your unique identifier for this Client. Tagged by API [StreetHawk tagString:<unique_value> forKey:@"sh_cuid"];

@property (nonatomic, strong) NSString *sh_cuid

Declared In

SHInstall.h

  clientVersion

The version of the client application.

@property (nonatomic, strong) NSString *clientVersion

Declared In

SHInstall.h

  shVersion

The version of StreetHawkCore framework SDK.

@property (nonatomic, strong) NSString *shVersion

Declared In

SHInstall.h

  operatingSystem

Operating system in lower case. Examples: “android”, “ios”, “windows”. Because this is iOS SDK, it’s hard coded as “ios”.

@property (nonatomic, strong) NSString *operatingSystem

Declared In

SHInstall.h

  osVersion

The version of the operating system. Example: “7.0”.

@property (nonatomic, strong) NSString *osVersion

Declared In

SHInstall.h

  live

If this App is AppStore or Enterprise provisioning profile, it’s true; otherwise it’s false.

@property (nonatomic) BOOL live

Declared In

SHInstall.h

  developmentPlatform

Development platform, hardcoded in StreetHawk SDK.

@property (nonatomic, strong) NSString *developmentPlatform

Declared In

SHInstall.h

  created

The UTC time this install was created in year-month-day hour:minute:second format.

@property (nonatomic, strong) NSDate *created

Declared In

SHInstall.h

  modified

The UTC time this install was modified in year-month-day hour:minute:second format.

@property (nonatomic, strong) NSDate *modified

Declared In

SHInstall.h

  replaced

If current App deleted and re-install again, install id changes. This property is the Install this Install has been replaced by.

@property (nonatomic, strong) NSString *replaced

Declared In

SHInstall.h

  uninstalled

An estimated timestamp (UTC) when the Install has been uninstalled, nil otherwise.

@property (nonatomic, strong) NSDate *uninstalled

Declared In

SHInstall.h

Capability properties

  featureLocation

Customer developer uses location related SDK functions, technically when his pod include streethawk/Locations or streethawk/Geofence or streethawk/Beacons and set StreetHawk.isLocationServiceEnabled = YES this is true; otherwise this is false.

@property (nonatomic) BOOL featureLocation

Declared In

SHInstall.h

  featurePush

Customer developer uses notification related SDK functions, technically when his pod include streethawk/Push and set StreetHawk.isNotificationEnabled = YES this is true; otherwise this is false.

@property (nonatomic) BOOL featurePush

Declared In

SHInstall.h

  featureiBeacons

Customer developer uses iBeacon related SDK functions, technically when his pod include streethawk/Beacons this is true; otherwise this is false.

@property (nonatomic) BOOL featureiBeacons

Declared In

SHInstall.h

  supportiBeacons

When featureiBeacons == YES and end user’s device supports iBeacon (iOS version >= 7.0, location service enabled and bluetooth enabled), it’s true.

@property (nonatomic) BOOL supportiBeacons

Declared In

SHInstall.h

Notification properties

  mode

If iOS App use development provisioning, it’s dev; if use simulator, it’s simulator; if use ad-hoc or AppStore or Enterprise distribution provisioning, it’s prod.

@property (nonatomic, strong) NSString *mode

Declared In

SHInstall.h

  pushNotificationToken

The access data for remote notification.

@property (nonatomic, strong) NSString *pushNotificationToken

Declared In

SHInstall.h

  negativeFeedback

It set to time stamp once get error from Apple’s push notification server. If empty means Apple not reply error.

@property (nonatomic, strong) NSString *negativeFeedback

Declared In

SHInstall.h

  revoked

Timestamp when end user refuse to receive notification. If notification is approved it’s empty.

@property (nonatomic, strong) NSString *revoked

Declared In

SHInstall.h

  smart

Whether use “smart push”.

@property (nonatomic) BOOL smart

Declared In

SHInstall.h

  feed

Timestamp for feed. If not nil and local fetch time is older than this, SDK will fetch feed.

@property (nonatomic, strong) NSString *feed

Declared In

SHInstall.h

Device properties

  latitude

Device’s latitude. It’s nil if not get latitude. StreetHawk server try to guess location by ip even when device disable location, thus it may not be nil even device disable location.

@property (nonatomic, strong) NSNumber *latitude

Declared In

SHInstall.h

  longitude

Device’s longitude. It’s nil if not get longitude. StreetHawk server try to guess location by ip even when device disable location, thus it may not be nil even device disable location.

@property (nonatomic, strong) NSNumber *longitude

Declared In

SHInstall.h

  utcOffset

UTC offset in minutes.

@property (nonatomic) NSInteger utcOffset

Declared In

SHInstall.h

  model

Descriptive text for the device model, e.g. iPhone 6. You should get this from either the android or iphone libraries so a consistent description is logged. i.e if the client is an android the model string must start with android.

@property (nonatomic, strong) NSString *model

Declared In

SHInstall.h

  ipAddress

Ip address of current device. It’s known by server, not sent from client.

@property (nonatomic, strong) NSString *ipAddress

Declared In

SHInstall.h

  macAddress

Mac address sent to server by client. It’s not available since iOS 7 device, which always returns 02:00:00:00:00:00.

@property (nonatomic, strong) NSString *macAddress

Declared In

SHInstall.h

  identifierForVendor

Since iOS 7.0 mac address in unavailable, it always returns 02:00:00:00:00:00. Add identifierForVendor as another way to identifier vendor.

@property (nonatomic, strong) NSString *identifierForVendor

Declared In

SHInstall.h

  advertisingIdentifier

If customer developer pass in advertise identifier, submit to StreetHawk server. It requires App to approve IDFA when submitting to AppStore, thus StreetHawk SDK cannot positively read this property. Set up by StreetHawk.advertisingIdentifier = ....

@property (nonatomic, strong) NSString *advertisingIdentifier

Declared In

SHInstall.h

  carrierName

Carrier of current device. It’s sent from client to server.

@property (nonatomic, strong) NSString *carrierName

Declared In

SHInstall.h

  resolution

Screen resolution of current device. It’s sent from client to server.

@property (nonatomic, strong) NSString *resolution

Declared In

SHInstall.h