简体   繁体   English

AppStore拒绝打开移动Safari的iOS应用

[英]iOS app rejected by AppStore for opening mobile Safari

We have created a Bluetooth Low Energy app in iOS to provide beacon services to a partner's web app. 我们已在iOS中创建了蓝牙低功耗应用程序,以向合作伙伴的Web应用程序提供信标服务。 The work flow is: 工作流程为:

Browser -> App -> Browser. 浏览器->应用->浏览器。

We have to use an iOS app in order to connect to a Bluetooth Smart beacon, get some data, and send this data to the web app. 我们必须使用iOS应用程序才能连接到Bluetooth Smart信标,获取一些数据并将此数据发送到Web应用程序。 Unfortunately, there's no way we know of to do this from the web app. 不幸的是,我们无法从Web应用程序中做到这一点。

We've also tried running our partner's web app inside a webview but it was glitchy and unusable. 我们还尝试了在网络视图中运行合作伙伴的网络应用程序,但它存在故障且无法使用。 The way we have it working, it works fine. 我们运作的方式,效果很好。 The user taps something in Safari, there's a quick screen shift to the app, and then a quick shift back to the browser and they move on with their work. 用户在Safari中点击某些内容,快速将屏幕切换到应用程序,然后快速切换回浏览器,然后继续进行工作。

Unfortunately, the app store keeps rejecting our app. 不幸的是,应用商店不断拒绝我们的应用。 They say: 他们说:

"We still noticed that your app opens a web page in mobile Safari on launch which provides poor user experience. Please revise your app to enable users to sign in or register in the app. “我们仍然注意到,您的应用在启动时会在移动Safari中打开一个网页,这会带来糟糕的用户体验。请修改您的应用,以使用户能够登录或注册该应用。

"We recommend implementing the Safari View Controller API to display web content within your app. The Safari View Controller allows the display of a URL and inspection of the certificate from an embedded browser in an app so that customers can verify the webpage URL and SSL certificate to confirm they are entering their sign in credentials into a legitimate page." “我们建议实现Safari View Controller API,以在您的应用程序中显示Web内容。Safari View Controller允许显示URL并从应用程序中的嵌入式浏览器检查证书,以便客户可以验证网页URL和SSL证书确认他们正在将登录凭据输入合法页面。”

Has anyone else run into this problem of calling an iOS app from a web app and having the app rejected? 还有其他人遇到过从网络应用程序调用iOS应用程序并拒绝该应用程序的问题吗? I think they fundamentally don't get what we're doing, despite many back-and-forths with their reviewers, and a video that clearly demonstrates how the system works. 我认为,尽管与他们的审阅者反复来回,他们从根本上没有得到我们正在做的事情,而一段视频清楚地展示了系统的工作方式。

At one point I was threatening to drop support for iOS because this is becoming onerous for us to persuade some anonymous reviewers over and over that our app really does what our partner wants it to do, so just approve it and let us get on with our business. 有一次我威胁要放弃对iOS的支持,因为这使我们不得不说服一些匿名评论者一遍又一遍,因为我们的应用程序确实可以完成我们合作伙伴想要做的事情,因此请批准并让我们继续商业。 This is a limited distribution specialized kind of app. 这是一款限量发行的专业应用。

Is there any kind of a hotline or human being we can talk to at the Store? 我们可以在商店中与任何热线或人交谈吗? They must have to deal with thousands of updates a day, so I assume they're swamped and probably a particular case gets bounced around between all sorts of reviewers. 他们每天必须要处理成千上万的更新,所以我认为它们被淹没了,并且可能在各种审阅者之间回弹了特定案例。

How to escalate? 如何升级? Any help/advice appreciated. 任何帮助/建议表示赞赏。

Also, if anyone can suggest a better way to do our workflow, I'm all ears! 此外,如果有人可以提出更好的方法来完成我们的工作流程,我将不胜感激!

Thanks for any help. 谢谢你的帮助。

EDIT: For clarification, the previous version of the app was accepted with no difficulties, even though the workflow is largely the same. 编辑:为澄清起见,即使工作流程大致相同,也可以毫无困难地接受该应用程序的先前版本。 Yet, when I fixed some bugs and improved the performance and submitted it, they've balked. 但是,当我修复了一些错误并提高了性能并提交之后,它们就退缩了。 When you run the app by itself, it comes up in standalone mode where not much happens. 当您单独运行应用程序时,它会以独立模式启动,在此模式下不会发生太多事情。 I don't even see how they arrived at the conclusion they did, unless they have some way of peeking into the code which is what I assume they did. 我什至看不到他们是如何得出结论的,除非他们有某种方式可以窥视代码,而我认为它们是这样做的。 It does eventually invoke the browser that way, but only if you have a certain type of beacon which they can't possibly have. 最终,它确实会以这种方式调用浏览器,但前提是您具有某种类型的信标,而它们却是不可能的。 I'm baffled. 我很困惑。

Anyway I'm going to simply remove the standalone behavior for now, just display a message that this must be called from the web app, and hope that satisfies them. 无论如何,我现在仅要删除独立行为,只显示一条消息,必须从Web应用程序中调用该消息,并希望它们能够满足要求。

Are you saying that the user is not meant to open the app himself? 您是在说用户不是要自己打开应用吗? In that case, arrange for something meaningful to happen if the user does open the app - such as provide an instruction manual. 在这种情况下,如果用户确实打开了应用程序,则安排一些有意义的事情-例如提供说明手册。 Bouncing straight into Mobile Safari is indeed a bad experience. 直接跳入Mobile Safari确实是一种糟糕的体验。

This is equivalent to what keyboard apps do: they install the keyboard, but the app itself does nothing useful on its own. 这等效于键盘应用程序所做的事情:它们安装键盘,但是应用程序本身并没有做任何有用的事情。

And if you can't use the Safari View Controller as suggested then file a bug or make a technical support request. 而且,如果您不能按照建议使用Safari View Controller,请提出错误或提出技术支持请求。

I removed the standalone features of our app, and just presented a static screen. 我删除了应用程序的独立功能,只显示了一个静态屏幕。 Then the app was readily accepted. 然后该应用很容易被接受。

The lesson learned: don't try to put too many workflows into one app unless they're obvious and easily demonstrated. 吸取的教训:不要将过多的工作流程放到一个应用程序中,除非它们很明显且易于演示。 Because of the hardware component (BLE beacons) it was difficult to demonstrate our workflow to the appstore folks, so finally I just removed the pieces that we didn't need right away. 由于存在硬件组件(BLE信标),很难向应用商店的员工演示我们的工作流程,因此最后我只是立即删除了我们不需要的部分。

Later we'll create a separate app to handle the standalone workflow that is not called from a mobile web app. 稍后,我们将创建一个单独的应用程序来处理未从移动Web应用程序调用的独立工作流程。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM