这次崩溃是一个阻塞问题,基本上我使用以下步骤来重现问题:
应用程序在启动时立即崩溃,这是控制台日志:
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分发设备框架.任何人都可以阐明这一点吗?
我正在尝试创建一个基本的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.framework到Library/Frameworks目录中,则构建链接正确
在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) 使用最新版本的可可豆荚(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)
别的......