Xcode 16.2: сгенерируйте быстрые символы для активов в пакете и сделайте их общедоступнымиIOS

Программируем под IOS
Ответить
Anonymous
 Xcode 16.2: сгенерируйте быстрые символы для активов в пакете и сделайте их общедоступными

Сообщение Anonymous »

В настоящее время, начиная с Xcode 15, можно автоматически создавать статические переменные для каждого элемента актива в каталоге активов, например цвет или изображение.
Например, у меня есть цвет с именем 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»