相关疑难解决方法(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万
查看次数

OS X Framework Library未加载:'找不到图像'

我正在尝试创建一个基本的OS X Framework,现在我只创建了一个测试框架:TestMacFramework.framework我正在尝试将其导入到一个全新的OS X应用程序项目中.

我已经构建了.framework文件并将其导入到新项目中.框架似乎链接好了,我可以引用我添加到框架构建阶段部分的公共头文件.

但是,当我尝试运行容器应用程序时,我得到以下错误:

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

经过一段谷歌搜索后,我意识到我需要在Copy Files容器应用程序构建阶段添加一个部分,所以我已经完成了这个并将其设置为......

在此输入图像描述

但是,我仍然遇到运行时错误.我显然在这里做错了,但Apple开发人员库资源引用了Xcode 2,所以不是很有帮助!

我错过了什么?

更新:

我可以在构建日志中看到我TestMacFramework.framework被复制到.app内容/框架目录中,但它没有安装到HD上的Library/Frameworks目录中

在此输入图像描述

更新2:

如果我手动将其复制TestMacFramework.frameworkLibrary/Frameworks目录中,则构建链接正确

macos frameworks dyld xcode5

251
推荐指数
10
解决办法
19万
查看次数

Xcode 6和Embedded Frameworks仅在iOS8中受支持

在Xcode 6.0.1中使用嵌入式框架(dyld)时,部署目标小于iOS 8,我得到:

  • 构建成功
  • 运行时库加载错误

错误:

dyld: Library not loaded: @rpath/ObjectiveLyricsTouch2.framework/ObjectiveLyricsTouch2        
Referenced from: /private/var/mobile/Containers/Bundle/Application/DC65ACA9-98E5-46CD-95F8-829D3416F6C0/musiXmatch.app/musiXmatch
Reason: image not found
(lldb) 
Run Code Online (Sandbox Code Playgroud)

objective-c dylib dynamic-library ios8

68
推荐指数
3
解决办法
6万
查看次数

Swift框架取决于可可豆荚

使用最新版本的可可豆荚(0.36),我能够将swift(例如Alamofire)中的可可豆荚嵌入我的快速项目中.现在我将自己的自定义框架引入到项目中,该框架也希望依赖于Alamofire.

为了实现这一点,我所做的是选择将pods框架添加到我的框架作为依赖:

为我自己的嵌入式Swift框架(Swift模块)选择Target,在"Linked frameworks and libraries"的"General"选项卡中,我将"Pods.framework"添加为"Required".

但是,这还不足以编译,因为我自己的swift框架中的类不能"导入Alamofire",因为它不被认为是"可用框架".

将Pods.debug.xcconfig和Pods.release.xcconfig文件添加到我自己的swift框架的目标的配置中,换句话说,更改构建设置以执行所有更改,可可豆荚对我的构建设置执行iOS App目标,解决了这个问题.

它现在构建没有问题.它也在模拟器中运行没有问题,我自己的嵌入式swift框架成功地使用了由cocoa pods添加的框架.

但是,如果我在设备上运行相同的程序,它会毫无问题地进行编译和安装,但在启动时会出现致命错误:

dyld: Library not loaded: @rpath/Pods.framework/Pods
Referenced from: /private/var/mobile/Containers/Bundle/Application/32D2F1F8-679F-4A5F-8159-28F1C800D0C6/TestingFrameworks.app/Frameworks/mySwiftFramework.framework/mySwiftFramework
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

显然,并非cocoa pods xcconfig文件中的所有设置都适合添加到我的自定义swift框架的构建设置中.

但为什么它在模拟器中工作呢?更重要的是构建设置是什么,我需要纠正?

对我来说,我似乎需要更改此构建设置:

PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods
Run Code Online (Sandbox Code Playgroud)

别的......

ios cocoapods swift

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