ios - 应用托管扩展必须符合应用扩展编程指南

标签 ios objective-c iphone ios8 ios8-share-extension

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

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

原因

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

我们发现您的应用程序托管了扩展程序,但不符合应用程序商店审查指南要求的应用程序扩展程序编程指南。

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

最佳答案

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

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

我正在使用 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 中被接受。

关于ios - 应用托管扩展必须符合应用扩展编程指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26278455/

相关文章:

ios - 在 Swift 中以编程方式在 UITableViewCell 中创建 UICollectionView

ios - NSDictionary<FBGraphUser> *用户语法解释

objective-c - UIAlertController:supportedInterfaceOrientations 被递归调用

ios - Apple 要求使用 Parse-iOS-SDK 对 info.plist 进行 "NSLocationAlwaysUsageDescription"描述

ios - Ionic - 在 IOS 上,Stripe 支付按钮被键盘隐藏

ios - 在 Swift 运行时从闭包中获取参数信息

ios - 使用核心 api 上传 DropBox 文件 https ://api-content. dropbox.com/1/files/<root>/<path>

iPhone 开发盒?

ios - SpriteKit SKLabelNode 字体大小到像素

ios - 使用 Swift 的 UICollectionView