2015-07-28 114 views
1

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

当你看着应用程序的工作区,你可以看到它使用CocoaPods处理依赖关系,这应该不成问题。接下来它有JBLocalizer.framework作为嵌入式库链接到JBLocalizerApp。 JBLocalizerApp是发送给审查的最终目标。

enter image description here

这里是评指出了一个问题:

2.30

应用程序访问以下位置(一个或多个):

“/用户/ josipbernat /图书馆/开发商/ Xcode中/ DerivedData /编译/中间体/ ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocalizer.build /发行/ JBLocalizer.build /目标正常/ 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 /开发商/ Xcode中/ DerivedData /编译/中间体/ ArchiveIntermediates/JBLocalizerApp/IntermediateBuildFilesPath/JBLocal izer.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'

该majo遇到此问题的开发人员在读取/写入模式而不是只读模式下打开文件 ,在这种情况下,应该将 更改为只读。针对此问题

其他常见的原因包括:

  • 创建或在文档说明写在上面的位置(一个或多个)文件,这些文件不是被写入文件的有效位置

  • 没有使用有效的应用ID作为书面文件的容器写入到上述地点(一个或多个)

请参阅“文件系统的使用所需物品针对App Store的要求“ ”提交给Mac App Store的位置应用程序允许 编写和进一步指导。

我真的不知道我的应用程序如何违反访问正在链接到的库。有什么建议么?

+1

看来你的本地化器框架甚至没有被链接;以及他们如何返回绝对路径到您的Xcode DerivedData目录? –

+0

我不知道.gcda文件是什么,但我认为它们是动态创建的。 Cocoapods添加了XcodeEditor窗格。 @ I'L'I当我编译应用程序并在多个Mac上运行应用程序时,为什么您认为该框架未链接? –

+0

屏幕截图中框架的红色文本颜色表明它没有与目标链接,或者从项目中缺失。我怀疑它是在你的项目中,因为我可以看到它,然而,实际*链接的那个*缺失。我建议删除'Embedded Libraries'和'Linked Frameworks and Libraries'下的一个,然后重新链接项目导航器中的一个。 –

回答

3

您已得到代码覆盖率在您的项目设置中打开。

请参阅QA1514关于它是如何打开的,这可以帮助您关闭它。

+0

男人我不会找到这作为下一个百年的答案!谢谢 :) –