# Отсутствующий обязательный ресурс в shipping-варианте

RuleID: portfolio.arch.10@1.0.0
Status: accepted-subset
Catalog snapshot: 4558458d

Accepted subset is bounded. If required evidence is incomplete, the affected result is unknown.

## V-ARCH-10 — Отсутствующий обязательный ресурс в shipping-варианте

Обязательный lookup отсутствующего ресурса приводит к неработающему пути или аварийному unwrap. Это проверяется относительно состава конкретной сборки.

Status: accepted-subset

Scope notes: Приняты literal resource lookup в ограниченном SwiftPM-пакете: происхождение copied resource и generated accessor проверяется по сборке. Обязательный lookup отделён от optional/fallback. Произвольные bundles и динамические пути этим не покрыты.

### Before (illustrative)

```swift
import Foundation
public func template() -> URL {
    Bundle.module.url(forResource: "template", withExtension: "txt")!
}
// В подтверждённом bundle нет template.txt.
```

### After (illustrative)

```swift
// Добавить template.txt в ресурсы target и проверить копирование.
// Либо изменить контракт API на optional и обработать отсутствие.
```

Boundary: Optional lookup, fallback и неизвестный generated resource не дефект

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/portfolio.arch.10/
Source revision: 4558458d
