使用Carthage时调试(自有)框架问题

8
我正在开发自己的Swift框架,用于我两个应用程序之间的私有使用,我正在使用Carthage来管理该框架和其他依赖项。最终,我完成了框架的开发并将其连接到我的一个应用程序中,但不出所料,应用程序在新的框架代码中崩溃了。我想调试框架代码。我已经查看了一些文章,其中提到:
1.复制dsym文件和 2.编译调试信息。
但不幸的是,这些文章省略了很多细节(而我不是iOS开发人员或Carthage用户),无法隐含地知道它们。是否有人能够提供一个配置应用程序的方法,使私有框架代码未被优化,并且可以从托管应用程序进入框架代码的步骤?谢谢 Peter...

开发工具包 (development pods) 在 Carthage 中对应的是什么? - George
如何设置Carthage以使用我自己的在私有仓库中的框架? - George
1个回答

10

这里有两种选择。

1. 在主项目中调试框架

按照Carthage指南的第4步,然后您就可以逐步执行和调试私有框架。

将调试信息复制到构建产品目录中后,Xcode将能够在您停在断点处时符号化堆栈跟踪。这还将使您能够在调试器中逐步执行第三方代码。

2. 在主项目中修改框架

  1. 本地克隆私有框架源码。
  2. 将框架的.xcodeproj拖入到主项目中。(不要同时在Xcode中打开两个项目)。
  3. carthageInput.xcfilelist&carthageOutput.xcfilelist中删除crthage条目
  4. project->target->general->frameworks libraries and embedded content中删除框架,然后使用拖动的项目上的+号添加它。然后你会看到框架名称旁边的Embed & sign

现在,您可以在主项目中开发和测试私有框架。完成后,

  1. 从主项目中删除对框架.xcodeproj的引用。
  2. 创建新版本的框架发布。
  3. 使用标准的carthage update更新主项目以使用较新的版本

如果我按照上面的第二种方法,如何让XCode使用内部的框架而不是被Carthage添加的框架? @ajmccall - cbartel
1
@cbartel 我认为你需要删除 Carthage 框架的引用,使用从 .xcodeproj 生成的框架。 - ricardopereira
2还有一些步骤。在我的情况下,我必须确保将我的框架.xcodeproj拖到主应用程序项目中。然后,在删除对Carthage导入版本的依赖项之后,我可以将现有框架添加为主项目的构建依赖项->目标依赖项中的构建依赖项。清理构建,一切都很好。 - Rocket Garden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接