标签: ios-frameworks

如何使用第三方框架中使用的预处理器宏

我正在开发适用于 iOS 的 SDK,并使用预处理器宏来更改代码的行为,例如:

#ifdef Home
    NSLog(@"I'm at home");
#endif
Run Code Online (Sandbox Code Playgroud)

现在,我构建了一个框架来交付我的 SDK,但如果我尝试将其导入测试应用程序,则代码永远不会执行。我尝试将相同的预处理器宏添加到应用程序目标,但没有成功。

请您告诉我如何设置在第 3 方框架内定义的预处理器宏?

谢谢朱利奥

ios ios-frameworks

6
推荐指数
1
解决办法
1908
查看次数

无法调用非函数类型“module<MyFramework>”的值

我做了一个 Swift 3 框架,现在我想在一个示例应用程序中测试它。为此,首先,我构建了它将它放入我的示例应用程序中,将它链接到所需的二进制文件和框架,然后添加 import MyFramwork到我的源文件中。

效果很好……只有当目标是“通用 iOS 设备”时。如果我选择其他内容,例如“iPhone 7”,则会出现错误:

cannot call value of non-function type 'module<MyFramework>'

...当我调用我的类构造函数时:

let myClassHandler = myFrameworkClass(value1: "Foo", value2: "bar")

我对问题的根源一无所知,我在互联网上一无所获。

我会很感激任何想法,谢谢:)


编辑 :

如果我将 xcodeproj 文件与框架链接放在一起,它就可以工作。但是如果我只包括我的框架。我得到以前的错误。我不能将我的框架源代码提供给我们的客户,所以我不能包含 xcodeproj 文件。

ios ios-frameworks swift

6
推荐指数
0
解决办法
779
查看次数

Swift 3:Tableview 数据源方法“覆盖其定义模块之外的非开放实例方法”错误

open BaseViewController在核心框架中有一个类,它实现了 tableview 数据源方法。假设我有另一个类(在模块之外)ClassABaseViewController因为它是超类。当我尝试覆盖 tableview 数据源方法时,它抛出了这个错误Overriding non-open instance method outside of its defining module

BaseViewController 看起来像这样

open class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

...

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 0
}

public func numberOfSections(in tableView: UITableView) -> Int {
    return 0
}

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    return UITableViewCell()
  }
}
Run Code Online (Sandbox Code Playgroud)

A类

import CustomCoreFramework

class ClassA : BaseViewController { …
Run Code Online (Sandbox Code Playgroud)

inheritance uitableview ios ios-frameworks swift

6
推荐指数
1
解决办法
7164
查看次数

将 Objective-C 框架转换为 Swift - 头文件仍然显示 Objective-C 函数

我将整个Objective-C框架转换为Swift. 构建后,当我检查框架的头文件时,它仍然显示旧Objective-c功能。
Objective-C从框架项目中删除了所有文件。我曾尝试清理和构建项目。但没有成功。

objective-c ios ios-frameworks swift

6
推荐指数
1
解决办法
761
查看次数

使用 Swift 包管理依赖项分发 iOS 框架

我们正在开发一个名为 FramworkSDK 的 iOS 框架,并希望将其作为二进制文件分发给我们的客户。FrameworkSDK 依赖于一个名为 swift-GRPC 的框架。我们使用 Swift 包管理器来添加此依赖项。

目前,当我将 FrameworkSDK 的二进制版本添加到我的测试应用程序时,它会抛出“无法找到模块 x”之类的错误。错误引用的模块是 swift-GRPC 包中包含的模块。

我假设,当我构建 FrameworkSDK 时,所有依赖项都包含在捆绑包中,这是正确的吗?如果是这样,我做错了什么?

ios ios-frameworks swift grpc swift-package-manager

6
推荐指数
1
解决办法
1743
查看次数

在 xcode 12 中添加 SVProgressHUD 框架后应用程序崩溃

我使用https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323创建了一个 SVProgressHUD 框架并添加到 Xcode 项目中。

xcodeproj 的常规选项卡的图像:

xcodeproj 的常规选项卡的图像

xcodeproj 的构建阶段选项卡的图像:

xcodeproj 的构建阶段选项卡的图像

构建成功,但应用程序崩溃,也没有显示任何错误日志。

它显示 AppDelegate window]: unrecognized selector sent to instance 0x283840470"

我已经尝试过 StackOverflow 的各种解决方案,但没有任何效果。我正在使用最新版本的 Xcode:12.0.1 (12A7300) 并在具有最新操作系统 14.0.1 的 iPad 上运行该应用程序。

我该如何解决?帮我。提前致谢。

objective-c ios ios-frameworks carthage xcode12

6
推荐指数
0
解决办法
448
查看次数

Xcode 4 iOS项目结构问题

我有我的第一个iOS应用程序(一个相对简单的iPad应用程序,将在一个月左右发布),但现在我正在转向更雄心勃勃的东西,并可以使用一些建议.

我的下一个项目实际上是两个截然不同但密切相关的iPad应用程序,它们将共享相当多的核心功能和通用数据格式.因此,我的本能是开发这两个应用程序并结合两者共享的核心框架的开发,我希望这个共享框架能够使用CoreData并提供可供其使用的GUI元素(NIB,视图控制器).各自的应用.因此,我的另一个本能是创建3个Xcode项目:一个用于app A的iOS应用程序项目,一个用于app B的第二个iOS应用程序项目,以及一个用于共享框架的第三个CocoaTouch框架项目.

问题:

1)这是构建我的开发的正确方法,还是有更好的方法来同时开发两个密切相关的应用程序和共享框架?

2)框架可以使用CoreData吗?(我问这个是因为在Xcode中创建CocoaTouch框架项目时,没有提供使用CoreData的选项 - 也没有选择单元测试 - 就像创建iOS应用程序项目时一样).

3)是否有办法将iOS应用程序项目"转换"为框架项目,或者最好是将应用程序项目构建到框架目标中?这将让我创建包含所有Xcode设置免费赠品(NIB,核心数据等)的框架项目,而不是手动添加所有这些东西.

谢谢!

卡尔

xcode shared projects ios ios-frameworks

5
推荐指数
1
解决办法
613
查看次数

保持同一个应用程序的Android和iPhone版本的最佳策略是什么

我必须为android和iphone构建相同的应用程序.我尝试过罗兹,这很棒,但是有些原生的ui功能缺失了......

我想知道,有没有一个策略,sdk,框架,或用于构建Android和iPhone的本机应用程序,以某种方式减少返工?或任何其他框架的建议,如罗德...

谢谢

iphone mobile android frameworks ios-frameworks

5
推荐指数
2
解决办法
310
查看次数

如何销售带有许可证的框架以及如何限制用户限制它

如果我想把一个框架库出售给那么我怎么能把许可证放到它上面,以便它不能被iOS/iPhone转让.

我的想法很少:

  1. 我可以实现一个Web服务,然后我认为可以在线下访问.
  2. 它可以给有限的人,但如果应用程序继续现场我们如何处理.

任何信息都会有所帮助.问候.

iphone frameworks static-libraries ios ios-frameworks

5
推荐指数
1
解决办法
1251
查看次数

将我的自定义框架导入项目时没有这样的模块

我按照本教程这个视频来创建我的自定义框架.一旦我为模拟器版本/或模拟器和设备构建它,我想将其添加到我的项目中.我只需将其拖放到项目中:

我在项目导航器中的PersonFramework:

在此输入图像描述

我的PersonFramework的目标会员资格:

在此输入图像描述

我的应用目标的链接框架.

在此输入图像描述

最后我尝试将其导入到项目中:

在此输入图像描述

没有这样的模块PersonFramework.

我究竟做错了什么?

import xcode ios ios-frameworks swift

5
推荐指数
1
解决办法
1942
查看次数