<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl" -->

---
title: Building data-driven dev environments for Apple platforms
description: Xcode's proprietary, undocumented formats make it hard for Apple developers to gather data on build times, flakiness, and dev environment health, unlike...
canonical: https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Building data-driven dev environments for Apple platforms | daily.dev
og:description: Xcode's proprietary, undocumented formats make it hard for Apple developers to gather data on build times, flakiness, and dev environment health, unlike...
og:url: https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl
og:image: https://api.daily.dev/og/posts/qG9F3mqjl.png
og:image:alt: Building data-driven dev environments for Apple platforms
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.

# Building data-driven dev environments for Apple platforms

**[
      Tuist
    ](https://daily.dev/sources/tuist-blog)** · 8 min read · 0 upvotes · 0 comments

## Summary

Xcode's proprietary, undocumented formats make it hard for Apple developers to gather data on build times, flakiness, and dev environment health, unlike ecosystems built on open standards like Markdown or TCP/IP. Tools like tuist/xcodeproj and Spotify's XCLogParser required reverse engineering to unlock this data, and Spotify's XCMetrics project has since gone unmaintained. Tuist is building open, standardized representations (XcodeProj, XcodeGraph, Rosalind) as a 'narrow waist' for the Apple ecosystem, and packages this into a server product that surfaces build time, flakiness, and derived-data metrics without requiring teams to self-host infrastructure.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://tuist.dev/blog/2025/06/06/data-informed-decisions>

## Questions this post answers

### Why is it so hard to get build time and flakiness data out of Xcode projects?

Xcode relies on proprietary, undocumented formats instead of open standards, so extracting data like build times or test results requires reverse engineering. Projects like tuist/xcodeproj and Spotify's XCLogParser had to reverse-engineer these formats, and since there's little incentive to maintain such tooling, Spotify's XCMetrics project is no longer actively maintained.

_daily.dev surfaces this kind of infrastructure reasoning for teams weighing build tooling investments._

### How can you detect flaky tests in an Xcode CI pipeline?

Store a hash and a pass/fail status for each uniquely identified test run; if the same hash produces different results across runs, the test is likely flaky. Persisting this data over time lets teams build a flakiness scoreboard to prioritize which tests are causing the most CI retries and merge delays.

_Developers tracking down flaky CI tests can find approaches like this via daily.dev._

## Similar posts on daily.dev

- [Toss: Building less to ship faster](https://daily.dev/posts/toss-building-less-to-ship-faster-1arhtus0n) · 
      Tuist
     · 4 upvotes · 0 comments
- [The new Tuist, from build toolchains to bare metal](https://daily.dev/posts/the-new-tuist-from-build-toolchains-to-bare-metal-waw3c6jvd) · 
      Tuist
     · 0 upvotes · 0 comments

---

Tags: [#ios](https://daily.dev/tags/ios), [#xcode](https://daily.dev/tags/xcode), [#build-systems](https://daily.dev/tags/build-systems)

[View this post on daily.dev](https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl)

```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":"Building data-driven dev environments for Apple platforms","url":"https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl"},"datePublished":"2026-08-23T12:22:11.400Z","dateModified":"2026-08-23T12:54:48.996Z","description":"Xcode's proprietary, undocumented formats make it hard for Apple developers to gather data on build times, flakiness, and dev environment health, unlike...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c654a3d17415b3436444909d0f2b3337?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c654a3d17415b3436444909d0f2b3337?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"\n      Tuist\n    ","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":"\n      Tuist\n    ","logo":"https://media.daily.dev/image/upload/s--3AYDH23h--/f_auto,q_auto/v1787487506/logos/tuist-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/tuist-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ios,xcode,build-systems","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"\n      Tuist\n    ","item":"https://daily.dev/sources/tuist-blog"},{"@type":"ListItem","position":3,"name":"Building data-driven dev environments for Apple platforms"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/building-data-driven-dev-environments-for-apple-platforms-qg9f3mqjl#faq","mainEntity":[{"@type":"Question","name":"Why is it so hard to get build time and flakiness data out of Xcode projects?","acceptedAnswer":{"@type":"Answer","text":"Xcode relies on proprietary, undocumented formats instead of open standards, so extracting data like build times or test results requires reverse engineering. Projects like tuist/xcodeproj and Spotify's XCLogParser had to reverse-engineer these formats, and since there's little incentive to maintain such tooling, Spotify's XCMetrics project is no longer actively maintained. daily.dev surfaces this kind of infrastructure reasoning for teams weighing build tooling investments."}},{"@type":"Question","name":"How can you detect flaky tests in an Xcode CI pipeline?","acceptedAnswer":{"@type":"Answer","text":"Store a hash and a pass/fail status for each uniquely identified test run; if the same hash produces different results across runs, the test is likely flaky. Persisting this data over time lets teams build a flakiness scoreboard to prioritize which tests are causing the most CI retries and merge delays. Developers tracking down flaky CI tests can find approaches like this via daily.dev."}}]}
```

