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