gpt4 book ai didi

ios - Cocoa Touch Framework 无法在嵌入项目的模拟器上进行调试

转载 作者:IT王子 更新时间:2023-10-29 08:20:39 24 4
gpt4 key购买 nike

我有一个 Cocoa Touch 框架,它是用 XCode 6 构建的,目标是 iOS >= iOS8。这个框架的目标架构设置是默认的,这意味着我没有改变任何东西。架构设置为标准(不包括 x86_64,稍后会详细介绍)。该框架本身包含 Swift 和 Objective-C 代码,因此使用 Ray Wenderlich 的静态库解决方法构建它是行不通的。

现在,如果我创建一个新项目并将框架项目添加到其中,该项目会同时为设备和模拟器构建,这很好。

但是,如果我采用 .framework 文件并将其添加到不同的项目,就像您添加任何其他框架一样,该项目将不会为模拟器构建。好吧,它确实构建了,但是因为找不到相关的类而崩溃了。它在设备上运行良好,归档工作也如预期的那样。

框架项目本身已经给我一个警告;“Apple Mach-O 链接器警告 - 找不到选项的目录....(Debug-ophoneos)”。

非常感谢任何帮助!

最佳答案

我终于找到了解决这个问题的方法。事实证明,XCode 不再创建开箱即用的胖二进制文件。不知道 Apple 背后的原因是什么,我也是,有时负责 XCode 的人似乎喜欢取笑使用他们产品的开发人员......

无论如何,您可以找到有关如何为模拟器和所有 iOS 设备创建胖二进制文件的权威指南(是的,您甚至必须对不同的架构进行 lipo 以获得适用于新旧设备的框架): https://kodmunki.wordpress.com/2015/03/04/cocoa-touch-frameworks-for-ios8-remix/

简而言之;

  • 创建 Cocoa Touch 框架
  • 将架构设置为 arm64、armv7 和 armv7s
  • 将“构建事件架构”设置为“否”
  • 将“有效架构”设置为 arm64、armv1 和 armv7s
  • 将以下脚本作为存档后操作添加到框架的构建方案中;

    设置-e

    DEVICE_BIN="${OBJROOT}/UninstalledProducts/${TARGET_NAME}.framework"SIMULATOR_BIN="${SYMROOT}/../../../../Products/Debug-iphonesimulator/${TARGET_NAME}.framework"

    ARCHIVE_PATH="${SRCROOT}/_Archive"rm -rf "${ARCHIVE_PATH}"mkdir "${ARCHIVE_PATH}"

    if [ "${CONFIGURATION}"= "发布"];然后

    如果 [ -d "${DEVICE_BIN}"];然后DEVICE_PATH="${ARCHIVE_PATH}/Release"mkdir "${DEVICE_PATH}"cp -r "${DEVICE_BIN}""${DEVICE_PATH}"菲如果 [ -d "${SIMULATOR_BIN}"];然后SIMULATOR_PATH="${ARCHIVE_PATH}/调试"mkdir "${SIMULATOR_PATH}"cp -r "${DEVICE_BIN}""${SIMULATOR_PATH}"lipo -create "${DEVICE_BIN}/${TARGET_NAME}""${SIMULATOR_BIN}/${TARGET_NAME}"-output "${SIMULATOR_PATH}/${TARGET_NAME}.framework/${TARGET_NAME}"

    退出 0;

这将在您的项目目录中创建一个 _Archive 目录,您可以在其中找到用于调试和发布的框架。

重要提示:从今天(2015 年 5 月 22 日)开始,您必须先使用模拟器构建项目,然后使用设备存档。否则您将无法获得通用二进制文件!

这篇文章是为了避免死链接错误而创建的,关于打包过程的更新,请始终尝试我在上面链接的 kodmunki 网站上发布的步骤,因为这篇文章中的步骤可能已经过时了!

关于ios - Cocoa Touch Framework 无法在嵌入项目的模拟器上进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com