托管扩展程序的应用程序必须遵守应用程序扩展编程指南
我已将iPhone应用程序提交给带有iOS 8共享扩展的AppStore。它从AppStore被拒绝的原因是“共享”扩展名是全屏而不受限制的。托管扩展程序的应用程序必须遵守应用程序扩展编程指南
我正在通过扩展UIViewController和使用Xib来创建自定义用户界面。我的应用程序仅适用于iPhone,当我在iPad中安装应用程序并通过Safari浏览器打开扩展程序时,它会以全屏显示,并且不限于iPhone屏幕。
原因
25.1:应用程序托管扩展程序必须符合应用程序扩展编程指南 ----- ----- 25.1
我们发现您的应用扩展的主机(一个或多个),但不不符合App Store评论指南要求的App Extension Programming Guide。
具体而言,我们发现您的“共享”扩展程序是全屏显示的,不受限制。
我需要共享扩展的自定义用户界面,并通过扩展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中接受应用程序。
如何设置'vcShare.extensionContext'如果它是'readonly'属性? – 2015-01-28 18:24:13
你是如何解决这个问题的? 在文档中我看到:“您可以将视图建立在系统提供的组合视图控制器上,或者可以创建完全自定义的组合视图”。 我没有发现它被禁止使用全屏。但这是禁止的。 – Pavel 2014-10-24 21:18:15