Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 19 additions & 48 deletions .github/workflows/bump-and-release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bump and release
run-name: ${{ (inputs.version == '' && 'Not bumping version') || format('Bumping version to {0}', inputs.version) }} and ${{ (inputs.dryRun == true && 'validating') || 'releasing' }} ${{ inputs.connectors }} on cocoapods trunk ${{ (inputs.cocoapodsTrunk == true && '✅') || '❌' }}, on self hosted spec repo ${{ (inputs.selfHosted == true && '✅') || '❌' }}
run-name: ${{ (inputs.version == '' && 'Not bumping version') || format('Bumping version to {0}', inputs.version) }} and ${{ (inputs.dryRun == true && 'validating') || 'releasing' }} ${{ inputs.connectors }} on the self hosted spec repo
on:
workflow_dispatch:
inputs:
Expand All @@ -12,16 +12,6 @@ on:
required: true
default: true
type: boolean
cocoapodsTrunk:
description: 'If true, releases on Cocoapods trunk public spec repo.'
required: true
default: true
type: boolean
selfHosted:
description: 'If true, releases on self hosted spec repo.'
required: true
default: true
type: boolean
connectors:
description: 'Choose the Connector(s)'
required: true
Expand Down Expand Up @@ -79,12 +69,9 @@ jobs:
run: |
git tag ${{ inputs.version }}
git push origin ${{ inputs.version }}
- name: ${{ (inputs.dryRun == true && 'Validate') || 'Release' }} on Cocoapods
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
- name: ${{ (inputs.dryRun == true && 'Validate') || 'Release' }} on the self hosted spec repo
shell: bash
run: |
# make the command
command="${{ (inputs.dryRun == true && 'spec lint') || 'trunk push' }}"
# make the list of connectors
prefix="THEOplayer-Connector"
connectors=()
Expand Down Expand Up @@ -115,47 +102,31 @@ jobs:
else
connectors+=("$prefix-${{ inputs.connectors }}.podspec")
fi
if [[ "${{ inputs.selfHosted }}" == "true" && "${{ inputs.dryRun }}" != "true" ]]; then
if [[ "${{ inputs.dryRun }}" == "true" ]]; then
trap 'git checkout -- "${connectors[@]}"' EXIT
else
if [ -d "$HOME/.cocoapods/repos/cocoapods-specs" ]; then
pod repo remove cocoapods-specs
fi
pod repo add cocoapods-specs \
https://x-access-token:${{ secrets.PODS_SPEC_REPO_TOKEN }}@github.com/THEOplayer/cocoapods-specs.git
fi
for connector in ${connectors[*]}
for connector in "${connectors[@]}"
do
pod repo update
options="--verbose --allow-warnings"
if [[ "${{ inputs.selfHosted }}" == "true" ]]; then
selfHostedOptions=$options
selfHostedOptions+=" --use-json"
if [[ "${{ inputs.dryRun }}" != "true" ]]; then
sources="--sources=https://cdn.cocoapods.org"
if [[ $connector == *Nielsen.podspec ]]; then
sources+=",https://github.com/NielsenDigitalSDK/nielsenappsdk-ios-specs-dynamic.git"
selfHostedOptions+=" --skip-import-validation"
fi
pod repo push cocoapods-specs $connector $selfHostedOptions $sources
else
echo "dryRun -> skip selfHosted release"
fi
options=(--verbose --allow-warnings)
sources="https://github.com/THEOplayer/cocoapods-specs.git,https://cdn.cocoapods.org"
if [[ $connector == *Nielsen.podspec ]]; then
sources+=",https://github.com/NielsenDigitalSDK/nielsenappsdk-ios-specs-dynamic.git"
options+=(--skip-import-validation)
fi
if [[ "${{ inputs.cocoapodsTrunk }}" == "true" ]]; then
if [[ $connector == *Nielsen.podspec ]]; then
echo "Skip Nielsen"
continue
fi
cmd="pod $command $connector $options"
if [ ${{ inputs.dryRun }} == false ]; then
cmd="$cmd --synchronous"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aren't we missing this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was a pod trunk push specific flag.

else
branch=$(git rev-parse --abbrev-ref HEAD)
sed -i '' "s|:tag => [^,}]*|:branch => \"$branch\"|g" "$connector"
fi
$cmd
if [ ${{ inputs.dryRun }} == true ]; then
git checkout "$connector"
fi
if [[ "${{ inputs.dryRun }}" == "true" ]]; then
branch=$(git rev-parse --abbrev-ref HEAD)
sed -i '' "s|:tag => [^,}]*|:branch => \"$branch\"|g" "$connector"
pod spec lint "$connector" "${options[@]}" --private --sources="$sources"
git checkout -- "$connector"
else
pod repo push cocoapods-specs "$connector" "${options[@]}" --use-json --sources="$sources"
fi
done
Cleanup:
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

### Changed

- New CocoaPods connector releases are now published exclusively to the [OptiView Player specs repository](https://github.com/THEOplayer/cocoapods-specs). Add `source 'https://github.com/THEOplayer/cocoapods-specs.git'` before `source 'https://cdn.cocoapods.org/'` in your Podfile to receive new releases. Keep the public source for third-party dependencies.

## [11.0.7] - 2026-11-05

### Fixed
Expand Down
3 changes: 3 additions & 0 deletions Code/Comscore-Examples/Cocoapod/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
platform :ios, '15.0'

source 'https://github.com/THEOplayer/cocoapods-specs.git'
source 'https://cdn.cocoapods.org/'

target 'ComscoreReporter' do
# Use the ComscoreConnector that is locally defined in the parent directory
pod 'THEOplayer-Connector-Comscore', :path => '../../../'
Expand Down
2 changes: 1 addition & 1 deletion Code/Comscore/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ THEOplayer-Connector-Comscore provides an integration between the THEOplayerSDK
### [Cocoapods](https://guides.cocoapods.org/using/getting-started.html#getting-started)

1. Create a Podfile if you don't already have one. From the root of your project directory, run the following command: `pod init`
2. To your Podfile, add links to the registry of Cocoapods: `source 'https://cdn.cocoapods.org/'`. If this fails, bypass their CDN by using `source 'https://github.com/CocoaPods/Specs.git'`
2. To your Podfile, add the OptiView Player specs source first: `source 'https://github.com/THEOplayer/cocoapods-specs.git'`, followed by the public source for third-party dependencies: `source 'https://cdn.cocoapods.org/'`.
3. To your Podfile, add the connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Comscore'`
4. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.

Expand Down
1 change: 1 addition & 0 deletions Code/Conviva-Examples/Cocoapod/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
platform :ios, '15.0'

source 'https://github.com/THEOplayer/cocoapods-specs.git'
source 'https://cdn.cocoapods.org/'

target 'ConvivaReporter' do
Expand Down
6 changes: 3 additions & 3 deletions Code/Conviva/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ To support custom feature builds of THEOplayerSDK perform the following steps:
### [Cocoapods](https://guides.cocoapods.org/using/getting-started.html#getting-started)

1. Create a Podfile if you don't already have one. From the root of your project directory, run the following command: `pod init`
2. To your Podfile, add the Conviva connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Conviva'`
2. To your Podfile, add the OptiView Player specs source first: `source 'https://github.com/THEOplayer/cocoapods-specs.git'`, followed by the public source for third-party dependencies: `source 'https://cdn.cocoapods.org/'`.
3. To your Podfile, add the Conviva connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Conviva'`
- When using THEOads, also add the THEOads subspec so that failed THEOads ad breaks (e.g. an empty VAST response) are reported to Conviva: `pod 'THEOplayer-Connector-Conviva/THEOads'`
3. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.
4. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.

To support custom feature builds of THEOplayerSDK perform the following steps:

Expand Down Expand Up @@ -80,4 +81,3 @@ connector.setContentInfo(contentInfo)
## Lifecycle

Hold a reference to your connector. Once the connector is released from memory it will clean up itself and stop reporting to Conviva.

2 changes: 1 addition & 1 deletion Code/Nielsen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ To support custom feature builds of THEOplayerSDK perform the following steps:
### [Cocoapods](https://guides.cocoapods.org/using/getting-started.html#getting-started)

1. Create a Podfile if you don't already have one. From the root of your project directory, run the following command: `pod init`
2. To your Podfile, add links to the registries of Cocoapods and Nielsen: `source 'https://cdn.cocoapods.org/'` and `source 'https://github.com/NielsenDigitalSDK/nielsenappsdk-ios-specs-dynamic.git'`
2. To your Podfile, add the OptiView Player specs source first: `source 'https://github.com/THEOplayer/cocoapods-specs.git'`, followed by the public and Nielsen sources: `source 'https://cdn.cocoapods.org/'` and `source 'https://github.com/NielsenDigitalSDK/nielsenappsdk-ios-specs-dynamic.git'`.
3. To your Podfile, add the connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Nielsen'`
4. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.

Expand Down
3 changes: 3 additions & 0 deletions Code/Sideloaded-TextTracks-Examples/Cocoapod/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
platform :ios, '15.0'

source 'https://github.com/THEOplayer/cocoapods-specs.git'
source 'https://cdn.cocoapods.org/'

target 'SideloadedTextTracksExample' do
# Use the ComscoreConnector that is locally defined in the parent directory
pod 'THEOplayer-Connector-SideloadedSubtitle', :path => '../../../'
Expand Down
2 changes: 1 addition & 1 deletion Code/Sideloaded-TextTracks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This connector is intended to be used for subtitle text tracks specific with the
### [Cocoapods](https://guides.cocoapods.org/using/getting-started.html#getting-started)

1. Create a Podfile if you don't already have one. From the root of your project directory, run the following command: `pod init`
2. To your Podfile, add links to the registry of Cocoapods: `source 'https://cdn.cocoapods.org/'`. If this fails, bypass their CDN by using `source 'https://github.com/CocoaPods/Specs.git'`
2. To your Podfile, add the OptiView Player specs source first: `source 'https://github.com/THEOplayer/cocoapods-specs.git'`, followed by the public source for third-party dependencies: `source 'https://cdn.cocoapods.org/'`.
3. To your Podfile, add the connector pods that you want to use in your app: `pod 'THEOplayer-Connector-SideloadedSubtitle'`
4. Install the pods using `pod install`, then open your `.xcworkspace` file to see the project in Xcode.

Expand Down
3 changes: 3 additions & 0 deletions Code/Uplynk-Examples/Cocoapod/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
platform :ios, '15.0'

source 'https://github.com/THEOplayer/cocoapods-specs.git'
source 'https://cdn.cocoapods.org/'

target 'UplynkExample' do
# Use the ComscoreConnector that is locally defined in the parent directory
pod 'THEOplayer-Connector-Uplynk', :path => '../../../'
Expand Down
6 changes: 3 additions & 3 deletions Code/Uplynk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ To support custom feature builds of THEOplayerSDK perform the following steps:
### [Cocoapods](https://guides.cocoapods.org/using/getting-started.html#getting-started)

1. Create a Podfile if you don't already have one. From the root of your project directory, run the following command: `pod init`
2. To your Podfile, add the Uplynk connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Uplynk'`
3. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.
2. To your Podfile, add the OptiView Player specs source first: `source 'https://github.com/THEOplayer/cocoapods-specs.git'`, followed by the public source for third-party dependencies: `source 'https://cdn.cocoapods.org/'`.
3. To your Podfile, add the Uplynk connector pods that you want to use in your app: `pod 'THEOplayer-Connector-Uplynk'`
4. Install the pods using `pod install` , then open your `.xcworkspace` file to see the project in Xcode.

To support custom feature builds of THEOplayerSDK perform the following steps:

Expand All @@ -44,4 +45,3 @@ Learn more about Uplynk and how to use the connector in the following list of ar
- [Preplay](./docs/preplay.md): this article provides information on how to configure a Uplynk source.
- [Ads](./docs/ads.md): this article provides information on which APIs can be leveraged to track and enhance the ad-viewing experience.
- [Ping](./docs/ping.md): this article provides information on how to leverage the Ping service and which THEOplayer APIs you should use.

5 changes: 4 additions & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@ Notes:

### CocoaPods

In your `Podfile` add one or more of the OptiView Player iOS SDK Connectors, for example:
New connector releases are published to the [OptiView Player CocoaPods specs repository](https://github.com/THEOplayer/cocoapods-specs). In your `Podfile`, add this source first and keep the public CocoaPods source for third-party dependencies. Then add one or more of the OptiView Player iOS SDK Connectors, for example:

```ruby
source 'https://github.com/THEOplayer/cocoapods-specs.git'
source 'https://cdn.cocoapods.org/'

pod 'THEOplayer-Connector-Conviva'
```

Expand Down
Loading