我试图嵌入一个使用其他框架的框架,并且在模拟器中可以正常工作,但是在iOS设备上崩溃:



这是我在Xcode中的结构:

  • FrameworkTest.xcodeproj(应用程序项目)
  • FrameworkA.xcodeproj( cocoa touch 框架)
  • FrameworkB.xcodeproj( cocoa touch 框架)

  • 该应用程序(FrameworkTest)使用来自FrameworkA的A类(嵌入在FrameworkTest应用程序中)。 A类使用FrameworkB中的B类(在FrameworkA中链接)。

    这在模拟器中可以正常工作,但在设备上不起作用。

    该结构可能看起来有些奇怪,但是我在开发应用程序时正在开发框架,这就是为什么要将框架项目添加到我的应用程序项目中的原因。

    如果您需要仔细查看,我已经上传了project on GitHub供您查看。 (在AppDelegate.m文件中调用了A类)

    为什么在iOS模拟器中而不是在设备上可以正常工作?以及如何使它在设备上运行?

    编辑:

    正如simonthumper在评论中所建议的那样,我还尝试将FrameworkB.framework添加到Copy Files中作为FrameworkA的构建阶段中的Frameworks目标,但这在控制台中给了我这个错误:

    最佳答案

    我就此问题与苹果公司联系,并找到了解决问题的方法。 Apple的技术支持明确表明,我需要将FrameworkB.xcodeproj添加到我的应用程序项目中,因此我的项目结构为:

  • FrameworkTest.xcodeproj(应用程序项目)
  • FrameworkA.xcodeproj( cocoa touch 框架)
  • FrameworkB.xcodeproj( cocoa touch 框架)
  • FrameworkB.xcodeproj( cocoa touch 框架)

  • 完成此操作后,应用程序项目可以将FrameworkB.framework包含为嵌入式库:

    这解决了我的问题,并使其可以在iOS设备上运行。

    如果版本在发布时崩溃:
    吊销您的企业分发证书,然后创建一个新证书来解决该问题。一旦我做到了,它就完美地工作了。

    10-06 05:36