Skip to content

Commit

Permalink
build: remove binary packaging (#215)
Browse files Browse the repository at this point in the history
* build: convert Swift Package to a source-based C-language target

* build: convert MuxCore to a package dependency

* chore: remove MUXSDKStats project, local binary, unused scripts

* build: update version metadata

* test: add .xctestplan

* docs: update release steps to account for source based packaging

* build: add shared scheme for Carthage support

* ci: add a check for carthage build command

* build: exclude include folder from pod sources

* docs: revise the README

* ci: update to Cocoapods 1.14 when using Xcode 15.0.1

* test: activate the application after launching
  • Loading branch information
andrewjl-mux authored Oct 31, 2023
1 parent 0502d92 commit 974c276
Show file tree
Hide file tree
Showing 103 changed files with 875 additions and 5,812 deletions.
54 changes: 12 additions & 42 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,72 +4,42 @@ on:
push:

jobs:
build:
name: Run unit tests and build dynamic SDK binary
unit-tests:
name: Run SDK unit tests
runs-on: macos-13
steps:
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout
uses: actions/checkout@v3
- name: Select Xcode version
run: sudo xcode-select -s '/Applications/Xcode_15.0.1.app/Contents/Developer'
- name: "Baseline Unit Test Pass"
run: ./scripts/run-baseline-unit-test-pass.sh
- name: "Switch to Xcode 14.3.1"
run: sudo xcode-select -switch /Applications/Xcode_14.3.1.app
- name: "🔨 Build Dynamic XCFramework"
run: ".github/workflows/scripts/build.sh"
- name: "Upload xcframework artifact"
uses: actions/upload-artifact@v3
with:
name: "MUXSDKStats.xcframework.zip"
path: "MUXSDKStats.xcframework.zip"
tests:
name: Test the SDK with a Demo App
needs: build
demo-application-tests-ventura:
name: (macOS Ventura) Test the SDK with a Demo App
runs-on: macos-13
steps:
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout
uses: actions/checkout@v3
- name: Download framework artifact
uses: actions/download-artifact@v3
with:
name: "MUXSDKStats.xcframework.zip"
- name: Select Xcode version
run: sudo xcode-select -s '/Applications/Xcode_15.0.1.app/Contents/Developer'
- name: Update Cocoapods to 1.14
run: gem install cocoapods
- name: Run cocoapods example application tests
run: "scripts/run-tests-cocoapods-ventura.sh"
- name: Run Swift package manager example application tests
run: "scripts/run-tests-swift-package-manager-ventura.sh"
build-static:
name: Build static SDK binary
runs-on: macos-13
steps:
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout
uses: actions/checkout@v3
- name: "Switch to Xcode 14.3.1"
run: sudo xcode-select -switch /Applications/Xcode_14.3.1.app
- name: "🔨 Build Static XCFramework"
run: ".github/workflows/scripts/build-static.sh"
- name: "Upload xcframework artifact"
uses: actions/upload-artifact@v3
with:
name: "MUXSDKStats-static.xcframework.zip"
path: "MUXSDKStats-static.xcframework.zip"
tests-iOS-15:
name: (iOS 15) Test the SDK with a Demo App
needs: build
demo-application-tests-monterey:
name: (macOS Monterey) Test the SDK with a Demo App
runs-on: macos-12
steps:
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout
uses: actions/checkout@v3
- name: Download framework artifact
uses: actions/download-artifact@v3
with:
name: "MUXSDKStats.xcframework.zip"
- name: Select Xcode version
run: sudo xcode-select -s '/Applications/Xcode_13.4.1.app/Contents/Developer'
- name: Run tests
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/scripts/build-static.sh

This file was deleted.

5 changes: 0 additions & 5 deletions .github/workflows/scripts/build.sh

This file was deleted.

10 changes: 10 additions & 0 deletions .github/workflows/validate-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@ jobs:
uses: actions/checkout@v3
- name: "Validate Podspec"
run: "scripts/validate-podspec.sh"
validate-carthage:
name: Validate Carthage
runs-on: macos-13
steps:
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout
uses: actions/checkout@v3
- name: "Validate Carthage Build"
run: "scripts/validate-carthage.sh"
unit-test-ventura:
runs-on: macos-13
name: Complete Unit Test Pass on macOS Ventura
Expand Down
941 changes: 0 additions & 941 deletions MUXSDKStats/MUXSDKStats.xcodeproj/project.pbxproj

This file was deleted.

This file was deleted.

24 changes: 0 additions & 24 deletions MUXSDKStats/MUXSDKStats/Info.plist

This file was deleted.

11 changes: 0 additions & 11 deletions MUXSDKStats/MUXSDKStats/MUXSDKPlayerBindingConstants.h

This file was deleted.

22 changes: 0 additions & 22 deletions MUXSDKStats/MUXSDKStatsTests/Info.plist

This file was deleted.

24 changes: 0 additions & 24 deletions MUXSDKStats/MUXSDKStatsTv/Info.plist

This file was deleted.

1 change: 0 additions & 1 deletion MUXSDKStats/MUXSDKStatsTv/MUXSDKStatsTv.h

This file was deleted.

6 changes: 0 additions & 6 deletions MUXSDKStats/MUXSDKStatsTv/module.modulemap

This file was deleted.

12 changes: 7 additions & 5 deletions Mux-Stats-AVPlayer.podspec
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
Pod::Spec.new do |s|
s.name = 'Mux-Stats-AVPlayer'

s.version = '3.4.2'
s.version = '4.0.0'
s.source = { :git => 'https://github.com/muxinc/mux-stats-sdk-avplayer.git',
:tag => "v#{s.version}" }
s.module_name = 'MUXSDKStats'

s.summary = 'The Mux Stats SDK'
s.description = 'The Mux stats SDK connect with AVPlayer to performance analytics and QoS monitoring for video.'
Expand All @@ -16,11 +17,12 @@ Pod::Spec.new do |s|

s.dependency 'Mux-Stats-Core', '4.6.0'

s.ios.deployment_target = '11.0'
s.ios.vendored_frameworks = 'XCFramework/MUXSDKStats.xcframework'
s.ios.deployment_target = '12.0'
s.ios.frameworks = 'AVKit', 'AVFoundation', 'SystemConfiguration', 'CoreMedia'

s.tvos.deployment_target = '11.0'
s.tvos.vendored_frameworks = 'XCFramework/MUXSDKStats.xcframework'
s.tvos.deployment_target = '12.0'
s.tvos.frameworks = 'AVKit', 'AVFoundation', 'SystemConfiguration', 'CoreMedia'

s.source_files = 'Sources/MUXSDKStatsObjc/**/*'
s.exclude_files = 'Sources/MUXSDKStatsObjc/include/**/*'
end
40 changes: 25 additions & 15 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,35 +1,45 @@
// swift-tools-version:5.3
// swift-tools-version:5.7

import PackageDescription

let package = Package(
name: "MUXSDKStats",
platforms: [
.iOS(.v11),
.tvOS(.v11)
.iOS(.v12),
.tvOS(.v12)
],
products: [
.library(name: "MUXSDKStats", targets: ["MUXSDKStatsTargets"])
.library(
name: "MUXSDKStats",
targets: ["MUXSDKStatsObjc"]
)
],
dependencies: [
.package(
name: "MuxCore",
url: "https://github.com/muxinc/stats-sdk-objc.git",
.exactItem("4.6.0")
url: "https://github.com/muxinc/stats-sdk-objc.git",
exact: "4.6.0"
)
],
targets: [
.binaryTarget(
name: "MUXSDKStats",
path: "XCFramework/MUXSDKStats.xcframework"
),
.target(
name: "MUXSDKStatsTargets",
name: "MUXSDKStatsObjc",
dependencies: [
"MuxCore",
.target(name: "MUXSDKStats")
.product(
name: "MuxCore",
package: "stats-sdk-objc"
)
],
path: "SwiftPM"
publicHeadersPath: "include"
),
.testTarget(
name: "MUXSDKStatsObjcTests",
dependencies: [
"MUXSDKStatsObjc",
.product(
name: "MuxCore",
package: "stats-sdk-objc"
)
]
)
]
)
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# mux-stats-sdk-avplayer

Mux integration with `AVPlayer` and `AVPlayerLayer` for iOS native applications.
Mux Data integration for monitoring video performance and QoS for `AVPlayer`, `AVPlayerViewController`, and `AVPlayerLayer` in iOS, iPadOS, and tvOS applications.

This integration is built on top of [Mux's core Objective-C library](https://github.com/muxinc/stats-sdk-objc), allowing thinner wrappers for each new player, such as any third-party players that do not use (or expose) an underlying `AVPlayer` and/or `AVPlayerLayer`.
This integration is built on top of [Mux's core Objective-C library](https://github.com/muxinc/stats-sdk-objc) for Mux Data monitoring. The core library is intended to be used with third-party players or to implement a completely custom integration.

## Integration Instructions
Full integration instructions can be found here: https://docs.mux.com/docs/avplayer-integration-guide.
Expand Down
Loading

0 comments on commit 974c276

Please sign in to comment.