Skip to content

[Bug]: Не удается собрать релизную версию #311

@DenDmitriev

Description

@DenDmitriev

Choose the appropriate description of the issue

Issues with ad behavior/display

Does the issue occur in the latest SDK version?

Haven't checked

Can the issue be reproduced in our public sample?

Haven't checked

Can you reproduce the issue?

No

Specify the versions of dependencies you are using

Resolved source packages:
  cmark-gfm: https://github.com/swiftlang/swift-cmark.git @ 0.7.1
  MyPackageWithYandexInstream: /Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream
  KSCrash: https://github.com/kstenerud/KSCrash @ 2.1.2
  swift-markdown: https://github.com/apple/swift-markdown.git @ 0.6.0
  DivKitBinaryCompatibilityFacade: https://github.com/divkit/divkit-ios-facade @ 5.2.1
  vgsl: https://github.com/yandex/vgsl.git @ 7.12.3
  AppMetrica: https://github.com/appmetrica/appmetrica-sdk-ios @ 5.15.0
  DivKit: https://github.com/divkit/divkit-ios.git @ 32.26.0

Provide your application identifier from the partner interface

No response

Provide any additional information that will help us resolve the issue as quickly as possible

При попытке собрать релизную версию возникают ошибки

Image
** BUILD FAILED **


The following build commands failed:
	EmitSwiftModule normal arm64 (in target 'VGSLFundamentals' from project 'vgsl')
	SwiftEmitModule normal arm64 Emitting\ module\ for\ VGSLFundamentals (in target 'VGSLFundamentals' from project 'vgsl')
	Building workspace MyPackageWithYandexInstream with scheme MyPackageWithYandexInstream and configuration Release
(3 failures)

Ошибки

SwiftEmitModule normal arm64 Emitting\ module\ for\ VGSLFundamentals (in target 'VGSLFundamentals' from project 'vgsl')
EmitSwiftModule normal arm64 (in target 'VGSLFundamentals' from project 'vgsl')
    cd /Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/.swiftpm/xcode
    
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/Zip3.swift:43:5: error: 'let' property '_seq' may not be initialized directly; use "self.init(...)" or "self = ..." instead
    _seq = (seq1, seq2, seq3)
    ^
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/Zip3.swift:39:16: note: '_seq' declared here
  internal let _seq: (Seq1, Seq2, Seq3)
               ^
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/concurrency/AllocatedUnfairLock.swift:18:5: error: 'let' property 'buffer' may not be initialized directly; use "self.init(...)" or "self = ..." instead
    buffer = Buffer.create(minimumCapacity: 1) { buffer in
    ^
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/concurrency/AllocatedUnfairLock.swift:14:7: note: 'buffer' declared here
  let buffer: Buffer
      ^
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/reactive/Lazy.swift:35:3: error: deinitializer can only be '@inlinable' if the class is '@_fixed_layout'
  @inlinable
  ^~~~~~~~~~
  
/Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream/Build/derived/iphoneos/SourcePackages/checkouts/vgsl/VGSLFundamentals/reactive/Lazy.swift:31:12: error: initializer for class 'Lazy<T>' is '@inlinable' and must delegate to another initializer
  internal init(state: State) {
           ^

Зависимости

Resolved source packages:
  cmark-gfm: https://github.com/swiftlang/swift-cmark.git @ 0.7.1
  MyPackageWithYandexInstream: /Users/denis_dmitriev/Documents/Playground/MyPackageWithYandexInstream
  KSCrash: https://github.com/kstenerud/KSCrash @ 2.1.2
  swift-markdown: https://github.com/apple/swift-markdown.git @ 0.6.0
  DivKitBinaryCompatibilityFacade: https://github.com/divkit/divkit-ios-facade @ 5.2.1
  vgsl: https://github.com/yandex/vgsl.git @ 7.12.3
  AppMetrica: https://github.com/appmetrica/appmetrica-sdk-ios @ 5.15.0
  DivKit: https://github.com/divkit/divkit-ios.git @ 32.26.0

Comments

При сборке библиотеки в релизной версии, возникает ** BUILD FAILED **. Проблема в зависимости от библиотеки VGSL. divkit-ios-facade -> divkit-ios -> vgsl

Проблема проявляется давно, в том числе на последней актуальной версии divkit-ios-facade 5.2.1

Скрипт сборки

#!/usr/bin/env bash

set -euo pipefail

OTHER_SWIFT_FLAGS="-no-verify-emitted-module-interface -enable-library-evolution"

rm -rf "./Build/DerivedData"
mkdir -p "./Build/DerivedData"

xcodebuild clean build \
  -scheme "MyPackageWithYandexInstream" \
  -configuration Release \
  -sdk "iphoneos" \
  -destination "generic/platform=iOS" \
  -derivedDataPath "./Build/DerivedData/iphoneos" \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
  OTHER_SWIFT_FLAGS="$OTHER_SWIFT_FLAGS"

xcodebuild clean build \
  -scheme "MyPackageWithYandexInstream" \
  -configuration Release \
  -sdk "iphonesimulator" \
  -destination "generic/platform=iOS Simulator" \
  -derivedDataPath "./Build/DerivedData/iphonesimulator" \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
  OTHER_SWIFT_FLAGS="$OTHER_SWIFT_FLAGS"

Вот Package.swift

// swift-tools-version: 5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "MyPackageWithYandexInstream",
    platforms: [
        .iOS(.v13)
    ],
    products: [
        .library(
            name: "MyPackageWithYandexInstream",
            type: .static,
            targets: ["MyPackageWithYandexInstream", "YandexMobileAdsInstreamWrapper"]
        ),
    ],
    dependencies: [
        // .package(url: "https://github.com/namiai/vgsl.git", branch: "swift6-fixes"), // Решает проблему
        .package(url: "https://github.com/appmetrica/appmetrica-sdk-ios", from: "5.14.0"),
        .package(url: "https://github.com/divkit/divkit-ios-facade", exact: "5.2.1")
    ],
    targets: [
        .target(
            name: "MyPackageWithYandexInstream"
        ),
        .target(
            name: "YandexMobileAdsInstreamWrapper",
            dependencies: [
                .target(name: "YandexMobileAdsInstream"),
                .target(name: "YandexMobileAdsWrapper"),
            ]
        ),
        .target(
            name: "YandexMobileAdsWrapper",
            dependencies: [
                .target(name: "YandexMobileAds", condition: .when(platforms: [.iOS])),
                .product(name: "AppMetricaCore", package: "appmetrica-sdk-ios"),
                .product(name: "AppMetricaCrashes", package: "appmetrica-sdk-ios"),
                .product(name: "AppMetricaLibraryAdapter", package: "appmetrica-sdk-ios"),
                .product(name: "DivKitBinaryCompatibilityFacade", package: "divkit-ios-facade")
            ],
            resources: [
                .process("Resources")
            ]
        ),
        .binaryTarget(
            name: "YandexMobileAdsInstream",
            url: "https://ads-mobile-sdk.s3.yandex.net/Yandex/YandexMobileAdsInstream/0.61.0/spm/10ff9698-3b6b-4c29-b4ab-66cdfcb5a0b2.zip",
            checksum: "dd133334b9569fc876eea05884e178dc0d355189a88f2b4c86961dcc27e1febd"
        ),
        .binaryTarget(
            name: "YandexMobileAds",
            url: "https://ads-mobile-sdk.s3.yandex.net/Yandex/YandexMobileAds/7.17.1/spm/5177c6a0-8b16-4da1-8d24-8cb968316b04.zip",
            checksum: "f71f60586a3fcc513bc89fd8b09457da033eeb78782dc33af923118d3bcb4886"
        )
    ]
)

В форк библиотеке [namiai/vgsl.git"](https://github.com/namiai/vgsl.git", branch: "swift6-fixes) эта проблема решена, namiai столкнулся с тем же.

Приложил SPM с проблемой

MyPackageWithYandexInstream.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    transmittedIssue transmitted to inner service

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions