totalmente - transferir datos de android a iphone
La aplicación iOS 4 se bloquea al inicio en iOS 3.1.3: SÃmbolo no encontrado:__NSConcreteStackBlock (3)
Estoy ejecutando Xcode 3.2.3 con iOS 4.0 SDK. Creé mi aplicación con Base SDK = iphoneos4.0, SDK activo = iphoneos4.0, Target de despliegue = 3.1.3 y Architecture = estándar (arm6 arm7). Compilador = GCC 4.2. Según tengo entendido, esta es la forma correcta de crear una aplicación para iOS 4 y 3.
La aplicación funciona bien en dispositivos con iOS 4. Pero se bloquea al iniciar cuando intentas ejecutarla en un dispositivo con iOS 3.1.3 (un iPod Touch 1G):
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
Parece ser un problema con una biblioteca de enlace dinámico de "bajo nivel", ANTES de que incluso se llame a mi función main (). Incluso he intentado reiniciar el dispositivo, etc., sin suerte. Aquí hay parte del registro de bloqueo:
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
Gracias por cualquier consejo!
Ben Gottlieb señaló ayer que si usa bloques en cualquier lugar de su aplicación, verá un bloqueo similar a este en un sistema operativo anterior a 4.0 mientras construye con el compilador LLVM. Para -weak-lSystem
este problema, puede especificar el indicador del enlazador -weak-lSystem
en la configuración de compilación de Xcode.
Dado que la mayoría de estas respuestas son específicas de Xcode 3.x, solo quería compartir lo que hice para arreglar esto con Xcode 4.2.
Debajo de su objetivo en la pestaña "Crear fases" en la sección "Enlace binario con bibliotecas" agregué "libSystem.dylib" y lo hice opcional. Esto solucionó el problema de los dispositivos con iOS 3.x al mismo tiempo que mantiene el soporte para dispositivos iOS 4.xy 5.0.
Si está utilizando las bibliotecas de Cocos2D, existe una forma más clara de hacerlo, debe configurar el objetivo de implementación del objetivo cocos2d en 3.0.