我们正在开发一个网站。
例如,该网址为“ http://dev.abcd.com/”。
完成后,该网址必须更改为“ http://www.abcd.com/”
该网站可以使用网络和应用程序。 (使用响应式用户界面)
因此,我们也正在基于WKWebView制作iOS应用。
不仅用于捆绑网站,还包括基于本机的体验。
现在我们正在使用专用网络或虚拟专用网络进行开发。
在启动此服务之前,必须对iOS应用进行审阅,因此我们必须向应用商店审阅者打开私有URL。
但是我们希望在iOS审查完成后启动该服务,以便用户可以同时访问Web和应用。
在服务启动之前,我们如何仅为Apple iOS审阅者提供开放网址?
在这种情况下,您通常如何处理这种情况?
我们可以给他们提供VPN信息吗?
答案 0 :(得分:1)
如果可能的话,我总是会尽量避免这样做。请注意,Apple可能会拒绝您对此的评论,但是如果他们不知道...
我们在某些应用程序中使用的是一种配置文件。我们有一个本地(默认)版本,但是从我们的服务器上下载了一个文件,该文件将定义要使用的URL之类的内容。产生的最大问题是,您需要打开任意负载并允许您的应用随时访问任何URL。这为潜在的攻击者提供了一个很好的机会,使他们只需通过破解配置文件即可使应用执行几乎所有操作。否则,这是一个非常简单的过程:当应用程序启动请求服务器以获取配置文件时。如果成功,则将其保存到本地库中并继续。如果失败,请检查本地库以获取最新版本的config并使用该版本。如果本地库中没有文件(从未从服务器获得配置),则在资源中使用一个(默认)。
我更喜欢的另一种方法是在服务器端进行管理器重定向。这样,您可以按原样保留URL,但在服务器端可以重定向到开发服务器。我不确定这可能在后端出现多少个问题。
另一种方法是基于时间进行处理。如果您打算在将应用发布到应用商店之前对其进行审查,则可以根据当前时间(日期)使用URL。假设您在9月初对您的应用进行了审核,但将在10月初发布。问题在于您不能依赖设备时间。您将需要使用一些端点来获取当前时间。我想这仍然比从后端获取任何URL更安全,但是从任何其他角度来看,这与第一个解决方案几乎相同。
无论使用哪种情况,都存在一个潜在的问题,即URL在运行时会更改。或该应用长时间处于后台并且URL更改。通常,有些系统正在运行,例如某些模型正在分页或列表中包含导致使用旧URL生成详细信息的项目……简而言之,您很可能仍然会有一堆旧URL需要全部替换。最简单的解决方案是“意外”使应用程序崩溃。否则,会有相对简单的解决方案,例如重新创建整个视图控制器层次结构,但仍然需要一些工作。
答案 1 :(得分:0)
除非您的应用允许用户在启动应用后自行设置网址,否则我认为没有一种方法可以完全满足您的要求。
这是因为,当您提交应用程序以供审核时,您必须提交将在应用程序商店中发布的内部版本。您无法更改在审阅后将要发布的代码。因此,即使您获得的应用程序的测试URL都经过审查,才能发布具有更新的URL的应用程序,您也必须再次对其进行审查。
一种解决方法是暂时将生产网址“ http://www.abcd.com/”重定向到开发人员一个“ http://dev.abcd.com/”。审核完应用后,您可以删除重定向并释放该应用。 您还可以实现应用程序启动后可以进行的api调用,该调用将返回适当的基本url。这样,您可以随时更改基本URL。
要记住的一件事是,当您在App Store中发布该应用程序时,它不会立即在任何地方发布。可能是10分钟,也可能是24小时。因此,发布应用程序后,您需要使生产网址可用,但应用程序本身可能再过一天都不会出现在商店中。