DYLD, без изображения кэша с именем (@ rpath / libswiftCore.dylib) - PullRequest
0 голосов
/ 06 февраля 2020

Я получаю cra * sh на tvOS 12.2 со следующими подробностями:

Incident Identifier: 57DC9DA3-536C-438E-91A0-2A3BF5290302
CrashReporter Key:   336395bb8937c2da230441e7d0f77cf6ce5d29e2
Hardware Model:      AppleTV5,3
Process:             yospace-tvos-test [535]
Path:                /private/var/containers/Bundle/Application/8D86BE15-0069-48A0-A6CC-AF32ABCB718B/yospace-tvos-test.app/yospace-tvos-test
Identifier:          com.x..yospace-tvos-test
Version:             1 (1.0)
AppStoreTools:       11C504
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.x..yospace-tvos-test [856]


Date/Time:           2020-02-06 09:25:36.5008 +0000
Launch Time:         2020-02-06 09:25:36.2246 +0000
OS Version:          Apple TVOS 12.2 (16L5201d)
Baseband Version:    n/a
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, no cache image with name (@rpath/libswiftCore.dylib)
Triggered by Thread:  0

Thread 0 Crashed:
0   dyld                            0x00000001009b63b8 __abort_with_payload + 8
1   dyld                            0x00000001009b59f8 abort_with_payload_wrapper_internal + 100
2   dyld                            0x00000001009b5a28 fcntl + 0
3   dyld                            0x00000001009788fc dyld::fastBindLazySymbol+ 18684 (ImageLoader**, unsigned long) + 0
4   dyld                            0x000000010097b6e8 dyld::_main+ 30440 (macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 5396
5   dyld                            0x0000000100975044 _dyld_start + 68

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000006   x1: 0x0000000000000009   x2: 0x000000016f56a980   x3: 0x0000000000000014
    x4: 0x000000016f56a580   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000420
    x8: 0x0000000000000020   x9: 0x0000000000000009  x10: 0x0000000000000001  x11: 0x0000000100a34000
   x12: 0x0000000100a34000  x13: 0x0000000000000007  x14: 0x6172462f7070612e  x15: 0x00736b726f77656d
   x16: 0x0000000000000209  x17: 0x0000000000000010  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x000000016f56a580  x21: 0x0000000000000014  x22: 0x000000016f56a980  x23: 0x0000000000000009
   x24: 0x0000000000000006  x25: 0x000000000000002f  x26: 0x00000001009cf5e0  x27: 0x00000001009cf000
   x28: 0x00000001009cfa00   fp: 0x000000016f56a550   lr: 0x00000001009b59f8
    sp: 0x000000016f56a510   pc: 0x00000001009b63b8 cpsr: 0x40000000

EOF

Если я запускаю приложение через XCode, это нормально, но когда я экспортирую его как IPA и устанавливаю на у Apple TV он вылетает мгновенно при запуске. Он отлично работает от IPA на tvOS 13 и iOS 11-13. Я предполагаю, что это как-то связано со стабильностью Swift ABI в tvOS 13, так что для 13 не нужны Swift libs, а для 12, и хотя я и сказал, что всегда следует встраивать быстрые стандартные libs, с которыми он борется найдите их или даже включите в них вообще на основании отсутствия библиотек Swift в двоичных изображениях, перечисленных в конце журнала cra sh (не включены из-за ограничений длины тела).

Консоль для Apple TV сообщает следующее:

Попытка добавить приложение с недостаточным идентификатором, info {BKSApplicationStateAppIsFrontmost = 1; BKSApplicationStateExtensionKey = 0; SBApplicationStateDisplayIDKey = "com.x..yospace-tvos-test"; SBApplicationStateKey = 8; SBApplicationStateProcessIDKey = 535; SBMostElevatedStateForProcessID = 8; }

Может быть (или не может) иметь значение, что приложение написано на Obj C и использует фреймворк Swift.

Я видел много постов о libswiftCore не загружается, но это происходит при подключении с Xcode, а не при установке из IPA. Мне не повезло найти кого-нибудь с этим сообщением cra sh, и мне не повезло с сообщением «Попытка добавить приложение с недостаточным идентификатором» (хотя люди, кажется, обращались к нему чаще).

1 Ответ

0 голосов
/ 06 февраля 2020

Я нашел решение этой проблемы. Простое добавление фиктивного файла Swift (с фиктивным классом в нем) в проект приложения Obj C решило проблему. Нет необходимости иметь соединительный заголовок или необходимость ссылаться на класс-пустышку в любом месте.

Это не отвечает на вопрос, почему это произошло, но, возможно, в Xcode есть проблема, и это просто заставляет его включают стандартные библиотеки Swift.

...