iOS每日面试题三

422 阅读3分钟

1、服务器能否知道APNS推送后有没有到达客户端的方法?

APNS是苹果提供的远程推送的服务,APP开发此功能之后,用户允许推送之后,服务端可以向安装了此app的用户推送信息。但是APNS推送无法保证100%到达。 目前关于APNS苹果更新了新的策略,即 APNS/HTTP2. 如果服务器像APNS服务器推送信息之后,服务器能够接收到APNS是否真的成功像客户端推送成功了某个信息。这样在一定程度上提高了APNS的成功概率。

2、什么方式可以看到上架App的头文件?

逆向,反编译; 代码混淆防止。 class-dump

www.jishudog.com/17274/html

3、阅读过哪些框架的源码?能说说它的架构方式吗?

SDWebImage、 MJRefresh、 AFNetworking

4、iOS iAP内购审核可能失败的问题?

需要IAP内购的地方,支付宝和微信支付功能统统不能有。而且按照他的要求,也不能有其他方式支付,比如安卓端或PC端不能使用,或许前期能选择通过隐藏支付然后审核通过再显示。但是这样做是有风险的,苹果可能还有二次审核这种东西,而且网上有道友说会查代码是否有支付的包,但是这个问题,我没遇到。总之,最保险的是只使用IAP,前期app用户少可能苹果不会管,后期就不好说了。

你的订阅类型不能使用可消费项目,要改成非续期订阅项目。

www.jianshu.com/p/1d6a3cb6c…

5、IAP内购中虚拟货币导致审核无法通过的问题?

有的时候我们需要在app中使用虚拟货币,在我们的app中可以使用虚拟货币进行购买道具等,比如直播中的礼物,游戏中的道具等。

苹果对于虚拟货币是需要提成的,提成的额度为30%。所以对于这块的审核比较严格。首先你们的购买的道具在ios端和安卓端是需要分开的。如果大家玩游戏的就会发现游戏的数据在两端是分开的。

用户在安卓手机上购买的道具在iOS上是不能使用的。因为这样也间接的影响了苹果的收入。

另外就是在审核期间不能有可以兑换在appStore可购买的商品,的任意活动或者兑换码,这个也是苹果不允许的。因为这个也会影响苹果的收入。

另外就是可能有的同学会在苹果审核之后隐藏ipa支付,此处提醒下,苹果会扫描你的app代码中是否有支付宝,微信等关于支付的字段。使用开关加h5的方式可以通过审核,但是此处也有风险,风险就是一旦被发现,可能的结果就是苹果直接封掉账号。app无法使用。