Проблема с диспетчером пакетов Swift с идентификаторами пакетов - PullRequest
0 голосов
/ 19 июня 2020

Я почти уверен, что SPM может решить эту проблему, но мне трудно ее найти. Я совершенно уверен, что «я ошибаюсь».

Я новичок в SPM и все еще борюсь с его синтаксисом и методологией.

Может быть, все, что нужно случается, это для кого-то направить меня к соответствующей документации PackageDescription (которую я не могу найти).

Я в процессе переключения приложения, которое я разработал, SPM для нескольких библиотек, которые я также написал. Он использовал Carthage, и библиотеки были добавлены как простые исходные файлы (все они являются зависимостями от одного исходного файла).

Все работает отлично ... за исключением того, что я получаю отказ от загрузки в App Store.

Ему не нравятся идентификаторы пакетов для встроенных библиотек. У них есть подчеркивания в имени проекта, и я должен заменить их дефисами.

Эти библиотеки ( этот , этот и этот ), на самом деле не предназначены для доставки в виде библиотек. Это действительно файлы с одним исходным кодом. Похоже, что SPM встраивает их в библиотеку, но я не предоставляю Info.plist для сборки. имена одинаковые?

Для записи вот ошибки, которые я получаю: Upload Error Log

1 Ответ

0 голосов
/ 20 июня 2020

ОК. Разобрался.

Во-первых, документация по SPM ... оставляет желать лучшего. Мне пришлось выяснить это методом проб и ошибок (МНОГО ошибок).

В файле Package.swift у меня было это (для одной из моих зависимостей):

// swift-tools-version:5.2

import PackageDescription

let package = Package(
    name: "RVS_Generic_Swift_Toolbox",
    products: [
        .library(
            name: "RVS_Generic_Swift_Toolbox",
            type: .dynamic,
            targets: ["RVS_Generic_Swift_Toolbox"]),
    ],
    targets: [
        .target(
            name: "RVS_Generic_Swift_Toolbox",
            path: "./src")
    ]
)

Очевидно, SPM использует свойство .library.name как BundleID. Если бы я изменил его, например:

// swift-tools-version:5.2

import PackageDescription

let package = Package(
    name: "RVS_Generic_Swift_Toolbox",
    products: [
        .library(
            name: "RVS-Generic-Swift-Toolbox",
            type: .dynamic,
            targets: ["RVS_Generic_Swift_Toolbox"]),
    ],
    targets: [
        .target(
            name: "RVS_Generic_Swift_Toolbox",
            path: "./src")
    ]
)

Тогда это разрешило бы загрузку, и я все равно смог бы сделать import RVS_Generic_Swift_Toolbox.

Кроме того, есть плохой кеш вопрос. Мне пришлось удалить ВСЕ, чтобы убедиться, что загружена нужная версия.

...