Например, у меня есть цвет с именем ColorTestInsidePackage, и структура пакета выглядит следующим образом:
Код: Выделить всё
// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyLibrary",
platforms: [
.iOS(.v17),
],
products: [
.library(
name: "MyLibrary",
targets: ["MyLibrary"]),
],
targets: [
.target(
name: "MyLibrary",
resources: [
.process("Resources")
]),
]
)
Код: Выделить всё
import SwiftUI
public final class TestClass {
let colorResource = ColorResource.colorTestInsidePackage
let color = Color(.colorTestInsidePackage)
let colorFromExtension = Color.colorTestInsidePackage
}

Однако, когда я пытаюсь получить доступ к этим цветам из приложения, ни один из сгенерированных ресурсов недоступен, и я получаю ошибку компиляции просто потому, что расширения создаются с помощью внутреннего модификатора доступа.
Вопрос
Есть ли способ убедиться, что компилятор создает такое расширение с модификатором доступа public, чтобы я мог использовать его в других целях, использующих этот пакет (например, цель приложения или другая цель пакета)?
Сценарий использования
Создание библиотеки компонентов пользовательского интерфейса и системы дизайна в пакете, чтобы я мог работать с цветами как внутри библиотеки компонентов пользовательского интерфейса, так и внутри самого приложения (поскольку цвета, очевидно, являются общими), а не импортировать одну и ту же библиотеку ресурсов цвета в цель приложения.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... hem-public
Мобильная версия