From ea6b73bda4435e9cfd7058711e46da2a6c8d8538 Mon Sep 17 00:00:00 2001
From: William Entriken
Date: Thu, 4 Dec 2025 20:54:25 -0500
Subject: [PATCH 1/2] Set up testing and support iOS 18
---
.github/FUNDING.yml | 2 +-
.github/workflows/test.yml | 41 +++++-----
CHANGELOG.md | 94 +++++++++++++++++------
Example/Example.xcodeproj/project.pbxproj | 2 +
README.md | 27 ++++++-
5 files changed, 118 insertions(+), 48 deletions(-)
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index b8f01d0..55580f6 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,4 +1,4 @@
# These are supported funding model platforms
github: [fulldecent]
-custom: ["https://www.paypal.me/fulldecent", "https://amazon.com/hz/wishlist/ls/EE78A23EEGQB"]
+custom: ["https://www.paypal.me/fulldecent"]
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 94355b7..519ad59 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,32 +1,37 @@
---
-name: Test
+name: CI
on:
push:
- branches: [main, master]
+ branches: [main]
pull_request:
- branches: [main, master]
+ branches: [main]
jobs:
test:
- runs-on: macos-14
+ name: Build and Test
+ runs-on: macos-15
steps:
- uses: actions/checkout@v4
- - name: Setup Xcode version
- uses: maxim-lobanov/setup-xcode@v1
- with:
- xcode-version: '15.4'
+ - name: Select Xcode
+ run: sudo xcode-select -s /Applications/Xcode_16.4.app
- - name: Build and Test for iOS
+ - name: Show build environment
run: |
- # Build for iPhone Simulator using xcodebuild with Swift package
- xcodebuild -scheme FDWaveformView \
- -destination "platform=iOS Simulator,name=iPhone 15,OS=17.5" \
- clean build
-
- # Run tests on iPhone Simulator
- xcodebuild -scheme FDWaveformView \
- -destination "platform=iOS Simulator,name=iPhone 15,OS=17.5" \
- test
+ xcodebuild -version
+ xcrun swift --version
+ xcrun simctl list devices available | grep 'iPhone 16 '
+
+ - name: Build
+ run: |
+ xcodebuild build \
+ -scheme FDWaveformView \
+ -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.5'
+
+ - name: Test
+ run: |
+ xcodebuild test \
+ -scheme FDWaveformView \
+ -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.5'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bea713c..33f5789 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,27 +1,35 @@
-# Change Log
+# Change log
+
All notable changes to this project will be documented in this file.
`FDWaveformView` adheres to [Semantic Versioning](http://semver.org/).
---
-## [Master](https://github.com/fulldecent/FDWaveformView/compare/5.0.2...master)
+## [Main](https://github.com/fulldecent/FDWaveformView/compare/5.0.2...main)
+
+### Changed
-#### Changed
+- Updated README to mention Swift Package Manager only installation
+- Set up CI with GitHub Actions and document testing from command line
---
## [5.0.2](https://github.com/fulldecent/FDWaveformView/releases/tag/5.0.2)
+
Released on 2024-03-27.
-#### Changed
+### Changed
+
- Removed Travis CI, CocoaPods, Carthage
---
## [4.0.1](https://github.com/fulldecent/FDWaveformView/releases/tag/4.0.1)
+
Released on 2020-02-12.
-#### Changed
+### Changed
+
- Switch to new standard library clamp functions
- Added by [William Entriken](https://github.com/fulldecent)
- Fixed timescale bug for some mp4 files
@@ -30,9 +38,11 @@ Released on 2020-02-12.
---
## [4.0.0](https://github.com/fulldecent/FDWaveformView/releases/tag/4.0.0)
+
Released on 2019-04-08.
-#### Changed
+### Changed
+
- Converted to Swift 4.2 and Xcode 10
- Added by [Doug Earnshaw](https://github.com/pixlwave)
- Prevent to handle panning gesture while pinching
@@ -44,31 +54,38 @@ Released on 2019-04-08.
---
## [3.0.1](https://github.com/fulldecent/FDWaveformView/releases/tag/3.0.1)
+
Released on 2017-10-27.
-#### Fixed
+### Fixed
+
- Fixed Highlight Samples not aligned to base waveform [#101](https://github.com/fulldecent/FDWaveformView/issues/101).
- Added by [Jon Andersen](https://github.com/jonandersen)
---
## [3.0.0](https://github.com/fulldecent/FDWaveformView/releases/tag/3.0.0)
+
Released on 2017-10-27.
-#### Changed
+### Changed
+
- Now supporting Swift 4.0
---
## [2.2.1](https://github.com/fulldecent/FDWaveformView/releases/tag/2.2.1)
+
Released on 2017-05-31.
-#### Changed
+### Changed
+
- Now using ranges in the API where appropriate
- Added by [William Entriken](https://github.com/fulldecent) in regards to issue
[#76](https://github.com/fulldecent/FDWaveformView/issues/86).
-#### Fixed
+### Fixed
+
- Fixed a retain cycle in completion handler of waveform render operation
- Added by [Philippe Jayet](https://github.com/pjay)
- Cancel waveform render operation when view is released
@@ -77,9 +94,11 @@ Released on 2017-05-31.
---
## [2.2.0](https://github.com/fulldecent/FDWaveformView/releases/tag/2.2.0)
+
Released on 2017-05-03.
-#### Added
+### Added
+
- Improved accuracy of waveform rendering
- Added by [Kip Nicol](https://github.com/ospr)
- Added support for rendering waveform images outside of view (See `FDWaveformRenderOperation`)
@@ -91,7 +110,8 @@ Released on 2017-05-03.
- Added support for updating waveform type and color to iOS Example app.
- Added by [Kip Nicol](https://github.com/ospr)
-#### Fixed
+### Fixed
+
- Fixed waveform rendering for large audio files
- Added by [Kip Nicol](https://github.com/ospr)
- Fixed bug which could prevent waveform from fitting new view size if rendering was in progress during a view resize
@@ -106,15 +126,18 @@ Released on 2017-05-03.
---
## [2.1.0](https://github.com/fulldecent/FDWaveformView/releases/tag/2.1.0)
+
Released on 2017-04-15.
-#### Added
+### Added
+
- Improved example app to include more options
- Added by [William Entriken](https://github.com/fulldecent)
- Allowed animation for changes to zoom
- Added by [William Entriken](https://github.com/fulldecent)
-#### Fixed
+### Fixed
+
- Improved accuracy of waveform rendering
- Added by [Kip Nicol](https://github.com/ospr)
- Fixed waveform rendering for large audio files
@@ -126,9 +149,11 @@ Released on 2017-04-15.
---
## [2.0.1](https://github.com/fulldecent/FDWaveformView/releases/tag/2.0.1)
+
Released on 2017-02-16.
-#### Added
+### Added
+
- Allowed scrubbing independantly of scrolling
- Added by [Doug Earnshaw](https://github.com/pixlwave)
- Tidied up Swift 3.0 conversion, removed some forced unwraps & generally made more swifty
@@ -137,9 +162,11 @@ Released on 2017-02-16.
---
## [2.0.0](https://github.com/fulldecent/FDWaveformView/releases/tag/2.0.0)
+
Released on 2016-09-27.
-#### Added
+### Added
+
- Automated CocoaPods Quality Indexes testing
- Added by [Hayden Holligan](https://github.com/haydenholligan)
- Used GPU to process waveforms
@@ -148,9 +175,11 @@ Released on 2016-09-27.
---
## [1.0.2](https://github.com/fulldecent/FDWaveformView/releases/tag/1.0.2)
+
Released on 2016-09-02.
-#### Fixed
+### Fixed
+
- Corrected rendering, fixed typo
- Added by [William Entriken](https://github.com/fulldecent) in regards to issue
[#62](https://github.com/fulldecent/FDWaveformView/issues/62).
@@ -158,9 +187,11 @@ Released on 2016-09-02.
---
## [1.0.1](https://github.com/fulldecent/FDWaveformView/releases/tag/1.0.1)
+
Released on 2016-08-02.
-#### Fixed
+### Fixed
+
- Fixed Podspec for Swift files
- Added by [William Entriken](https://github.com/fulldecent) in regards to issue
[#61](https://github.com/fulldecent/FDWaveformView/issues/61).
@@ -168,9 +199,11 @@ Released on 2016-08-02.
---
## [1.0.0](https://github.com/fulldecent/FDWaveformView/releases/tag/1.0.0)
+
Released on 2016-06-27.
-#### Added
+### Added
+
- Full API documentation
- Added by [William Entriken](https://github.com/fulldecent) in regards to issue
[#53](https://github.com/fulldecent/FDWaveformView/issues/53).
@@ -187,50 +220,61 @@ Released on 2016-06-27.
---
## [0.3.2](https://github.com/fulldecent/FDWaveformView/releases/tag/0.3.2)
+
Released on 2016-04-10.
-#### Added
+### Added
+
- Carthage support
- Added by [William Entriken](https://github.com/fulldecent)
---
## [0.3.0](https://github.com/fulldecent/FDWaveformView/releases/tag/0.3.0)
+
Released on 2016-03-29.
-#### Added
+### Added
+
- Separated scrolling and pinching options
- Added by [Rudy Mutter](https://github.com/rmutter)
-#### Updated
+### Updated
+
- Used recommended CocoPods project format
- Added by [William Entriken](https://github.com/fulldecent)
-#### Fixed
+### Fixed
+
- That warning everyone was seeing
- Added by [Yin Cheng](https://github.com/msching)
---
## [0.2.2](https://github.com/fulldecent/FDWaveformView/releases/tag/0.2.2)
+
Released on 2015-09-14.
-#### Added
+### Added
+
- Profiling tests
- Added by [William Entriken](https://github.com/fulldecent)
---
## [0.1.2](https://github.com/fulldecent/FDWaveformView/releases/tag/0.1.2)
+
Released on 2014-01-06.
-#### Added
+### Added
+
- First cocoapods release
- Added by [William Entriken](https://github.com/fulldecent)
---
## [0.1.0](https://github.com/fulldecent/FDWaveformView/releases/tag/0.1.0)
+
Released on 2013-11-04.
Initial public release.
diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj
index 2552895..df6dd64 100644
--- a/Example/Example.xcodeproj/project.pbxproj
+++ b/Example/Example.xcodeproj/project.pbxproj
@@ -298,6 +298,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 18.6;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -326,6 +327,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 18.6;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
diff --git a/README.md b/README.md
index 75b9036..673025d 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,6 @@
FDWaveformView is an easy way to display an audio waveform in your app. It is a nice visualization to show a playing audio file or to select a position in a file.
-**:hatching_chick: Virtual tip jar: https://amazon.com/hz/wishlist/ls/EE78A23EEGQB**
-
Usage
-----
@@ -67,17 +65,38 @@ UIView.animate(withDuration: 0.3) {
-
Creates **antialiased waveforms** by drawing more pixels than are seen on screen. Also, if you resize me (autolayout) I will render more detail if necessary to avoid pixelation.
Supports **iOS12+** and Swift 5.
**Includes unit tests**, now running on GitHub Actions
+## Testing
+
+To build and run tests from the command line, first find an available simulator:
+
+```sh
+xcrun simctl list devices available | grep iPhone
+```
+
+Then build and test using a simulator ID:
+
+```sh
+# Build the library
+xcodebuild build -scheme FDWaveformView -destination 'id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
+
+# Run unit tests
+xcodebuild test -scheme FDWaveformView -destination 'id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
+
+# Build the Example app (requires a newer iOS simulator)
+cd Example
+xcodebuild build -scheme Example -destination 'id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
+```
+
## Installation
Add this to your project using Swift Package Manager. In Xcode that is simply: File > Swift Packages > Add Package Dependency... and you're done. Alternative installations options are shown below for legacy projects.
## Contributing
-* This project's layout is based on https://github.com/fulldecent/swift5-module-template
+* This project's layout is based on
From 3d41f7ef323ec5f491b8c95fd0af643140c46265 Mon Sep 17 00:00:00 2001
From: William Entriken
Date: Thu, 4 Dec 2025 21:00:28 -0500
Subject: [PATCH 2/2] Clarify instructions for building and testing with
simulator ID in README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 673025d..4657f44 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ To build and run tests from the command line, first find an available simulator:
xcrun simctl list devices available | grep iPhone
```
-Then build and test using a simulator ID:
+Then build and test using a simulator ID (replace the placeholder with an ID from the output above):
```sh
# Build the library