如何为iOS应用程序创建objective-C Framework

Nav*_*han 7 iphone frameworks objective-c ipad

我正在创建一些可以在很多应用程序中重用的泛型类.

对于例如:共享函数 - 如果我们在项目中需要此功能,那么我们当前需要在该项目中添加一组类并在该组文件中显示视图控制器.在此视图控制器中有按钮以及所有需要处理共享.

我的想法是,如果项目需要这样的功能,他们需要添加框架并在其中调用函数或在框架中显示指定的视图,即.没有为您执行该项目的代码级访问权限.因此,如果在通用类(框架)中发现任何问题,我需要修复它并重新创建框架并更改使用此框架的所有项目,而不会影响现有项目.

我不仅认为共享功能.更像是图像滑块,PDF查看器,浏览器.封面流程.目前我有所有这些功能的代码.但是,将其整合并使用它需要花费太多时间.如果发现任何问题,我们需要更改所有项目源类.

我在谷歌浏览了几个链接

我可以为Cocoa Touch应用程序开发自己的Objective-C Framework吗?

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

为Cocoa(触摸)开发创建自己的库的指南

我无法理解它是如何使用的,有些人还没有完全解释它.这些链接中缺少一些.

提前致谢

fea*_*ess 8

查看本指南,了解如何创建静态iOS框架:

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


Jay*_*kar 6

我们在目标 c 中创建了框架,它的工作很完美。

按照以下简单步骤创建框架

1)创建新框架,

在 xcode 中选择

 file =>New =>Project =>cocoatouchframework =>Next =>GiveframeworkName =>Create  
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

2) 在项目中添加.h 和.m 文件,用于创建Framework。

3) 在构建阶段在公共头文件中添加文件,该文件将显示在您的框架中。

在此处输入图片说明

4)点击项目名称DemoFramework然后选择+按钮然后选择

Cross-platform =>Aggregate 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

5) 添加运行脚本

在此处输入图片说明

6) 在运行脚本中添加以下代码到 Aggregate(marge)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==============
Run Code Online (Sandbox Code Playgroud)

7)现在分三步构建项目

1) 为 iPhone 设备构建。

在此处输入图片说明

您将看到为 iPhone 设备创建了框架,框架位置显示在项目的派生数据中,如下所示。

在此处输入图片说明

2)为模拟器构建。

在此处输入图片说明

您将看到为模拟器创建了框架,框架位置显示在项目的派生数据中,如下所示。

在此处输入图片说明

3) 这是创建框架的最后一步,在构建选项中选择聚合并构建应用程序,请参见以下屏幕截图。 在此处输入图片说明

最后,在任何应用程序中使用此框架创建您的框架,框架位置在派生数据中,如下所示。

在此处输入图片说明

希望这个简单的步骤可以帮助某人在目标 C 中创建框架。


Wil*_*and 4

我猜你要问的是如何为iOS创建一个共享动态库;总而言之,就是:你不能。

唯一支持的库是静态库;因此,每当您对库进行更改时;每个使用它的应用程序都需要重新编译。


归档时间:

查看次数:

13455 次

最近记录:

6 年 前