Xcode 11.4 - Проект архівації - Помилка сегментації 11


12

Я щойно оновив Xcode до 11.4, і при архівуванні проекту він показує мені "Segmentation Fault 11"

Цей проект буде архівовано з Xcode 11.3.1, але зараз він не ..

Хтось ще натрапив на те саме питання?

введіть тут опис зображення

Редагувати: 15 квітня 2020 року

Apple щойно випустила Xcode 11.4.1


Перегляньте цю публікацію: stackoverflow.com/a/42168123/2583679
Том,

3
@ Тобі дякую, однак це не виправляє .. я впевнений, що це помилка Apple
Артур Марчетто,

Відповіді:


11

Я зіткнувся з тим же питанням. Архівація використовує конфігурацію побудови Release, тому я переглянув кожне налаштування компілятора, щоб розібратися, яка з відмінностей призводить до цих помилок сегментації.

У моєму випадку проблема зникає, коли я змінюю налаштування Enable Testability на YES for Release .

Ні, я не маю уявлення, які недоліки цього полягають у архіві чи збірці випусків, чи справді, чому саме ця настройка полегшує проблему, але наприкінці дня у мене є проект, який потребує року, щоб дійти до цього етапу і мені дуже хочеться донести це до внутрішніх бета-тестерів, тому я збираюся подати це через тестовий політ і подивіться, як мені поїхати.

Я відчуваю, що це, безумовно, помилка Apple, оскільки компілятор взагалі не повинен бути Seg Faulting. Факт, який він компілює в конфігурації налагодження, підтримує це. Мій проект настільки великий, що я не знаю, як відтворити це, щоб подати помилку, але я побачу, чи зможу я отримати відповідь на Форумах Apple.


Зіткнувся з тією ж проблемою в Xcode 11.4.1, змінивши цей параметр, працював і для мене. Документи кажуть, що цей прапор пов'язаний з тим, щоб зробити приватні інтерфейси доступними, тому, можливо, є щось там ... Коли цей параметр активований, продукт буде побудований з параметрами, відповідними для запуску автоматизованих тестів, таких як зробити приватні інтерфейси доступними для тести. Це може призвести до того, що тести працюватимуть повільніше, ніж це було б без включеної перевірки.
keegan3d

5

Для мене допомогла знайти проблему, коли я встановила в налаштуваннях збірки SWIFT_COMPILATION_MODEна wholemodule. Потім після компіляції отримала більш конкретну помилку, яка призвела до функції класу, яка викликала помилку. Потім змінив його назад, як було.

Можливо, це теж допоможе вам.

У моєму випадку для набору параметрів введення init використовувався потрійний оператор. Схоже, Swift 5.2 вже не підтримує його.

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)

2
Дуже дякую!! ти мене вразив!!
ноном

3
Це виправляє і мою помилку часу побудови. Винувателем є потрійний оператор у параметрі за замовчуванням. Сподіваюся, що Apple виправить помилку незабаром.
Дао Сян

2
Я не відтворюю з головним відділенням Swift github.com/apple/swift/tree/master . Так, можливо, вже виправлено.
Cœur

1

У моєму випадку у мене сталася помилка з стручком Eureka

Segmentation fault: 11 (in target 'Eureka' from project 'Pods')

У файлі Pods я надав останню версію:

pod 'Eureka', '~> 5.2.1'

Також встановлено SWIFT_COMPILATION_MODEзначення wholemodule.


0

Я змінився #imageLiteral(resourceName: "image_name")наUIImage(imageLiteralResourceName: "image_name")


0

Як і інші респонденти, в повідомленнях про помилку тут поховано проблему SwiftUI (використовуючи Xcode 11.4). У моєму випадку використання параметра .embedInScrollView()викликало помилку збірки. Відключення цих викликів виправлено. Як вирішення, я вкладаю .embedInScrollView()у ViewModifier, як це:

public struct WrapInScrollView: ViewModifier {
    public func body(content: Content) -> some View {
        content
            .embedInScrollView()
    }

    public init() {}
}

Тоді я використовую цей модифікатор трохи схожий на вихідний дзвінок, як ось такий:

.modifier(WrapInScrollView())

Це означає, що ви все ще можете вбудовувати в scrollView, але помилки Seg 11 усуваються.


0

На жаль, рішення Enable Testability не працювало для мене.

Тимчасове вирішення (поки Apple не виправить проблему компілятора Xcode 11.4 Swift) полягає в тому, щоб перетворити рівень оптимізації на " Без оптимізації " для випуску на мету, яка не вдається ( SWIFT_OPTIMIZATION_LEVEL = "-Onone";). Він працює над нашим проектом, який розділений на кілька рамок. Потрібно встановити лише один -Onone.

Але документація Apple просить не надсилати ваш код із цим прапором . Він розроблений, він виконує мінімальні оптимізації та зберігає всю інформацію про налагодження.

Я думаю, що нам доведеться чекати: '(


-1

Я отримував цей виняток, і журнали архівів допомогли мені зрозуміти, що це знаходиться у певному файлі SwiftUI. У процесі усунення виявляється, що я залишив contentInsets()і alwaysBounceVertical()модифікатори на а, VStackщо не входив до List:

VStack {
    // more stuff
}
.contentInsets(UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0))
.alwaysBounceVertical()

Видалення цих модифікаторів дозволило успішно заповнити архів випусків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.