相关疑难解决方法(0)

带有框架的iOS应用程序在设备上崩溃,dyld:未加载库,Xcode 6 Beta

这次崩溃是一个阻塞问题,基本上我使用以下步骤来重现问题:

  • 创建一个Cocoa Touch Framework项目
  • 添加一个swift文件和一个类Dog
  • 构建设备框架
  • 在Swift中创建单视图应用程序
  • 将框架导入到app项目中
  • 从ViewController中的框架实例化swift类
  • 在设备上构建并运行应用程序

应用程序在启动时立即崩溃,这是控制台日志:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我试图在iOS 7.1和8.0设备上构建,它们都有相同的崩溃.但是我可以构建应用程序并在模拟器上运行良好.另外我知道我可以在Link Binary With Libraries中将框架从Required更改为Optional,但它没有完全解决问题,当我创建Dog实例时应用程序崩溃了.在设备和模拟器上的行为是不同的,我怀疑我们不能使用测试版的Xcode分发设备框架.任何人都可以阐明这一点吗?

crash dyld ios swift xcode6

551
推荐指数
19
解决办法
24万
查看次数

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

我有一个现有的iOS应用程序,并希望添加一大块代码,我一直在开发另一个项目,以方便测试.新的块基本上处理将图像保存到各种共享服务等.因为共享代码需要大量的测试和未来的更新,我想知道将代码块合并到我现有的应用程序中的最佳方法是什么.

我不知道它应该是静态库,动态库还是框架,老实说,我不确定区别是什么,或者我应该如何去做它并在Xcode中设置它.

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

如果你还不能说,我不是一个git wiz.我只是一个简单的单人开发人员.

任何帮助或方向将不胜感激.谢谢!

xcode frameworks static-libraries ios

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

iOS Static vs Dynamic框架说明

我不得不承认,随着iOS 8的发布,我对iOS中的动态和静态框架感到有些困惑.

我正在寻找一种方法来分发我创建的库,我需要支持iOS 7及更高版本.(注意:这将是一个专有框架.我不能使用可可豆荚,我也不能分发来源).这是我已经知道的:

  • iOS 8为iOS引入了"嵌入式框架",但据我了解,它们不适用于iOS 7,仅适用于iOS 8及更高版本.
  • 我可以选择将我的库分发为静态库(.a文件)并分发标头.我知道这是处理这种情况的常用方法,但我想找到一些比这更简单的东西(如果可能的话,还要用它捆绑一些资源).
  • 我还发现iOS 7不支持动态.framework库(仅静态),因为它不支持动态链接.但是iOS 8和静态链接一样.

以下是关于此信息的问题:

  • 我看到我可以创建一个.framework目标,并通过将Mach-O类型更改为"静态库"使其成为静态.这是否足以支持iOS 7而没有任何问题,并且还可以将我的库分发为.framework bundle?如果是这样的话,为什么iOS 8中的"嵌入式框架"是一个很大的交易,因为互联网上的许多资源都在暗示?我错过了什么?
  • 是否有必要对.framework进行编码,就像我对其他任何应用程序一样?
  • 如果我需要在我的.framework文件中包含其他资源(如核心数据或图像),该怎么办?我需要为此制作一个单独的.bundle文件吗?

frameworks static-libraries static-linking ios ios-frameworks

107
推荐指数
5
解决办法
3万
查看次数

函数'dlopen()'是私有API吗?

我想使用函数'dlopen()'在iOS平台上调用动态库,是函数'dlopen()'私有API?

dynamic-linking dlopen dynamic-library ios

21
推荐指数
1
解决办法
1万
查看次数

"嵌入式dylib /框架仅在iOS 8或更高版本上运行"警告的后果

使用Xcode 6.x,我们可以使用CocoaTouch Framework模板构建一个框架库,Xcode将在我们构建时为我们创建.framework,这很棒.在我们的框架中,我们希望支持iOS 7.1及更高版本,因此对于Deployment Target(在我们的框架中),我们指定了7.1.现在,当我们构建时,我们会看到一个警告:"嵌入式dylibs /框架仅在iOS 8或更高版本上运行".我已经阅读了很多关于这个主题的博客文章,只要在iOS 7.1上运行它就可以忽略这个警告,因为它运行正常(仍然需要测试以确保).让我感到担忧的是,我读了一篇关于Stack Overflow的帖子,该帖子称Apple可能会在App Store中拒绝该应用程序(请参阅:iOS8中仅支持Xcode 6和Embedded Frameworks)

它是否仅适用于Xcode中的应用程序链接到常规>嵌入式库?

我们希望客户链接到我们的框架的方式是:

  1. 通过CocoaPods
  2. 通过引用构建阶段中的.framework>使用库链接二进制文件

我需要了解App Store将在什么条件下拒绝使用我们的CocoaTouch框架并支持7.x iOS的应用程序.

frameworks objective-c ios

14
推荐指数
1
解决办法
1万
查看次数

嵌入式框架<iOS 8

好了,这家伙没有问题,建筑和提交的应用程序,针对iOS的7+采用嵌入式框架.

他指出苹果工程师在苹果开发论坛中提到的名为"SevenTenEleven"苹果工程师发出以下警告......

ld:警告:嵌入式dylibs/frameworks仅在iOS 8或更高版本上运行

......只是一个bug.

该警告仍然存在于Xcode 6.3中,似乎App store提交是唯一可以自己了解的方法,如果这实际上是一个bug.

有没有人发现任何文件表明这只是一个错误,事实上,没有什么可担心的?

构建一个应用程序只是为了看看这样的框架是否可以针对iOS 7,并通过App Store提交过程,这是疯了.不幸的是,我的客户只是想要一个SDK,所以没有App我现在可以进行测试运行.

frameworks ios

8
推荐指数
1
解决办法
3619
查看次数

Swift dyld:库未加载 - 使用CocoaPods

我为一个看似过度问题的问题道歉,但无论我问的相关问题有多少答案,它们似乎都没有用.请参阅(按顺序)此处,此处,此处此处.

我正在使用CocoaPods运行Xcode 6.4和iOS 8(仅限iPhone).提供了许多其他答案,似乎有一个构建设置,或者我的Xcode版本中不存在的常规设置,产生了许多无用的结论.

作为参考,我按照这个CocoaPods教程轻松工作.但只有当我尝试将应用程序加载到我的手机上时(是的,我有有效的证书,而我的其他应用程序工作正常而不使用其他依赖项),应用程序会立即崩溃,就像它要加载一样.

dyld: Library not loaded: @rpath/Pods_ExamplePods.framework/Pods_ExamplePods
Referenced from: /private/var/mobile/Containers/Bundle/Application/F109A377-3EA4-48C2-9042-CB6C384C9F30/ExamplePods.app/ExamplePods
Reason: image not found
(lldb) 
Run Code Online (Sandbox Code Playgroud)

看到这里我将我的应用命名为"ExamplePods"

在此输入图像描述

然后这是我的文件夹结构,在工作区模式下打开.请注意,只有3个依赖项.

在此输入图像描述

然后查看"常规设置"和"构建设置"

在此输入图像描述

在此输入图像描述

我完全失去了,非常感谢帮助!

iphone xcode ios cocoapods swift

7
推荐指数
1
解决办法
2667
查看次数