Изменение уровня доступа к автоматическим сгенерированным локализуемым символам в iOS 26 / xcode 26 [дубликат]IOS

Программируем под IOS
Ответить
Anonymous
 Изменение уровня доступа к автоматическим сгенерированным локализуемым символам в iOS 26 / xcode 26 [дубликат]

Сообщение Anonymous »

У меня много модулей, и я хочу создать модуль, чтобы удерживать мои общие /общие локализованные ресурсы и делиться ими с другими модулями. < /p>

Код: Выделить всё

// swift-tools-version: 6.2

import PackageDescription

let package = Package(
name: "Library",
defaultLocalization: "en",
platforms: [
.iOS(.v26),
.watchOS(.v26),
.macOS(.v26),
],
products: [
.library(name: "Localisation", targets: ["Localisation"]),
.library(name: "FeatureA", targets: ["FeatureA"]),
],
targets: [
.target(
name: "Localisation",
path: "Sources/Localisation",
sources: ["Sources"],
resources: [
.process("Resources/Localizable.xcstrings")
]
),
.target(
name: "FeatureA",
dependencies: [
"Localisation",
],
path: "Sources/Features/FeatureA",
sources: ["Sources"]
),
]
)
Проект имеет string_catalog_generate_symbols включен. Я сделал локальный.

Код: Выделить всё

cd /Users/andrew/Library/Developer/Xcode/DerivedData/MY_PROJECT_REDACTED/Index.noindex/Build/Intermediates.noindex/Library.build/Debug-iphonesimulator/Localisation.build/DerivedSources/
cat GeneratedStringSymbols_Localizable.swift
< /code>
Я вижу < /p>
//
// GeneratedStringSymbols_Localizable.swift
// Auto-Generated symbols for localized strings defined in “Localizable.xcstrings”.
//

import Foundation

#if SWIFT_PACKAGE
private let resourceBundle = Foundation.Bundle.module
@available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
private let resourceBundleDescription = LocalizedStringResource.BundleDescription.atURL(resourceBundle.bundleURL)
#else

private class ResourceBundleClass {}
@available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
private let resourceBundleDescription = LocalizedStringResource.BundleDescription.forClass(ResourceBundleClass.self)
#endif

@available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
extension LocalizedStringResource {
/**
Localized string for key “close” in table “Localizable.xcstrings”.
*/
static var close: LocalizedStringResource {
LocalizedStringResource("close", table: "Localizable", bundle: resourceBundleDescription)
}

/**
Localized string for key “confirm” in table “Localizable.xcstrings”.
*/
static var confirm: LocalizedStringResource {
LocalizedStringResource("confirm", table: "Localizable", bundle: resourceBundleDescription)
}
}
< /code>
, что здорово, и он работает локально в модуле. Но уровень доступа делает его невозможным, и я не могу получить доступ к этим символам в других модулях.extension LocalizedStringResource {

public enum General {
public static let close: LocalizedStringResource = .close
public static let confirm: LocalizedStringResource = .confirm
}

}
Просто чтобы все публично?

Подробнее здесь: https://stackoverflow.com/questions/796 ... os-26-xcod
Ответить

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

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

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

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

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