【问题标题】:2.3: Apps that do not perform as advertised by the developer will be rejected2.3:不符合开发者宣传的应用程序将被拒绝
【发布时间】:2013-11-16 11:53:22
【问题描述】:

对不起我的英语。

我的应用程序可让您使用 iTunes 录制和共享录音。我继续使用 AppDelegate.m 中的这种方法将数据库移动到另一个文件夹

    - (NSURL *)applicationDocumentsDirectory
{
    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    NSString *path = [libraryPath stringByAppendingPathComponent:@"Private Documents"];
    NSURL *pathURL = [NSURL fileURLWithPath:path];
    BOOL isDirectory = NO;
    if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory]) {
        if (isDirectory) {
            return pathURL;
        } else {
            [NSException raise:@"'Private Documents' exists, and is a file" format:@"Path: %@", path];
        }
    }
    NSError *error = nil;
    if (![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error]) {
        [NSException raise:@"Failed creating directory" format:@"[%@], %@", path, error];
    }
    return pathURL;
}

我的应用在 Info.plist 中将 UIFileSharingEnabled 键设置为 true。一切似乎都很完美,但这是我收到的回复:

我们发现您的应用没有达到您的营销材料或发行说明中描述的核心功能 App Store 审核指南。

您的应用在 Info.plist,但此功能不起作用。

启用文件共享后,整个 Documents 文件夹将用于 文件共享。不打算通过文件供用户访问的文件 共享功能应该存储在应用程序的另一部分 捆。如果您的应用程序不需要文件共享功能, Info.plist 中的 UIFileSharingEnabled 键不应设置为 真的。

对于离散代码级别的问题,您不妨咨询 Apple 开发者技术支持。请务必:

  • 包括您的拒绝问题的完整详细信息
  • 准备任何符号化的崩溃日志、屏幕截图和步骤,以便在 DTS 工程师跟进时重现问题。

有关如何符号化和读取崩溃日志的信息,请参阅 技术说明 TN2151 理解和分析 iPhone OS 应用程序 崩溃报告。

如果您无法重现此问题,请尝试测试 工作流程,如中所述 https://developer.apple.com/library/ios/qa/qa1764/技术问答 QA1764:如何重现只有 App Review 或用户的崩溃或错误 正在看。

如何解决这个问题? 谢谢大家。

【问题讨论】:

  • 通过iTunes共享文件需要使用NSDocuments目录,而不是NSLibrary目录。

标签: ios objective-c


【解决方案1】:

问题是您将 UIFileSharingEnable 标记为 True,但您没有正确使用它。

他们写信告诉你,你可能试图共享用户不允许访问的文件,这可能是你的主要问题。

无论如何,如果您只是尝试将记录共享到 iTunes,您可以使用此代码并尝试根据您的请求对其进行修改:

你应该把它放在你的 AppDelegte 文件中。

NSString *fileName = @"your_file_name";
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSError *error;
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:fileName];


    if (![fileManager fileExistsAtPath:documentDBFolderPath])
    {
        NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
        [fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:&error];
    }

我帮了你 谢谢。

【讨论】:

  • 感谢您的回复...我很困惑,我使用此代码将录音保存在应用程序的文件夹文档中,它可以工作。在 iTunes 中,我看到了录音,我可以保存和重命名它们。我将我的数据库移动到 / Library / Private Documents / 并且用户无法访问它。问题出在哪里?
  • 不好的是,即使你做了它和它的工作,你也必须以“苹果”的方式去做。我知道这很糟糕,但是当您尝试通过您的应用程序向 iTunes 分享内容时,这是唯一的方法,因为他们在 iTunes 和 appStore 中拥有所有权利。也许您可以尝试阅读苹果的文档,了解他们希望您这样做的方式。
  • 您确定不再将文件存储在其他位置吗?任何临时文件夹或类似的东西......你确定你只上传由你的应用程序创建的文件吗???
  • 我向 App Review Team 发送了一条消息:“特意启用文件共享,用户可以控制要共享的文档”,然后我发布了我的方法。现在我的应用状态是“正在处理 App Store”。我希望我已经解决了一切。谢谢大家:)
  • 如果您的应用程序处于该状态,那么现在一切正常。祝你好运:)
【解决方案2】:

我遇到了同样的问题,当我将我的应用程序上传到应用商店时,解决方案是根据本教程链接通过 iTunes 实现文件共享-

http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app

希望对您有所帮助。

编码愉快,:)

【讨论】:

    【解决方案3】:

    在我的情况下,我的应用被拒绝,因为在应用描述中没有引入功能。只需编辑并重新提交即可。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2011-04-17
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多