Как я могу создать target-C Framework для iOS-приложения - PullRequest
6 голосов
/ 22 марта 2011

Я сейчас нахожусь в процессе создания некоторых универсальных классов, которые можно многократно использовать для большого количества приложений.

Например: функции общего доступа - если нам нужна эта функциональность в проекте, тогда нам нужно добавитьгруппа классов в этот проект и отображение контроллера представления в этой группе файлов. В этом контроллере представления есть кнопки и все, что нужно для совместного использования.

в чем заключается моя идея, если проекту нужна такая функциональность, им нужно добавить каркас и вызвать в нем функцию или отобразить указанное представление в фреймворке, т.е.не предоставлен доступ на уровне кода тому, кому вы выполняете этот проектпоэтому, если в этих общих классах (фреймворке) обнаруживается какая-либо проблема, мне нужно исправить ее, воссоздать фреймворк и изменить весь проект, использующий эту фреймворк, не затрагивая существующий проект.

Я думаю, что не толькофункция обмена.Больше похоже на слайдер изображений, просмотрщик PDF, браузер.Крышка потока.В настоящее время у меня есть код для всех этих функций.Но другим нужно слишком много времени, чтобы интегрировать и использовать его.Если обнаружена какая-либо проблема, нам нужно изменить все исходные классы проекта.

Я перехожу по нескольким ссылкам в google

Могу ли я разработать собственную платформу Objective-C для приложений Cocoa Touch?

http://www.cocoanetics.com/2010/04/universal-static-libraries/

Руководство по созданию собственной библиотеки для разработки Какао (сенсорный)

Я не могу понять, как она используется инекоторые из них не объясняют это полностью.некоторые отсутствуют в этих ссылках.

заранее спасибо

Ответы [ 5 ]

8 голосов
/ 06 мая 2012

Ознакомьтесь с этим руководством по созданию статических фреймворков iOS:

https://github.com/jverkoey/iOS-Framework

4 голосов
/ 22 марта 2011

Я предполагаю, что вы спрашиваете, как создать общую динамическую библиотеку для iOS; и самое короткое из этого: вы не можете.

Единственный вид поддерживаемой библиотеки - статическая библиотека; поэтому всякий раз, когда вы вносите изменения в свою библиотеку; каждое приложение, которое его использует, необходимо перекомпилировать.

3 голосов
/ 21 июня 2017

Мы создали Framework в Objective c, это отлично работает.

По нижеуказанным простым шагам для создания Framework

1) Создайте новый каркас как,

В xcode выберите

 file =>New =>Project =>cocoatouchframework =>Next =>GiveframeworkName =>Create  

enter image description here

2) Добавьте файлы .h и .m в проект, который используется для создания Framework.

3) Добавьте файлы в Public Headers на этапах сборки, этот файл будет отображаться в вашей структуре.

enter image description here

4) Нажмите наимя проекта DemoFramework , затем нажмите кнопку + , затем выберите

Cross-platform =>Aggregate 

enter image description here

5) Добавить скрипт запуска

enter image description here

6) Добавьте приведенный ниже код в сценарии запуска для агрегирования (пометки) iPhone и каркаса симулятора.

   #  ============Script Start==============
   if [ "${ACTION}" = "build" ]
   then
   # Set the target folders and the final framework product.
   INSTALL_DIR=${SYMROOT}/DemoFramework.framework
   DEVICE_DIR=${SYMROOT}/Debug-iphoneos
   SIMULATOR_DIR=${SYMROOT}/Debug-iphonesimulator

  # Create and renews the final product folder.
  mkdir -p "${INSTALL_DIR}"
  rm -rf "${INSTALL_DIR}"
  rm -rf "${INSTALL_DIR}/DemoFramework"

 # Copy the header files to the final product folder.
 ditto "${DEVICE_DIR}/DemoFramework.framework/Headers" 
 "${INSTALL_DIR}/Headers"

 # Copy the info.plist file to the final product folder
 ditto "${DEVICE_DIR}/DemoFramework.framework/info.plist" 
"${INSTALL_DIR}"

# Copy the ResoureBundle.bundle file to the final product folder
ditto "${DEVICE_DIR}/DemoFramework.framework/ResourceBundle.bundle" 
"${INSTALL_DIR}/ResourceBundle.bundle"

# Use the Lipo Tool to merge both binary files (i386 + armv6/armv7) 
 into one Universal final product.
 lipo -create "${DEVICE_DIR}/DemoFramework.framework/DemoFramework" 
"${SIMULATOR_DIR}/DemoFramework.framework/DemoFramework" -output 
"${INSTALL_DIR}/DemoFramework"
 fi
 #  ============Script End==============

7)Теперь создайте проект в три этапа

1) Сборка для устройства iPhone.

enter image description here

Вы увидите, что для устройства iPhone создан каркасрасположение каркаса показано в производных данных проекта, как показано ниже.

enter image description here

2) Сборка для симулятора.

enter image description here

Вы увидите, что каркас создан для симулятора, а расположение каркаса показано в производных данных проекта, как показано ниже.

enter image description here

3) Это последний шаг кСоздайте фреймворк, выберите Aggregate in build option и создайте приложение, см. снимок экрана, как показано ниже.enter image description here

Наконец, ваш фреймворк создан, используйте этот фреймворк в любом приложении. Расположение фреймворка находится в производных данных, как показано ниже.

enter image description here

Надежды, что эти простые шаги помогут кому-то создать структуру в цели C.

3 голосов
/ 31 марта 2011

http://accu.org/index.php/journals/1594 предлагает подробные инструкции.

OCHamcrest делает это, взяв копию версии OS X платформы и заменив ее динамическую библиотеку статическим iOSбиблиотека.(Скоро появится версия Xcode 4).

0 голосов
/ 05 апреля 2011

Я сделал шаблоны Xcode 4 для этого. См. Мой ответ здесь: Могу ли я разработать собственную платформу Objective-C для приложений Cocoa Touch?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...