Например, у меня есть цвет с именем 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")
]),
]
)
< /code>
Внутри пакета я могу получить доступ к цветам следующими способами: < /p>
import SwiftUI
public final class TestClass {
let colorResource = ColorResource.colorTestInsidePackage
let color = Color(.colorTestInsidePackage)
let colorFromExtension = Color.colorTestInsidePackage
}
< /code>
Последняя строка возможна просто потому, что я вынужден генерировать расширение в настройках каталога активов: < /p>
Однако, когда я пытаюсь получить доступ к этим цветам из приложения, ни один из сгенерированных активов доступны, и я получаю ошибку компиляции, просто потому, что расширения создаются с помощью модификатора внутреннего
Вопрос
Есть ли способ убедиться, что компилятор создает такое расширение с общедоступным модификатором доступа < /code>, чтобы я мог использовать его в других целях, используя этот пакет (например, цель приложения или Еще одна цель пакета)? так что я мог бы работать с цветами как внутри библиотеки компонентов пользовательского интерфейса, так и внутри самого приложения (поскольку цвета явно делятся) и не импортировать одну и ту же библиотеку цветовых активов в цель приложения.
Подробнее здесь: https://stackoverflow.com/questions/794 ... hem-public