<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna" -->

---
title: Announcing our Experimental Linter Tool for Firebase on iOS
description: Firebase introduced experimental SwiftLint rules that catch common mistakes when using the Firebase SDK, such as forgetting to call activateFetched for Remote...
canonical: https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Announcing our Experimental Linter Tool for Firebase on iOS | daily.dev
og:description: Firebase introduced experimental SwiftLint rules that catch common mistakes when using the Firebase SDK, such as forgetting to call activateFetched for Remote...
og:url: https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna
og:image: https://api.daily.dev/og/posts/BjeNAeYNa.png
og:image:alt: Announcing our Experimental Linter Tool for Firebase on iOS
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Announcing our Experimental Linter Tool for Firebase on iOS

**[Firebase](https://daily.dev/sources/firebase-blog)** · 2 min read · 0 upvotes · 0 comments

## Summary

Firebase introduced experimental SwiftLint rules that catch common mistakes when using the Firebase SDK, such as forgetting to call activateFetched for Remote Config or failing to implement the restoration handler for Dynamic Links. The rules live on a fork's firebase_rules branch with a pre-release binary available for download, and are opt-in via a .swiftlint.yml configuration file. Feedback can be shared on Twitter or Stack Overflow.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2017/08/announcing-our-experimental-linter-tool>

## Questions this post answers

### How do I enable Firebase-specific SwiftLint rules in my iOS project?

Add a .swiftlint.yml file in the same folder as your Swift source files with an opt_in_rules section listing rules like firebase_config_activate, firebase_config_defaults, firebase_config_fetch, firebase_core, firebase_dynamiclinks_customschemeURL, firebase_dynamiclinks_schemeURL, firebase_dynamiclinks_universallink, and firebase_invites, then run SwiftLint normally using the pre-release binary from the firebase_rules branch fork.

_daily.dev surfaces practical setup steps like this for developers wiring linting into their ios workflow._

### What kinds of Firebase SDK mistakes can a linter catch on iOS?

A SwiftLint-based Firebase linter warns about common integration errors, such as forgetting to call activateFetched after fetching Remote Config values, or failing to implement the application:continue:restorationHandler method needed to read a Dynamic Link. These are experimental opt-in rules built on top of the open source SwiftLint tool.

_Developers debugging subtle Firebase SDK issues often turn to daily.dev to catch fixes like this early._

## Similar posts on daily.dev

- [Linter integration with Copilot code review now in public preview](https://daily.dev/posts/linter-integration-with-copilot-code-review-now-in-public-preview-wspm2tt8d) · GitHub Changelog · 0 upvotes · 0 comments

---

Tags: [#ios](https://daily.dev/tags/ios), [#swift](https://daily.dev/tags/swift), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Announcing our Experimental Linter Tool for Firebase on iOS","url":"https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna"},"datePublished":"2026-08-23T12:21:24.529Z","dateModified":"2026-08-23T12:46:46.830Z","description":"Firebase introduced experimental SwiftLint rules that catch common mistakes when using the Firebase SDK, such as forgetting to call activateFetched for Remote...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ios,swift,firebase","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Announcing our Experimental Linter Tool for Firebase on iOS"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/announcing-our-experimental-linter-tool-for-firebase-on-ios-bjenaeyna#faq","mainEntity":[{"@type":"Question","name":"How do I enable Firebase-specific SwiftLint rules in my iOS project?","acceptedAnswer":{"@type":"Answer","text":"Add a .swiftlint.yml file in the same folder as your Swift source files with an opt_in_rules section listing rules like firebase_config_activate, firebase_config_defaults, firebase_config_fetch, firebase_core, firebase_dynamiclinks_customschemeURL, firebase_dynamiclinks_schemeURL, firebase_dynamiclinks_universallink, and firebase_invites, then run SwiftLint normally using the pre-release binary from the firebase_rules branch fork. daily.dev surfaces practical setup steps like this for developers wiring linting into their ios workflow."}},{"@type":"Question","name":"What kinds of Firebase SDK mistakes can a linter catch on iOS?","acceptedAnswer":{"@type":"Answer","text":"A SwiftLint-based Firebase linter warns about common integration errors, such as forgetting to call activateFetched after fetching Remote Config values, or failing to implement the application:continue:restorationHandler method needed to read a Dynamic Link. These are experimental opt-in rules built on top of the open source SwiftLint tool. Developers debugging subtle Firebase SDK issues often turn to daily.dev to catch fixes like this early."}}]}
```

