• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

optimizely / swift-sdk
94%

Build:
DEFAULT BRANCH: master
Repo Added 24 May 2019 09:32PM UTC
Files 77
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • ai/farhananjum-opti/FSSDK-12337-feature-rollouts
  • ai/farhananjum-opti/FSSDK-12418-remove-type-validation
  • ai/jaeopt/FSSDK-12546
  • ai/jaeopt/FSSDK-12670-odp-event
  • ai/jaeopt/FSSDK-12804
  • ai/jaeopt/FSSDK-12813-holdout-event
  • ai/jaeopt/FSSDK-12834-holdout-event-p2
  • ai/mat001/FSSDK-12368-mpirnovar-ai-flow-sdk-fssdk-12368
  • ai/muzahidul-opti/FSSDK-12265
  • ai/raju-opti/FSSDK-12750-cmab-attribute-id-fix
  • artesmichael/make-data-store-more-flexible
  • fix-flaky-tests
  • fix/urlsession-deallocation
  • jae/coverage
  • mpirnovar-swift-local-holdouts-fssdk-12394
  • muzahidul/feature-gate-local-holdouts
  • optibot/prepareRelease5.2.1
  • optibot/prepareRelease5.4.1
  • prepare-release-5.2.1

07 Jul 2026 01:43PM UTC coverage: 93.859% (+0.03%) from 93.833%
28870957209

push

github

web-flow
[FSSDK-12729] fix: prevent EXC_BAD_ACCESS from premature URLSession deallocation (#649)

* fix: move URLSession.finishTasksAndInvalidate() into async callbacks

The defer block fires at synchronous scope exit — before the async
URLSession callback runs — deallocating the session while the request
is still in-flight. This causes EXC_BAD_ACCESS, especially when
Firebase Performance Monitoring swizzles URLSession delegate methods.

Move session.finishTasksAndInvalidate() from the outer defer into the
completion callback body (or inner defer for ODP modules) so the
session stays alive until the response is fully processed.

Affected modules:
- DefaultDatafileHandler.downloadDatafile()
- DefaultEventDispatcher.sendEvent()
- OdpEventApiManager.sendOdpEvents()
- OdpSegmentApiManager.fetchSegments()

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: fix race in MockUrlSession session counter

MockUrlSession used lock.async for both incrementing (init) and
decrementing (finishTasksAndInvalidate) validSessions. With the
URLSession fix moving invalidation into the async callback, the
decrement could still be pending when tearDown asserts the counter
is zero.

Change lock.async to lock.sync so counter updates complete before
the caller proceeds, eliminating the race between finishTasksAndInvalidate
and the test assertion in tearDown.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address review feedback from Copilot

- DefaultDatafileHandler: call completionHandler with failure result
  when getRequest returns nil, preventing caller deadlock on
  DispatchGroup.wait()
- MockUrlSession: make lock static so all instances share a single
  serial queue for the static validSessions counter

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

1 of 1 new or added line in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

1131 of 1205 relevant lines covered (93.86%)

8933.59 hits per line

Relevant lines Covered
Build:
Build:
1205 RELEVANT LINES 1131 COVERED LINES
8933.59 HITS PER LINE
Source Files on master
  • Tree
  • List 77
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28870957209 master [FSSDK-12729] fix: prevent EXC_BAD_ACCESS from premature URLSession deallocation (#649) * fix: move URLSession.finishTasksAndInvalidate() into async callbacks The defer block fires at synchronous scope exit — before the async URLSession callback... push 07 Jul 2026 01:56PM UTC web-flow github
93.86
28036748129 master [AI-FSSDK] [FSSDK-12804] prepare for release swift v5.4.0 (#640) push 23 Jun 2026 03:33PM UTC web-flow github
93.83
27618076490 master Revert local holdout feature gate logic (#637) Remove the FeatureGates.localHoldouts flag and unwrap local holdout evaluation so it runs unconditionally, matching the pre-gate behavior. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthr... push 16 Jun 2026 12:49PM UTC web-flow github
93.83
26820357558 master [AI-FSSDK] [FSSDK-12670] Block ODP identify event for single identifier (#636) * [AI-FSSDK] [FSSDK-12670] Block ODP identify event for single identifier * [FSSDK-12670] Address review feedback: fix log message * [FSSDK-12670] Retrigger CI * [F... push 02 Jun 2026 12:54PM UTC web-flow github
93.83
24039129239 master [AI-FSSDK] [FSSDK-12337] Add Feature Rollout support (#626) * [FSSDK-12337] Add Feature Rollout support Add Feature Rollout support to the Swift SDK. Feature Rollouts are a new experiment rule type that combines Targeted Delivery simplicity with... push 06 Apr 2026 04:11PM UTC web-flow github
93.77
21293166650 master [FSSDK-12240] fix flaky tests with proper synchronization (#622) * docs: add comprehensive project documentation in CLAUDE.md Added CLAUDE.md file to provide context and guidelines for development: - Project overview and structure - Getting sta... push 23 Jan 2026 04:37PM UTC web-flow github
93.73
4419905259 master [FSSDK-8951] chore: prepare for v3.10.2 release (#481) push 14 Mar 2023 09:06PM UTC GitHub github pending completion  
4387241724 master [FSSDK-8951]: Updates readme replacing Full Stack with Feature Experimentation. (#479) push 10 Mar 2023 06:34PM UTC GitHub github pending completion  
4127541358 master Adding support for odp fsc testing. (#476) push 08 Feb 2023 07:24PM UTC GitHub github pending completion  
4086067861 master remove odpConfig from init params (#477) push 03 Feb 2023 04:54PM UTC GitHub github pending completion  
See All Builds (1046)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc