Компиляция статической библиотеки для Unity 4.6.3 (64-бит и IL2CPP)

У меня есть статическая библиотека, которую я уже несколько месяцев интегрирую в свои проекты Unity-iOS. Все работает нормально для Unity 4.3.x.

С недавним выпуском Unity 4.6.3, который обеспечивает сборку для 64-битных устройств с использованием бэкенда сценариев IL2CPP и универсальной архитектуры, моя статическая библиотека больше не работает. У меня есть очень простой образец приложения с Unity, использующий только статическую библиотеку, и он падает во время выполнения.

SDKTestApp(11555,0x199dff310) malloc: *** error for object 0x174287f2f: Invalid pointer dequeued from free list *** set a breakpoint in malloc_error_break to debug

Обратите внимание, что проект прекрасно компилируется, но вскоре после загрузки приложения и выполнения некоторых функций статической библиотеки происходит сбой. И это проблематично только с теми устройствами, которые только 64-битные (iPhone 6, iPad Air и т. д.).

Наконец, вот вывод, когда я запускаю lipo -info myStaticLibrary.a в файле (.a):

myStaticLibrary.a: Mach-O universal binary with 3 architectures myStaticLibrary.a (for architecture arm64): current ar archive random library myStaticLibrary.a (for architecture armv7s): current ar archive random library myStaticLibrary.a (for architecture armv7): current ar archive random library

Любые идеи?


person Ben Dapkiewicz    schedule 06.03.2015    source источник


Ответы (1)


Оказывается, это не имело ничего общего с моими настройками Xcode, и на самом деле мои настройки Xcode были правильными. Это была ошибка, связанная с моим конкретным кодом.

Для дальнейшего использования lipo -info myStaticLib.a невероятно полезен для определения поддержки архитектуры.

person Ben Dapkiewicz    schedule 09.03.2015