【问题标题】:Mac App Store app rejected because of accessing file system - 2.30Mac App Store 应用程序因访问文件系统而被拒绝 - 2.30
【发布时间】:2015-07-28 08:12:38
【问题描述】:

在开发了我的第一个Mac app 之后,我决定将它提交给 Mac App Store,但它被拒绝了。基本上,我的应用程序使用 NSOpenPanel 读取 Xcode 项目文件,使用 NSSavePanel 在完成工作后保存文件。 审稿人指出该应用违反了 2.30 规则 - 不符合 Mac OS X 文件系统文档的应用将被拒绝,但我不清楚原因。

当您查看应用程序的工作区时,您会发现它使用 CocoaPods 来处理不应该成为问题的依赖项。接下来它有 JBLocalizer.framework,它作为嵌入式库链接到 JBLocalizerApp。 JBLocalizerApp 是发送给审核的最终目标。

以下是审稿人指出的问题:

2.30

应用程序访问以下位置:

'/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBString.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBPostProcessStringsOperation.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBOperation.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBLoadStringsInFileOperation.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBLoadSourceFilesOperation.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBLoadRootFilesOperation.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBFileController.gcda' '/Users/josipbernat/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build/Release/JBLocalizer.build/Objects-normal/x86_64/JBFile.gcda'

遇到此问题的大多数开发人员正在打开文件 在读/写模式而不是只读模式下,在这种情况下它应该 改为只读。

此问题的其他常见原因包括:

  • 在上述位置创建或写入文件,这些位置不是文档中所述的要写入文件的有效位置

  • 写入上述位置而不使用有效的 app-id 作为写入文件的容器

请查看“App Store 的文件系统使用要求” 提交到 Mac App Store 以获取允许应用程序的位置 写作并寻求进一步的指导。

我真的不确定我的应用程序如何违反对所链接库的访问权限。有什么建议吗?

【问题讨论】:

  • 看来您的本地化框架甚至没有被链接;以及他们如何返回 Xcode DerivedData 目录的绝对路径?
  • 我不知道什么是 .gcda 文件,但我认为它们是动态创建的。 Cocoapods 添加了 XcodeEditor pod。 @I'L'I 为什么当我可以编译应用程序并在多台 Mac 上运行时,您认为该框架没有被链接?
  • 屏幕截图中框架的红色文本颜色表明它没有与您的目标链接,或者在项目中丢失。我怀疑它在您的项目中,因为我可以看到它,但是,实际上 正在链接的那个丢失了。我建议删除Embedded LibrariesLinked Frameworks and Libraries 下的那个,然后在项目导航器中重新链接那个。
  • 我同意红色文本颜色表示这一点,但目前它编译和运行没有问题。也许我会为此找到一些解决方案。同时我接受了下面的答案,因为它表明它可能是一个问题。感谢您的宝贵时间。

标签: xcode macos cocoa review


【解决方案1】:

您已在项目设置中开启代码覆盖率

请参阅 QA1514 了解它是如何打开的,这应该可以帮助您将其关闭。

【讨论】:

  • 伙计,我在接下来的一百年里都找不到这个答案!谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 2011-07-14
  • 1970-01-01
  • 2023-03-05
  • 2019-10-27
  • 2013-04-18
相关资源
最近更新 更多