Frameworks Mac应用程序启动时崩溃,链接框架未捆绑

Frameworks Mac应用程序启动时崩溃,链接框架未捆绑,frameworks,nsbundle,mac-app-store,Frameworks,Nsbundle,Mac App Store,(编辑:我能够绑定框架,但它仍然不会接受更改的安装目录。因此,下面的问题已更改为“未找到链接和绑定的框架映像”) Mac应用程序提交给MAS,但被苹果拒绝,原因非常合理:链接的框架没有捆绑 我只是问如何确保它正确地包含在包中,并在再次提交之前在我的Mac上确认 请告诉我您需要我提供什么/任何额外信息 编辑:遵循subzero的说明后的更多信息 当进入产品>构建时,.app文件最终会出现在我的计算机上的文档/构建/发布中 以下是我的构建阶段的外观- Winkoto.app/Contents/Fra

(编辑:我能够绑定框架,但它仍然不会接受更改的安装目录。因此,下面的问题已更改为“未找到链接和绑定的框架映像”)

Mac应用程序提交给MAS,但被苹果拒绝,原因非常合理:链接的框架没有捆绑

我只是问如何确保它正确地包含在包中,并在再次提交之前在我的Mac上确认

请告诉我您需要我提供什么/任何额外信息

编辑:遵循subzero的说明后的更多信息


当进入产品>构建时,.app文件最终会出现在我的计算机上的文档/构建/发布中

以下是我的构建阶段的外观-

Winkoto.app/Contents/Frameworks中有一个UIKit.Framework文件夹,其中包含:

如果我从Releases文件夹运行它,仍然会出现相同的错误。只有当我从XCode运行它时,它才能工作。你能看出什么不对劲吗

编辑2:我已将框架文件(UIKit)放入包中

以下是崩溃报告错误消息:

Dyld错误消息:未加载库: Frameworks/UIKit.framework/Versions/A/UIKit引用自: /用户/henrikerlandsson/Documents/build/Release/winkoto.app/Contents/MacOS/winkoto 原因:找不到图像

但是该框架在捆绑包中,在添加到项目之前,它是由install_name_工具修改的

我不知道为什么修改不起作用,但我将它改为私有框架,并更改了那里的安装目录,它起了作用(参见我的答案)。

在XCode中

  • 将复制文件生成阶段添加到应用程序的目标
  • 将其移动到链接阶段上方,将其目标设置为myApp.app/Contents/Frameworks,并将框架添加到其中

  • 我把它做成了一个私有框架。我按照下面的说明进行了操作,这样我就可以将框架的安装目录正确地设置到它在捆绑包中出现的位置。

    感谢您的快速回答:)但是。。。在链接框架阶段之后,我有一个复制框架阶段(包含有问题的框架)。您的意思是我还必须将其作为文件复制到捆绑包中吗?另外,我希望在提交之前能有一些测试方法。不用再等两个星期了,我是说。。。在使用“复制文件”阶段将文件复制到捆绑包上的Frameworks文件夹后。。。xcode将复制并将您的应用程序链接到该捆绑包。现在来测试-制作一个安装了香草mac os的虚拟机。。。在那里复制您的包并运行它。。。如果它运行,那么你就不会有问题了。我不是在复制文件阶段,而是在复制框架的另一个阶段,即复制框架阶段。该阶段是否将框架复制到包之外的其他地方?我以前也没有手动处理过Mac捆绑包,所以我真的不知道如何找到它并将其复制到另一个人的机器上。某处有.app文件吗?您使用的是哪个版本的xcode?在4.5中,我有。。。您没有任何专门用于复制框架的构建阶段。。。你是说以“框架”为目标的复制文件构建阶段。。。。那很好。。。。至于build.app包,它将位于xcode(首选项>位置)中设置的派生数据文件夹中。。。默认情况下~/Library/Developer/Xcode/DerivedData,因此您应该在~/Library/Developer/Xcode/DerivedData//Build/Products中查找.app文件。当转到Product>Build时,.app文件会在我的机器上的文档/构建/发布中结束。以下是我的构建阶段的外观——Winkoto.app/Contents/Frameworks中有一个UIKit.Framework文件夹,其中包含以下内容:如果我将应用程序复制粘贴到Mac硬盘上的其他位置,仍然会出现相同的错误。你能看到这里有什么不对劲吗?