3

我使用 iOS 8 共享扩展将 iPhone 应用程序提交到 AppStore。它被 AppStore 拒绝,原因是“共享”扩展是全屏且不受限制。

我正在通过扩展 UIViewController 和使用 Xib 来创建自定义 UI 以进行扩展。当我在 iPad 中安装应用程序并通过 safari 打开扩展程序时,我的应用程序仅适用于 iPhone,它以全屏显示,并且不限于 iPhone 屏幕。

原因

25.1:应用程序托管扩展必须符合应用程序扩展编程指南 ----- 25.1 -----

我们发现您的应用托管扩展程序,但不符合应用程序扩展程序编程指南,如 App Store 审查指南所要求的。

具体来说,我们发现您的“分享”扩展程序是全屏且不受限制的。

4

1 回答 1

1

我需要用于共享扩展的自定义 UI,并通过扩展 UIViewController 来实现。我向 AppStore 提交了应用程序,但没有实现 preferredContentSize 和 modalPresentationStyle 它被 AppStore 拒绝,因为扩展视图在 iPad 中全屏显示。

在苹果文档中提到:Apple Doc当您有额外的内容要显示时,您可以依靠自动布局约束来适当地调整视图的高度。如果不使用 Auto Layout,可以使用 UIViewController 属性 preferredContentSize 来指定视图的新高度。

我正在使用 XiB,因此在共享扩展 plist 中将 NSExtensionPrincipalClass 设置为 InitialViewController。

在 InitialViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    ShareViewController *vcShare = [[ShareViewController alloc] initWithNibName:@"ShareViewController" bundle:nil];
    vcShare.extensionContext = self.extensionContext;
    UINavigationController *ncController = [[UINavigationController alloc] initWithRootViewController:vcShare];

    [self.navigationController pushViewController:vcShare animated:NO];
    ncController.preferredContentSize = CGSizeMake(300.0, 420.0);
    ncController.modalPresentationStyle = UIModalPresentationFormSheet;
    ncController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

    [self presentViewController:ncController animated:NO completion:nil];
}

它在 iPhone 中显示全屏,但在 iPad 中不会全屏显示。我进行了上述更改,然后应用程序在 AppStore 中被接受。

于 2014-10-29T10:57:01.427 回答