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

静态链接与动态链接

在某些情况下,是否有任何令人信服的性能原因选择静态链接而不是动态链接?我已经听过或读过以下内容,但我对这个问题的了解不足以保证它的真实性.

1)静态链接和动态链接之间的运行时性能差异通常可以忽略不计.

2)(1)如果使用使用配置文件数据优化程序热路径的配置文件编译器,则不成立,因为使用静态链接,编译器可以优化代码和库代码.通过动态链接,您的代码可以进行优化.如果大部分时间都花在运行库代码上,那么这可能会产生很大的不同.否则,(1)仍然适用.

c c++ performance dynamic-linking static-linking

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

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

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

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

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

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

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

xcode frameworks static-libraries ios

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

什么时候我们应该在Xcode中使用"嵌入式二进制文件"而不是"链接框架"?

关于这两个选项之间的区别是一个很好的问题,如Link Binary与库VS Embed Frameworks中描述的那样.

似乎我们可以选择使用它们,只是想知道哪种情况我们应该更好地使用嵌入式二进制文件,或者不是链接框架?

解决这个问题的任何可靠实例都更清晰 谢谢

xcode frameworks ios embedded-binary

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

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万
查看次数

Link Binary与库VS Embed Frameworks

将框架放入"链接二进制文件库"或"嵌入框架"之间的构建阶段有何不同?

xcode frameworks

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

iOS是静态还是动态框架?

这可能听起来像一个愚蠢的问题,但如果你有一个thirdParty.framework文件,你能告诉它是静态的还是动态的?我的意思是,如果你看里面,他们看起来不一样吗?

objective-c dynamic-linking static-linking ios

37
推荐指数
2
解决办法
6655
查看次数

dyld:未加载库:@ rpath/libswiftSwiftOnoneSupport.dylib

我已经构建了一个Swift框架,现在我正在尝试构建一个将使用该框架的Swift iOS应用程序.我收到这个错误:

dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib
  Referenced from: /Users/tdean/Library/Developer/Xcode/DerivedData/NFLApplication-ejmafvjrlqgjaabggwvadjarjjlg/Build/Products/Debug-iphonesimulator/NFLStatsModel.framework/NFLStatsModel
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我搜索了SO并找到了类似的报告并尝试了其中列出的修复程序,包括:

  • 清除我的DerivedData文件夹
  • 重新启动Xcode和iPhone模拟器
  • 确保Always Embed Swift Standard Libraries = YES在我的框架和我的应用程序的构建设置中设置
  • 确保Enable Bitcode=NO在我的框架和我的应用程序的构建设置中设置
  • 确保Runpath Search Paths被设置为@executable_path/Frameworks,无论是在我的框架和我的应用程序的构建设置
  • 将我的Xcode安装中的所有libswift文件复制到项目中的本地副本中,并添加了自定义构建阶段以将这些文件复制到frameworks文件夹中.

在每种情况下,当我尝试运行我的应用程序时,我都会遇到相同的错误.

  • Xcode版本8.1(8B62)
  • Apple Swift 3.0.1版(swiftlang-800.0.58.6 clang-800.0.42.1)

xcode ios swift

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

学习和理解Xcode构建系统

好吧,我很好奇Xcode的构建过程.设置多个目标,如何自动化版本控制和一般理解系统,以便我可以操纵它来做我想要的.

有没有人有任何书籍或可以指向我某处的某些文件,以便我能解决所有这些问题?

万分感谢.

另一件事,如果有人真的看到这个,因为改变它.

但任何人都知道的任何书籍都会关注Xcode 4吗?有Xcode 3 Unleashed,但如果有任何书籍专注于Xcode 4,我真的很好奇.

xcode automation build target

18
推荐指数
1
解决办法
8815
查看次数

在Xcode项目目标构建设置中,什么是Mach-O类型?

在厌倦了众多Match-O链接器错误后,我想知道这件事意味着什么.我想知道这些事情背后的概念,而不是试错法.具体来说我想知道之间的区别:

  1. 可执行文件
  2. 动态库
  3. 静态库
  4. 可重定位目标文件

这些是我单击链接部分上的Mach-O类型设置时显示的选项.一些小的定义或一些指向适当内容的链接也可以.

xcode linker objective-c llvm ios

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

“请勿嵌入”,“嵌入并签名”,“未经签名嵌入”。这些是什么?。他们做什么?

Xcode11 Beta的“框架,库和嵌入式内容”部分中有3个新选项可用于添加库。Xcode库部分屏幕截图

谁能解释他们的工作?

ios xcode11

10
推荐指数
4
解决办法
1427
查看次数

ios中的框架内部包含静态或动态库

我遇到过多个站点,描述框架可以同时包含静态和动态库。但是我如何确定框架实际包含的是动态库还是静态库。我想首先使用扩展名(.a 表示静态库,.dylib 表示动态库),但我在我正在试验的框架内看到的只是没有为内部打包的二进制文件提供扩展名。有什么办法可以找到它是静态库还是动态库。

我还阅读了 Landon Fuller 关于静态库的帖子http://landonf.bikemonkey.org/code/ios/Radar_15800975_iOS_Frameworks.20140112.html ,其中他提到框架为库提供了两级命名空间,但它是否涵盖了正常的调试符号而不是只是依赖项,即使对于打包在框架内的静态库,它也能工作。

例如,如果我在框架内以及它所链接到的项目代码库中有相同的调试符号会发生什么。在这种情况下,两级命名空间会起作用吗?

同样根据作者http://ddeville.me/2014/04/dynamic-linking/ 框架是一个包含动态库、头文件和资源的包或包。

根据以下帖子库?静止的?动态的?还是框架?在另一个项目中的项目 它说框架可以包含静态和动态库。

我对此很困惑。有人可以解释 iOS 中的框架,它们包含什么以及它们如何在两级命名空间方面工作。

frameworks static-libraries dynamic-library ios

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