# Changelog for Open Measurement SDK on iOS

## 1.3.12 - 2020-10-06
- Update version to match JS and Android SDKs; no changes from 1.3.11


## 1.3.11 - 2020-09-24
- Update version to match JS and Android SDKs; no changes from 1.3.10


## 1.3.10 - 2020-08-12
- Update version to match JS and Android SDKs; no changes from 1.3.9

## 1.3.9 - 2020-07-31
### Update
- Add Javascript ad session to reference app
- Increase WebView size to show complete HTML content

## 1.3.8 - 2020-07-16
### Update
- Enforce calling addFriendlyObstruction:purpose:detailedReason:error: on the main thread via returning an error

## 1.3.7 - 2020-06-30
### Update
- Reference app now uses HTML creatives from hosted links

## 1.3.6 - 2020-06-04
### Fixed
- Fix obstruction reporting on iPadOS when multitasking

## 1.3.5 - 2020-05-07
### Fixed
- Foreground/background state detection on iPadOS when multitasking

## 1.3.4 - 2020-04-23
### Removed
- `UIWebView` internal support has been removed. 
- `OMIDAdSessionContext` initializers are now constrained to `WKWebView`.

The following features changed their API from OM SDK 1.2 to 1.3.  The old 1.2 APIs have been removed from this release.

- Method `-[OMIDSDK activateWithOMIDAPIVersion:error:]` replaced by `-[OMIDSDK activate]`.
- Method `-[OMIDSDK isCompatibleWithOMIDAPIVersion:]` is no longer needed.
- Method `-[OMIDAdSessionContext initWithPartner:script:resources:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:script:resources:contentUrl:customReferenceIdentifier:error:]`.
- Method `-[OMIDAdSessionContext initWithPartner:webView:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:webView:contentUrl:customReferenceIdentifier:error:`.
- Methods `-[OMIDAdSessionConfiguration initWithImpressionOwner:videoEventsOwner:isolateVerificationScripts:error:]` and `-[OMIDAdSessionConfiguration initWithImpressionOwner:videoEventsOwner:error:]` replaced by `-[OMIDAdSessionConfiguration initWithCreativeType:impressionType:impressionOwner:mediaEventsOwner:isolateVerificationScripts:]`.
- Method `-[OMIDAdSession addFriendlyObstruction:]` replaced by `-[OMIDAdSession addFriendlyObstruction:purpose:detailedReason:error:]`.
- Methods `[OMIDMediaEvents loadedWithVastProperties:error:]` and `[OMIDVideoEvents loadedWithVastProperties:error:]` replaced by `[OMIDAdEvents loadedWithVastProperties:error:]`.
- Class `OMIDVideoEvents` replaced by `OMIDMediaEvents`.

## 1.3.3 - 2020-04-15
### Fixed
- Prevent crash with JS timers in native ad session by ensuring all JS operations occur on a single GCD queue.

## 1.3.2 - 2020-04-02
### Deprecated
The following features changed their API from OM SDK 1.2 to 1.3.  The old 1.2 APIs are still functional but are deprecated in this release; they will be removed in 1.3.4.

- Method `-[OMIDSDK activateWithOMIDAPIVersion:error:]` replaced by `-[OMIDSDK activate]`.
- Method `-[OMIDSDK isCompatibleWithOMIDAPIVersion:]` is no longer needed.
- Method `-[OMIDAdSessionContext initWithPartner:script:resources:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:script:resources:contentUrl:customReferenceIdentifier:error:]`.
- Method `-[OMIDAdSessionContext initWithPartner:webView:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:webView:contentUrl:customReferenceIdentifier:error:`.
- Method `-[OMIDAdSessionConfiguration initWithImpressionOwner:videoEventsOwner:isolateVerificationScripts:error:]` replaced by `-[OMIDAdSessionConfiguration initWithCreativeType:impressionType:impressionOwner:mediaEventsOwner:isolateVerificationScripts:]`.
- Method `-[OMIDAdSession addFriendlyObstruction:]` replaced by `-[OMIDAdSession addFriendlyObstruction:purpose:detailedReason:error:]`.
- Methods `[OMIDMediaEvents loadedWithVastProperties:error:]` and `[OMIDVideoEvents loadedWithVastProperties:error:]` replaced by `[OMIDAdEvents loadedWithVastProperties:error:]`.
- Class `OMIDVideoEvents` replaced by `OMIDMediaEvents`.

### Obsolete
- Passing UIWebView to OMIDAdSessionContext initializers is obsolete but still functional.
   All support for UIWebView will removed in version 1.3.4.

### iOS Reference App
- The iOS reference app sample code is now included in the SDK distribution archive (see README for details).
- New "HTML Video" example for webview video player integration.
- The Open Measurement iOS Reference App github repo will no longer be updated.

## 1.3.1 - 2020-01-09
### Changed
- Remove static references to deprecated UIWebView class.

## 1.3.0 - 2019-12-17
OM SDK 1.3 is a signficant update.  It adds support for some key new use cases for OMID 1.3 while allowing scripts using OMID 1.2 to run correctly.  Integrations (apps and SDKs) using OM SDK will need to make code changes.  See the [Migration Guide](docs/migration.md) for details.

### Changed
The following features changed their API from OM SDK 1.2 to 1.3.  The old 1.2 APIs are still functional but obsolete in this release; they will be deprecated in OM SDK 1.3.2 and removed in 1.3.4.

- Method `-[OMIDSDK activateWithOMIDAPIVersion:error:]` replaced by `-[OMIDSDK activate]`
- Method `-[OMIDAdSessionContext initWithPartner:script:resources:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:script:resources:contentUrl:customReferenceIdentifier:error:]`
- Method `-[OMIDAdSessionContext initWithPartner:webView:customReferenceIdentifier:error:]` replaced by `-[OMIDAdSessionContext initWithPartner:webView:contentUrl:customReferenceIdentifier:error:`
- Method `-[OMIDAdSessionConfiguration initWithImpressionOwner:videoEventsOwner:isolateVerificationScripts:error:]` replaced by `-[OMIDAdSessionConfiguration initWithCreativeType:impressionType:impressionOwner:mediaEventsOwner:isolateVerificationScripts:]`
- Method `-[OMIDAdSession addFriendlyObstruction:]` replaced by `-[OMIDAdSession addFriendlyObstruction:purpose:detailedReason:error:]`
- Method `[OMIDVideoEvents loadedWithVastProperties:error:]` replaced by `[OMIDAdEvents loadedWithVastProperties:error:]`
- Class `OMIDVideoEvents` replaced by `OMIDMediaEvents`

### Added
- Method `[OMIDAdSessionContext initWithPartner:javaScriptWebView:customReferenceIdentifier:error:]`
- Method `[OMIDAdEvents loadedWithError:]`

### Obsolete
The following feature is still present but obsolete in OM SDK 1.3.0.  It will be deprecated in OM SDK 1.3.2 and removed in 1.3.4.

- Method `-[OMIDSDK isCompatibleWithOMIDAPIVersion:]`

## 1.2.22 - 2019-12-01 
- Native changes for JS fix to handle resource level access mode properly

## 1.2.21 - 2019-11-11
- Refactor async tests using XCTestExpectation

## 1.2.20 - 2019-09-30
- Update version to match JS and Android SDKs; no changes from 1.2.19

## 1.2.19 - 2019-09-10
- Update to accurately report 'hidden' or 'notFound' for non visible ad views and include geometry.
- Must use with OMSDK JS 1.2.18 or above.	
- Remove static references to deprecated UIWebView class.  
- OM SDK continues to support integrations that use UIWebView, and it does so
  in a way that doesn't trigger App Store warnings for integrations that use
  only WKWebView.

## 1.2.18 - 2019-08-29
- Update version to match JS and Android SDKs; no changes from 1.2.17

## 1.2.17 - 2019-07-22
- Update version to match JS and Android SDKs; no changes from 1.2.16

## 1.2.16 - 2019-06-24
- Update version to match JS and Android SDKs; no changes from 1.2.15

## 1.2.15 - 2019-05-24
### Fixed
-Ensure xcode version and iOS version are compatible for CI tests

## 1.2.14 - 2019-04-22

### Fixed
- Prevent crash when bad values are sent to JavaScript service.

## 1.2.13 - 2019-03-22
### Fixed
- Wrap error parameters in quotes

## 1.2.12 - 2019-02-13
### Fixed
- Updated headers and internals to remove duplication of property declarations

## 1.2.11 - 2019-01-23
### Fixed
- Code quality improvements: replace uses of __unsafe_unretained and casts from pointer to integer.

## 1.2.8 - 2018-11-30
### Fixed
- Fix crash during iteration over array of active sessions.
- Minor reformatting of methods to match coding guidelines, and addition of file generated by Xcode 9.4.

## 1.2.7 - 2018-11-27
### Fixed
- Assign copies of mutable objects to properties
- Replace property calls in init methods with direct access to fields
- Use [NSDictionary objectForKey:] instead of [NSKeyValueCoding valueForKey:]

## 1.2.6 - 2018-11-01
### Fixed
- Detect visibility of ads after dismissing Airplay options view.
- Method 'activateWithOMIDAPIVersion:error:' no longer checks compatibility with API version passed as parameter.

### Changed
- Named all dispatch queues to help integrators debug.

## 1.2.5 - 2018-10-10
- Update version to match JS and Android SDKs; no changes from 1.2.4

## 1.2.4 - 2018-08-29
- Update version to match JS and Android SDKs; no changes from 1.2.3

## 1.2.3 - 2018-08-17
- Update version to match JS and Android SDKs; no changes from 1.2.2

## 1.2.2 - 2018-08-02
- Update version to match JS and Android SDKs; no changes from 1.2.1

## 1.2.1 - 2018-07-18
- Update version to match JS and Android SDKs; no changes from 1.2.0

## 1.2.0 - 2018-07-03
### Removed
- Remove restriction that impression event must be sent before other events can be sent.

## 1.1.4 - 2018-06-20
- Update version to match JS and Android SDKs; no changes from 1.1.3.

## 1.1.3 - 2018-05-30

### Update
- Update iOS docs with information on potential side-effects of the API.

### Fixed
- Fix update-version-number script to work on OSX and Linux.

## 1.1.2 - 2018-05-08
- Update version to match JS and Android SDKs; no changes from 1.1.1.

## 1.1.1 - 2018-04-24
- Update version to match JS and Android SDKs; no changes from 1.1.0.

## 1.1.0 - 2018-03-29
- First General Availability release of OM SDK for iOS.
