2014-10-09 86 views
3

我已将iPhone应用程序提交给带有iOS 8共享扩展的AppStore。它从AppStore被拒绝的原因是“共享”扩展名是全屏而不受限制的。托管扩展程序的应用程序必须遵守应用程序扩展编程指南

我正在通过扩展UIViewController和使用Xib来创建自定义用户界面。我的应用程序仅适用于iPhone,当我在iPad中安装应用程序并通过Safari浏览器打开扩展程序时,它会以全屏显示,并且不限于iPhone屏幕。

原因

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

我们发现您的应用扩展的主机(一个或多个),但不不符合App Store评论指南要求的App Extension Programming Guide。

具体而言,我们发现您的“共享”扩展程序是全屏显示的,不受限制。

+0

你是如何解决这个问题的? 在文档中我看到:“您可以将视图建立在系统提供的组合视图控制器上,或者可以创建完全自定义的组合视图”。 我没有发现它被禁止使用全屏。但这是禁止的。 – Pavel 2014-10-24 21:18:15

回答

1

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

在apple文档中提到:Apple Doc当您有额外的内容显示时,您可以依靠自动布局约束来适当调整视图的高度。如果您不使用自动布局,则可以使用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中接受应用程序。

+0

如何设置'vcShare.extensionContext'如果它是'readonly'属性? – 2015-01-28 18:24:13