首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Xamarin.Mac应用程序中找到非公共框架的链接

如何在Xamarin.Mac应用程序中找到非公共框架的链接
EN

Stack Overflow用户
提问于 2020-02-17 13:18:23
回答 1查看 174关注 0票数 3

我们正在向应用商店发布一个MacOS应用程序,该应用程序使用Xamarin.Mac和Xamarin表单。在App Store Connect的评审过程中,我们的应用程序二进制文件被拒绝的原因如下:

应用程序链接到以下非公共框架:框架: /System/Library/PrivateFrameworks/Network.framework/Versions/A/Network

我们如何找到这个框架在我们的应用程序中使用的位置,以便我们可以删除它?

我们的应用程序是通过将.apk文件发布到应用程序商店中发布的,但我认为我们可能需要在.apk或.dll文件中搜索--对于如何在应用程序中找到这个引用的来源,有什么建议吗?

有人建议我们使用“字符串”或"otool“来提供帮助--在我们的例子中,有如何使用这些来查找和删除这些用法的例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-10 17:52:06

在这里发布答案时,我们设法找到了如何检测引用的框架。多亏了这个Xamarin线程:

https://forums.xamarin.com/discussion/94838/xamarin-mac-linker-behavior-appstore-rejection

作为构建的一部分,我们生成一个OurApplication.app .pkg文件,但也生成.app文件(例如,和OurApplication-1.0.pkg). )。

可以打开*.app文件来查看内部的文件结构,方法是在查找器中选择该文件,并在选项下选择“ShowPackageContent”。这意味着终端的开放,我们可以导航到以下位置:

OurApplication.app/Contents/MacOS

它包含一个Unix可执行文件:OurApplication

这是我们需要使用以下命令运行otool的文件:

otool -L OurApplication | grep "PrivateFrameworks"

在这里我们终于可以看到上面我们所引用的框架。(请注意,忽略命令的grep部分将显示所有框架,因此应用筛选器是有用的)。

这使得我们可以测试不同的构建设置来删除框架,而无需每次都提交给Apple。

我们删除了引用(并因此解决了问题),将我们的“链接器行为”设置为"Framework “,并在我们的项目设置中打开”预付编译程序集“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60263356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档