{"adoption": {"forks": 384, "observed_at": "2026-08-28T04:05:16.268213+00:00", "stars": 1645}, "canonical_url": "https://ross.abutalabs.com/products/avoidcrash", "card": {"archived": false, "artifact_type": "framework", "description": "This framework can effective avoid crash by potential error code. For example  : If you insert a nil into a mutable array, this framework can avoid crash and note you that where cause crash.", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["error-handling", "developer-tools"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["chenfanfang/AvoidCrash"], "name": "chenfanfang/AvoidCrash", "platform": [], "pushed_at": "2020-03-15T14:59:03+00:00", "repo": "chenfanfang/AvoidCrash", "stars": 1645, "tags": ["objective-c", "runtime-swizzling", "crash-prevention", "foundation", "ios-app-stability", "ios", "macos"], "topics": [], "urls": [], "use_cases": ["prevent app crashes from nil inserted into mutable arrays", "avoid crashes from array index out of bounds", "handle nil keys when setting dictionary values", "log details of potential crashes instead of crashing in production", "report avoided crash info to crash collection SDKs like Bugly", "keep an iOS app alive when server returns malformed data"], "what_it_is": "AvoidCrash is an Objective-C framework for iOS that uses runtime method swizzling to intercept common Foundation framework errors, such as inserting nil into a mutable array or array out-of-bounds access, preventing app crashes. It logs detailed information about the code that would have caused the crash so developers can locate and fix the underlying issue.", "when_to_avoid": ["you are starting a new project in Swift where these Foundation pitfalls are less common", "you need a framework actively maintained and compatible with the latest iOS system versions", "you rely on the prefix-based swizzling mode, which the author discourages"], "when_to_choose": ["you maintain a legacy Objective-C iOS app prone to Foundation-related crashes", "you want to prevent crashes caused by unexpected nil or malformed server data", "you need crash diagnostics without integrating a full crash reporting SDK"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/avoidcrash", "repo": "chenfanfang/AvoidCrash", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.268213+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:25.065575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ce3e42ba077319484c04e30562663b67289e60f3e12da1f12aba5335bbbfc0c", "fetched_at": "2026-08-28T04:05:16.268213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chenfanfang/AvoidCrash"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3632, "days_push": 2362, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}