问题标签 [swift-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3989 浏览

ios - 如何减小我的自定义 iOS 框架的大小?

我在 iOS 中创建了一个自定义框架,在 Xcode 9.2 中使用了 swift4。该框架包含 9 个 .swift 文件,当我尝试归档并创建一个 .framework 文件时,结果显示大小为 5MB。然而,这 9 个 swift 文件总共显示的文件大小仅为 72KB。存档的 .framework 文件太大(5 MB),我的客户不同意。

我试图删除不需要的代码,但大小仍然保持不变,他们希望我让它像 Android 框架一样,它只有 34KB 的大小。这是我第一次创建框架并且我没有解决方案,有人可以帮助我在不减少文件的情况下减小框架的大小吗?

0 投票
1 回答
423 浏览

ios - 将 Swift 项目转换为易于使用的 Cocoapods 框架

所以我需要一些帮助,因为我无法真正弄清楚并且已经花了很多时间没有任何结果。我在互联网上找到的大部分内容都是关于如何将 swift 项目转换为框架,但我的问题不是项目本身或 cocoapods,而是关于我应该如何以及应该让开发人员可以访问的内容。

所以我构建了一个 Swift 框架,你可以在这里找到它,它UICollectionView具有自定义flowlayout和侧滑功能。

问题是我不知道如何让开发人员轻松使用它,我想让它表现得像UICollectionView你需要实现自定义委托和数据源而不必使用默认值UICollectionViewDelegateUICollectionViewDatasource,所以我可以过滤掉会导致意外行为的事情,或者让事情变得简单。

那么这里有什么好的方法呢?我正在考虑可能将其子类化,UICollectionView因此人们不必使用 a UICollectionView(因为这可能会让人感到困惑)而是 aVerticalCardSwiperView具有相同的行为,但更受限制。我只是不知道这是否是正确的方法。

任何提示、见解或好的例子将不胜感激!


编辑 1:我更新了项目,因此它已经具有框架结构,我只需要弄清楚我将如何向开发人员提供对自定义部件的访问权限。

编辑2:我得到了一个答案,但我认为这个问题可能很容易被误解。目标是使其行为和行为像UICollectionView(带有委托,数据源,...),但更加有限,我想知道如果可能的话,我该如何实现这一点。

编辑 3:好的,我已经完成了大部分工作,我将在此处留下 Github 在线链接,以便需要类似内容的人自己查看。本质上,我所做的是定制的VerticalCardSwiperDelegateVerticalCardSwiperDatasource就像这样:

然后我在VerticalCardSwiper课堂上把它们联系起来:

最后,我刚刚UICollectionView将 a 子类化为 aVerticalCardSwiperView并将其作为参数传递(因为它基本上是 a 的子类,UICollectionView它做同样的事情,只是有一个不同的名称,这对于开发人员来说更容易理解)用于委托/数据源功能。希望这对其他人有帮助。另外,如果您有更好的方法,请告诉我。

0 投票
1 回答
405 浏览

ios - 如何在项目中添加自定义 iOS 框架的引用(而不是副本)

我尝试在我的项目中添加一个定制的框架,但作为参考。

这样做的原因是我想在框架中进行更改并在项目中查看它们而无需删除旧框架 - 复制新框架。

但是我缺少一些东西,因为我收到了以下错误

没有这样的模块

我添加框架作为参考的方式是在拖放时“取消勾选”“如果需要则复制”。

我在项目的“框架”文件夹中添加框架。

任何帮助将不胜感激,谢谢!

0 投票
3 回答
668 浏览

swift - Cannot access Swift Framework in Objective-C

Create Swift Framework ,

Geolens.swift

enter image description here

When i am trying to access in Objective-C project , cannot call 2 methods

createuser & startSessionForUser

enter image description here

Getting error like this

Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C

Getting error adding @objc

0 投票
0 回答
305 浏览

ios - 我可以使用 C API 将 iOS Swift 框架包装到静态库中吗?

我正在构建一个使用 ARKit 的 iOS 应用程序,这限制了我使用 Xcode 9.3、Swift 4.1。现在我有一个 Swift 4.0.2 框架(第 3 方),我想在这个应用程序中使用它。

据我所知,我的项目不能使用 Swift 4.0.2(由于 ARKit 依赖)。

我提出的解决方案:

  • 显而易见的解决方案是获取 Swift 4.1 版本的 3rd-party 框架。但是,当 Swift 4.2+ 发布时,我必须再次提出请求,等等。
  • 从第 3 方请求 ObjC 库。
  • 从框架构建一个静态 Swift 库(可能从 Xcode 9 beta 4 开始)——但这仍然会导致 Swift 版本依赖。

所以我正在尝试构建一个静态库,它有一个 C API(即一个稳定的 ABI)作为这个 Swift 框架的重新打包/包装器,然后使用这个lib.a.

这在技术上是否可行?有没有人这样做过?有没有我想念的更好的解决方案?

0 投票
3 回答
1346 浏览

ios - dyld:库未加载:@rpath/libswiftCore.dylib 问题仅在模拟器上持续存在

我有一个与我的项目集成的 swift 框架,它在真实设备上运行良好,完全没有问题。

但是当我尝试在模拟器上运行相同的项目时,我遇到了问题。

dyld:库未加载:@rpath/libswiftCore.dylib
引用自:/Users/Shankar/Library/Developer/CoreSimulator/Devices/78BF3C2C-ECD8-408E-8CBD-2306AE4B2351/data/Containers/Bundle/Application/B28FB671-F67D- 4927-8E55-AFB569B44222/Mytest.app/Frameworks/SKDarwin.framework/SKDarwin
原因:找不到图像

我尝试了针对此错误建议的 stackoverflow 上可用的解决方案,但没有解决问题。

这可能是因为错误仅发生在模拟器上。

任何解决问题的建议表示赞赏

笔记:

这与#SO 中已经提出的问题不重复,请阅读问题详细信息以了解它与所有问题的不同之处。

这个问题肯定是不同的,因为它只发生在模拟器上,而没有提到的解决方案有效。

0 投票
0 回答
115 浏览

ios - 如何将 swift 框架添加到 Objective-C 项目

我想做的很简单:将 Charts 框架(github 上)添加到 Objective-C 项目中。我根本不知道该怎么做。自述文件说:将charts.xcodeproj拖到您的项目中,但具体在哪里?在同一水平上?在项目内还是在特定目录内(如产品、框架...)?

然后,自述文件说您应该导入桥接头,但我读到的其他文档表明,仅当您将 Objective-C 代码包含到 Swift 项目中时才需要此标头,反之则不需要。

然后,在不同的帖子或教程中,似乎需要对项目配置进行一些更改,但我不知道具体是哪些。

这是我在一个已经存在的项目上的第一次 ios 开发,我很确定这并不像看起来那么复杂,但现在一切对我来说都是新的,我很迷茫。

0 投票
1 回答
91 浏览

ios - Xcode 创建一个本身使用 cocoapods 的 swift 框架

我还是比较初学者。我正在尝试创建一个使用 firebase 数据库(通过可可豆荚安装)的超级类型应用程序。我正在为司机和乘客创建一个应用程序。我也试图通过尽可能地构建我的应用程序来开始。

在骑手应用程序中,我创建了一个数据库处理程序单例来控制对数据库的访问,包括将骑手添加到数据库的功能。两个应用程序共享一个通用的 firebase 数据库。我没有让两个应用程序都有单独的数据库处理程序(以及各种其他独立的处理程序),而是创建了一个独立的 swift 框架来保存处理程序。

我已将我的 swift 框架添加到骑手应用程序工作区和驱动程序应用程序工作区中的工作区的顶层(通过拖动框架 xcodeproj 文件)并完成了我已阅读的构建框架的所有过程到通用设备并将框架复制到实际的应用程序嵌入式二进制文件等。独立地,两个应用程序工作区都正常工作......但是......我在这个阶段有两个问题

  1. 如果我尝试同时打开两个工作区(即同时在骑手应用上工作和在驱动应用上工作),Xcode 给我一个工作区完整性错误,基本上给出错误“无法加载 xcode 项目(即框架项目),因为它已经从另一个项目中打开”。该应用程序仍然可以正常运行,但错误(红色错误)仍然存在。我怎样才能解决这个问题?。
  2. 我想数据库处理程序框架本身中使用 FirebaseDatabase,但即使我在主应用程序中安装了 FirebaseDatabase,框架也看不到它,即 import FirebaseDatabase 行显示“没有这样的模块”。我还尝试在框架项目中分别通过可可豆荚安装 FirebaseDatabase,但仍然遇到相同的“没有这样的模块”错误。如何获取框架代码以查看所需的可可豆框架
0 投票
2 回答
991 浏览

swift - 从 UIImage 获取 URL 路径 - 框架 ImagePicker

我正在尝试从 UIImage (用于多项选择)中获取路径,该路径是我使用框架ImagePicker从画廊中获取的。我从这个方法得到 UIImage:

在这个函数上,我需要将路径保存在字符串上

提前致谢

0 投票
2 回答
2087 浏览

ios - Swift 框架 - 在 Objective-C 类中使用 Swift 类引用

我正在创建必须使用 Objective-C 类的 Swift 框架。所以我通过了这个链接。这是我的框架的公共标头:

现在在MPAppDelegateProxy类中,我必须使用Swift我创建的类。这是 :

MPGlobal是我的Swift班级之一。但我得到:

使用未声明的标识符“MPGlobal”

注意:我在MPGlobal@objC之前添加了。