diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml
new file mode 100644
index 000000000..9eda1c0aa
--- /dev/null
+++ b/.github/workflows/ios.yml
@@ -0,0 +1,32 @@
+on:
+ pull_request:
+ paths:
+ - 'ios/**'
+
+jobs:
+ lint_and_tests:
+ runs-on: macos-latest
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Set up Swift
+ uses: fwal/setup-swift@v2
+ with:
+ swift-version: '5.10'
+
+ - name: Select Xcode Version
+ run: sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
+
+ - name: Clean Derived Data
+ run: |
+ rm -rf ~/Library/Developer/Xcode/DerivedData
+
+ - name: Run Unit Tests
+ run: |
+ xcodebuild test \
+ -project ios/MeasureSDK.xcodeproj \
+ -scheme MeasureSDK \
+ -sdk iphonesimulator \
+ -destination 'platform=iOS Simulator,name=iPhone 15 Pro' \
+ ONLY_ACTIVE_ARCH=YES
diff --git a/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/MeasureSDK.xcscheme b/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/MeasureSDK.xcscheme
new file mode 100644
index 000000000..f06dcebcf
--- /dev/null
+++ b/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/MeasureSDK.xcscheme
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme b/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme
new file mode 100644
index 000000000..1e82459d2
--- /dev/null
+++ b/ios/MeasureSDK.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/README.md b/ios/README.md
index 2b3f8ddf4..66bab1ace 100644
--- a/ios/README.md
+++ b/ios/README.md
@@ -7,7 +7,7 @@
* [Custom events](#custom-events)
* [Screen view](#screen-view)
* [Features](#features)
-* [Session](#session)
+* [Session](#session)
# Minimum requirements