iOS 4 сбоя приложения при запуске на iOS 3.1.3: Символ, не найденный: __ NSConcreteStackBlock

Я выполняю XCode 3.2.3 с iOS 4.0 SDK. Я создал свое приложение с Основой SDK = iphoneos4.0, Активный SDK = iphoneos4.0, Цель Развертывания = 3.1.3, и Архитектура = стандарт (arm6 arm7). Компилятор = GCC 4.2. Насколько я понимаю это - корректный способ создать приложение и для iOS 4 и для 3.

Выполнение приложения, прекрасное на устройствах рабочий iOS 4. Но это отказывает на запуске, когда Вы пытаетесь выполнить его на устройстве с iOS 3.1.3 (1G iPod Touch):

dyld: Symbol not found: __NSConcreteStackBlock
  Referenced from: /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
  Expected in: /usr/lib/libSystem.B.dylib

Это, кажется, проблема с довольно "низкоуровневой" динамически подключаемой библиотекой ПЕРЕД моим основным (), функция даже вызвана. Я даже попытался перезапустить устройство, и т.д., без удачи. Вот часть крешлог:

Process:         MyApp [60]
Path:            /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-07-22 17:16:17.942 -0400
OS Version:      iPhone OS 3.1.3 (7E18)
Report Version:  104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread:  0

Dyld Error Message:
  Symbol not found: __NSConcreteStackBlock
  Referenced from: /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
  Expected in: /usr/lib/libSystem.B.dylib
  Dyld Version: 149

Binary Images:
    0x1000 -    0x80fff +MyApp armv6  <d5f0ff6f233b4b034c222c16438c88d9> /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
0x2fe00000 - 0x2fe26fff  dyld armv6  <544395a4b5546114b878d5131a84fd7f> /usr/lib/dyld
0x30410000 - 0x30536fff  libSystem.B.dylib armv6  <0373fd64e915a17160732b29d343f95f> /usr/lib/libSystem.B.dylib

Спасибо за любой совет!

46
задан Brad Larson 21 October 2011 в 19:16
поделиться

1 ответ

Бен Готлиб вчера заметил, что если вы используете блоки где-либо в вашем приложении, то при сборке компилятором LLVM вы увидите крах, подобный этому, на ОС до версии 4.0. Чтобы обойти эту проблему, вы можете указать флаг компоновщика -weak-lSystem в настройках сборки Xcode.

85
ответ дан 26 November 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: