iOS 13 后大陆地区基本告别 voip 推送(pushkit)了, iOS 开发越来越简单了😂

2019-10-16 10:14:11 +08:00
 fvckDaybyte2
根据苹果的文档,voip 推送后必须跟随 calllkit 的调用,否则你的应用会被强行终止,多次违反后甚至再也收不到推送。而 callkit 因为众所周知的原因已经在大陆被禁,因此 voip 推送也基本无法在大陆使用。根据苹果文档提示,只能用普通推送( usernotifications )来代替 voip 推送( pushkit )。影响所有用 xcode11 编译的应用,xcode10 编译的暂时不受此限制,但是目前 app store 最低的编译要求为 xcode10.2,不用 xcode11 编译也许很快就无法上架。

目前微信依然还在用 pushkit 接受语音来电,显然还在使用 xcode10,因此也不可能支持 dark mode。

"
Important
On iOS 13.0 and later, if you fail to report a call to CallKit, the system will terminate your app. Repeatedly failing to report calls may cause the system to stop delivering any more VoIP push notifications to your app. If you want to initiate a VoIP call without using CallKit, register for push notifications using the UserNotifications framework instead of PushKit. For more information, see UserNotifications.
"

来源:
https://developer.apple.com/documentation/pushkit/pkpushregistrydelegate/2875784-pushregistry?language=objc
34820 次点击
所在节点    iDev
79 条回复
efin
2019-10-16 10:36:49 +08:00
大陆地区 callkit 的限制是基于什么?机器版本还是账号还是系统设定里的区域?
行货+美区 ID-->?
港行 /美行+国区 ID-->?
港行 /美行+美区 ID-->?
oxoxoxox
2019-10-16 10:40:57 +08:00
@efin #1 各个 app 内部自行做的限制,比如微信是看绑定的手机号所属的国家或地区,你用 Google Voice 或其他国外公司做的 app 还是能使用 CallKit 的
mikeven
2019-10-16 10:48:50 +08:00
能不能给港行用户一条活路😂😂😂。还有这种只禁止 iOS 不禁安卓什么情况,安卓才是绝大多数啊。运营商傻吗
fvckDaybyte2
2019-10-16 10:50:07 +08:00
@efin 基于 app store 上架规则,只要你集成了 callkit 就无法在中国区 app store 上架,但是有些 app 不想区分国际版国内版,审核的时候也可以说,我的 app 通过 xxxx 机制检测在大陆就不会激活 callkit,审核人员觉得合理后也会让你上架大陆市场(我就是这么干的)。

所以你的问题答案不是固定的,就像楼上说的,微信用绑定的手机号判断,有的 app 用 sim 卡的 country code 判断,我用手机设置里的区域来判断
liuzhaowei55
2019-10-16 10:50:34 +08:00
@mikeven 因为安卓做的烂啊,有也不能用,用也不好用。。。
mikeven
2019-10-16 10:50:43 +08:00
@oxoxoxox 意思是国行的 iOS 如果用 gvoice 其实是有 callkit 的吗
ajyz
2019-10-16 10:51:00 +08:00
好,希望要么妥协国内可用 callkit,要么索性微信就不要支持语音来电推送了,现在这种不能直接蓝牙接听,而某些 SB 客户整天就喜欢打微信语音(拨个正常电话能死啊,而且还是工作上的正事),真的不胜其烦,所以我索性语音都关了。
mschultz
2019-10-16 10:53:02 +08:00
@efin #1 App 内部限制。
例如,国行 iPhone + 国区 App Store + 海外手机注册的微信号 = 可以用 CallKit.
ajyz
2019-10-16 10:53:40 +08:00
@mikeven 你用微信也有 callkit 啊,前提是要么安装较老的无限制版,要么用非大陆手机号注册的微信号
Leonard
2019-10-16 10:59:06 +08:00
@mschultz 我微信绑的 Google Voice 也不能用 callkit 啊
janus77
2019-10-16 11:01:42 +08:00
非开发者来问个小问题:callkit 大概是做啥的,在微信上表现为什么?如果微信语音不用 callkit 了,会变成什么样?(针对普通用户来说)
mschultz
2019-10-16 11:03:21 +08:00
@Leonard #10 用海外微信号注册,不是换绑,微信貌似是注册时所用的手机号归属地定终身。
wunonglin
2019-10-16 11:06:07 +08:00
leshijiazu
2019-10-16 11:07:40 +08:00
@Leonard 要注册的时候就是境外号码。后来改的也不行。
mschultz
2019-10-16 11:08:21 +08:00
@janus77 #11,你的微信没有在前台的情况下:

- 使用 CallKit 表现为,别人给你打微信语音时你是这个界面:
http://netsmell.com/wp-content/uploads/2017/12/8864575689c23190efcf8b49ec42982b-728x609.png
- 不用 CallKit 表现为,别人给你打微信语音时你仅收到这样的提醒:
http://netsmell.com/wp-content/uploads/2017/12/8864575689c23190efcf8b49ec42982b-728x609.png

图片所在原文
https://netsmell.com/post/weixin-update.html
oxoxoxox
2019-10-16 11:08:24 +08:00
@mikeven #6 有的,我就是国行手机+GV,有 CallKit
@Leonard #10 需要微信注册的时候就是用的 GV 账号,更改手机号为国外号码好像是不行的
@janus77 #11 有 CallKit,微信有语音或视频呼叫的时候,界面就和来电界面一样;没有 CallKit,就只是一条系统推送的通知
luckysonyu99
2019-10-16 11:09:15 +08:00
Google Voice 好像不能直接注册微信的吧,楼上的使用 GV 号码而且有微信的 callkit 是怎么实现的?先用海外手机号注册再换绑 GV ?
mschultz
2019-10-16 11:10:07 +08:00
@mschultz #15 文章居然是少数派……
d0m2o08
2019-10-16 11:10:20 +08:00
@janus77 我不是 ios 开发者,说下我的理解,支持 callkit 的时候,别人用微信给你打电话,ios 会像来电话一样通知你有微信语音通话,其它附加设备如手表,蓝牙耳机等都有提醒。不支持 callkit 之后别人给你发语音通话,只能像来消息一样弹个通知,手表也没了反应。
mschultz
2019-10-16 11:11:49 +08:00
@luckysonyu99 #17 我是香港手机号注册,或者其他什么实体海外手机号码注册。GV 等 VoIP 号码注册微信容易被秒封

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/609787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX