图书馆?静止的?动态的?还是框架?项目在另一个项目中

2023-12-09

我有一个现有的 iOS 应用程序,并且想要添加大量代码,这些代码是我作为另一个项目开发的,只是为了便于测试。新块基本上涉及将图像保存到各种共享服务等。因为共享代码需要大量测试和未来更新,所以我想知道将该代码块合并到我现有的应用程序中的最佳方法是什么。

我不知道它应该是静态库、动态库还是框架,老实说,我不太确定它们之间有什么区别,或者我应该如何处理它并在 Xcode 中设置它。

我所知道的是,我需要/想要为共享代码保留一个单独的测试和更新应用程序,并让主应用程序使用它。


首先,一些通用定义(特定于iOS):

静态库,正式地静态共享库- 在编译时链接的代码单元,不会改变。

然而,iOS静态库是not允许包含图像/资产(仅限代码)。您可以通过使用来解决这个挑战媒体包 though.

更好、更正式的定义可以在维基百科上找到 here.

动态库,正式地动态共享库- 在运行时绑定符号。当符号被解析时,包含该符号的相应模块被链接。

由于有很多优点,建议使用动态共享库。但是,在早期版本的 Mach-O 中,应用程序启动速度比使用静态库的应用程序稍慢。最新版本比带有静态库的应用程序要快得多。

苹果不建议使用独立式动态共享库 - 这种动态共享库仅对 macOS 平台有意义(该库存储在 /use/lib 中,只有 Apple 可以正式这样做),但非独立动态共享库是当今任何框架的一部分(.框架包)。

框架(又名 .framework 文件) - 只是一个捆绑包(与应用程序捆绑包相同,但有细微差别)。这是一个包含一组资源的文件夹:

  • 动态/静态共享库;
  • 笔尖文件;
  • 本地化字符串;
  • 头文件;
  • 文档;
  • 资产文件等

因此,您实际上可以拥有静态框架 or a 动态框架,它们只是具有静态共享库或动态共享库的容器。

See the 软件框架 Wiki更多细节。

因此在 iOS 上,你唯一的选择基本上就是使用静态共享库(.a文件)或框架(内部有静态或动态共享库)。

EDIT

关于一个子项目据我所知,在一个项目中,为了使其正常工作/编译,您基本上必须设置一个编译链,首先编译子项目,这将创建一个静态框架.a项目用作依赖项的文件。

这是另一个有用的教程,其中讨论了这一点:

http://www.cocoanetics.com/2011/12/sub-projects-in-xcode/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图书馆?静止的?动态的?还是框架?项目在另一个项目中 的相关文章

  • React Native facebook iOS sdk 构建失败

    我已遵循 Facebook 开发人员指南中列出的 iOS React Native sdk 的所有准则 但我仍然无法构建该应用程序 附上我的配置和构建日志的屏幕截图 Ld Users alaaattya Library Developer
  • 如何在 Swift 中“生成”闭包类型别名?

    为了使我的代码更易于阅读 我在 Swift 中对各种类型的闭包使用类型别名 我有以下基本的闭包集 public typealias FailureClosure error NSError gt Void public typealias
  • 修改 SCNParticleEventBlock 中的 SCNParticleSystem 颜色不起作用

    鉴于提供的示例代码handle forProperties handler https developer apple com documentation scenekit scnparticlesystem 1523251 handle
  • iOS 9.3 中的 KVO 被破坏

    这可能是 iOS 9 3 发行版 中的一个可怕的错误 添加单个观察者时 NSUserDefaults standardUserDefaults 我注意到响应方法 observeValueForKeyPath ofObject change
  • React Native Detox:无法接受系统警报弹出的位置权限

    使用以下命令从命令行启动应用程序detox test configuration ios sim debug 通过代码启动应用程序await device launchApp permissions location always noti
  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • 命令行工具中的框架问题

    在每个人开始向我扔其他堆栈溢出和论坛帖子之前 我把它们都看了 他们都没有帮忙 我有一个简单的 cmd 工具 名为swizzler并想要嵌入SwizzleSrc其中的框架 我已经遵循了所有教程并且堆栈溢出但没有运气 这就是我得到的 Build
  • 在 iOS 上构建 WebRtc

    我按照以下说明成功地在 MAC 上构建了 WebRTC http www webrtc org reference getting started http www webrtc org reference getting started
  • 如何在 iOS 中创建多行表格单元格?

    如何让第二个单元格扩展以适合文本而不是缩放文本 iOS 中有内置的方法可以做到这一点 还是我必须想出一些自制的解决方案 如果您查看 iOS 联系人应用程序 会发现有一个类似地址的框 但我找不到如何实现这一点 对于任何希望将来实现这一目标的人
  • gcc - 如何从静态库输出 (.a) 中删除所有绝对路径

    我正在使用 GCC for ARM 红色套件 4 恩智浦 http www code red tech com red suite 4 nxp php 我正在编译用于最终应用程序的静态库文件 a 我需要配置项目 以便任何开发人员都可以生成完
  • 以编程方式更改自动布局约束后视图未更新

    事先我必须说 我实际上得到了我想要的可见效果 但不是以令人满意的方式 因为现在需要 打破 约束而不是正确更新 我有一个 ViewController 其中包含一个 UITableView 那个的高度tableView可以从 0 不可见 到它
  • ios GPUImage,小尺寸图像处理效果不好?

    我正在尝试为 OCR 准备图像 我使用 GPUImage 来完成 代码工作正常 直到我裁剪图像 裁剪后我得到了糟糕的结果 作物面积 https www dropbox com s e3mlp25sl6m55yk IMG 0709 PNG h
  • 我的 iPhone 6 获取 iPhone 5 媒体查询

    我不明白这里发生了什么事 我在 CSS 媒体查询中专门针对 iphone 5 media only screen and min device width 320px and max device width 568px some div
  • 在 XCode 中本地化 HTML 文件

    我有一个本地化的 iOS 应用程序 我希望在其中包含一些本地化的 HTML 文件 我不知道该怎么做 目前 我的文件夹结构如下所示 myapp en lrproj Localizable strings fr lrproj Localizab
  • AST 文件格式错误或损坏

    我有一个问题 我不知道为什么会发生这种情况 但很可能是因为我错误地按了 移动到垃圾箱 到某些系统框架 我收到一条错误消息 AST 文件格式错误或损坏 找不到 AST 文件引用的文件 Users username myProject Quar
  • XOR或其他简单的文件混淆方法ios目标c

    我正在开发一个使用受版权保护的 pdf 文件的 ios 应用程序 我正在寻找一些简单的方法来混淆文件以确保安全 这些方法不需要我经历额外的大众市场 CCATS 加密审查流程 但也将确保版权所有者已尽我所能来保证他们的数据安全 当然 我用密码
  • Objective-C 中 NSURL 为 null 而 NSString 是正确的

    我有一个NSString包含一个 url 以及当我分配时NSURL与NSString NSURL 输出 空 这是因为url中有一些非法字符 导致NSURL不编码就无法读取NSString包含网址 NSString u incomingUrl
  • 如何从 App Store Connect 中删除自动创建的 macOS 应用程序

    I have an iOS app Recently macOS app automatically appeared in App Store Connect 我不打算在 macOS 上发布 iOS 应用程序 我怎样才能摆脱它 我打开了
  • ios swift 如何将默认语言设置为阿拉伯语?

    我正在开发一个有两种语言的应用程序 即英语和阿拉伯语 我用英语编写了该应用程序 然后用阿拉伯语本地化了该应用程序 更改语言时需要重新启动应用程序 我唯一的问题是 第一次安装应用程序时如何将默认语言设置为阿拉伯语 我尝试在编辑方案部分将语言设
  • Xcode 中的 Prefix.pch 文件是什么?

    许多开发人员正在向其中添加各种方便的宏Prefix pch 但我的问题是那是什么Prefix pch file 如果我删除它Prefix pch来自我的文件Xcode 那么我的应用程序会运行吗 或者会显示什么错误吗 或者它会在构建过程中崩溃

随机推荐