Я пытаюсь создать статическую библиотеку, которую я могу использовать как с ios3.x, так и с ios4.x. Я могу создать статическую библиотеку с ios3.0, которая работает с другим проектом в ios3.0, но не будет компилироваться в ios4. То же самое происходит с ios4 до ios3.Как создать универсальную статическую библиотеку ios
Вот как воссоздать:
- Открыть XCode 3.2.4 и начать новый проект, это Cocoa Touch Static Library называется Library4
- Нажмите на папку классов и создать новый UIViewController под названием «TestViewController»
- Щелкните правой кнопкой мыши на папке «Каркасы», добавьте существующую структуру, выберите UIKit
- На левой панели разверните цели, щелкните правой кнопкой мыши по моей целевой библиотеке и нажмите «Получить информацию». Перейдите во все конфигурации, измените базовый sdk на симулятор iphone 4.0, измените цель развертывания ios на ios3.0
- Нажмите на ссылку Библиотека с папкой Binaries. В правой части окна, изменить роль как для «слабых»
- Построить библиотеку
- Открыть Xcode 3.2.2 и начать новое приложение, основанное View под названием Library4Test
- Копировать TestViewController.h классам папку
- Скопируйте файл libLibrary4.a в папку фреймворков. Он автоматически добавляется к фазе компоновщика цели
- Щелкните правой кнопкой мыши по объекту Library4Test и нажмите «Получить информацию». В других флагов компоновщика, добавьте «-ObjC» и «-all_load»
- В заголовке приложения делегат добавить Import «TestViewController.h»
В методе didFinishLaunchingWithOptions приложения в приложение делегата Header Добавить в
TestViewController * тест = [TestViewController alloc] init;
Compile с ios3.0 тренажером
Когда я компилирую я получаю:
Ld build/Debug-iphonesimulator/library4Test.app/library4Test normal i386
cd /Users/test/Documents/Testing/library4Test
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv PATH "/Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/GrandpaIPhone/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk -L/Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator -L/Users/test/Documents/Testing/library4Test -F/Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator -filelist /Users/test/Documents/Testing/library4Test/build/library4Test.build/Debug-iphonesimulator/library4Test.build/Objects-normal/i386/library4Test.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -llibrary4_1 -o /Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator/library4Test.app/library4Test
Undefined symbols:
"_objc_msgSendSuper2", referenced from:
-TestViewController didReceiveMemoryWarning in liblibrary4_1.a(TestViewController.o)
-TestViewController viewDidUnload in liblibrary4_1.a(TestViewController.o)
-TestViewController dealloc in liblibrary4_1.a(TestViewController.o)
"__objc_empty_vtable", referenced from:
_OBJC_METACLASS_$_TestViewController in liblibrary4_1.a(TestViewController.o)
_OBJC_CLASS_$_TestViewController in liblibrary4_1.a(TestViewController.o)
"_OBJC_CLASS_$_UIViewController", referenced from:
_OBJC_CLASS_$_TestViewController in liblibrary4_1.a(TestViewController.o)
"_OBJC_METACLASS_$_UIViewController", referenced from:
_OBJC_METACLASS_$_TestViewController in liblibrary4_1.a(TestViewController.o)
".objc_class_name_TestViewController", referenced from:
[email protected][email protected][email protected] in library4_1os3TestAppDelegate.o
"_OBJC_METACLASS_$_NSObject", referenced from:
_OBJC_METACLASS_$_TestViewController in liblibrary4_1.a(TestViewController.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Для людей, которые просто хотят создать статическую библиотеку IOS: http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4 –