V2EX › iDev
iOS 13 后大陆地区基本告别 voip 推送(pushkit)了, iOS 开发越来越简单了😂
By fvckDaybyte2 at 2019 年 10 月 16 日 · 37323 次点击根据苹果的文档,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
目前微信依然还在用 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
第 1 条附言 · 2019 年 10 月 16 日
感觉苹果也是为了限制 voip 推送被滥用吧,因为 voip 推送是比普通推送更加迅速且耗电的,只要推送到达必定唤醒,不受任何后台运行政策限制,而且用户没有任何办法阻止,所以有些 voip 应用甚至在收发消息时也用 voip 推送,造成滥用……不过绑定 callkit 应该是没考虑中国国情吧……
79 条回复 • 2020-11-24 16:15:54 +08:00
|
1
efin 2019 年 10 月 16 日
大陆地区 callkit 的限制是基于什么?机器版本还是账号还是系统设定里的区域?
行货+美区 ID-->? 港行 /美行+国区 ID-->? 港行 /美行+美区 ID-->? |
|
2
oxoxoxox 2019 年 10 月 16 日 @efin #1 各个 app 内部自行做的限制,比如微信是看绑定的手机号所属的国家或地区,你用 Google Voice 或其他国外公司做的 app 还是能使用 CallKit 的
|
|
3
mikeven 2019 年 10 月 16 日
能不能给港行用户一条活路😂😂😂。还有这种只禁止 iOS 不禁安卓什么情况,安卓才是绝大多数啊。运营商傻吗
|
|
4
fvckDaybyte2 OP @efin 基于 app store 上架规则,只要你集成了 callkit 就无法在中国区 app store 上架,但是有些 app 不想区分国际版国内版,审核的时候也可以说,我的 app 通过 xxxx 机制检测在大陆就不会激活 callkit,审核人员觉得合理后也会让你上架大陆市场(我就是这么干的)。
所以你的问题答案不是固定的,就像楼上说的,微信用绑定的手机号判断,有的 app 用 sim 卡的 country code 判断,我用手机设置里的区域来判断 |
|
5
liuzhaowei55 2019 年 10 月 16 日
@mikeven 因为安卓做的烂啊,有也不能用,用也不好用。。。
|
|
7
ajyz 2019 年 10 月 16 日 via iPhone
好,希望要么妥协国内可用 callkit,要么索性微信就不要支持语音来电推送了,现在这种不能直接蓝牙接听,而某些 SB 客户整天就喜欢打微信语音(拨个正常电话能死啊,而且还是工作上的正事),真的不胜其烦,所以我索性语音都关了。
|
|
8
mschultz 2019 年 10 月 16 日
@efin #1 App 内部限制。
例如,国行 iPhone + 国区 App Store + 海外手机注册的微信号 = 可以用 CallKit. |
|
11
rb6221 2019 年 10 月 16 日
非开发者来问个小问题:callkit 大概是做啥的,在微信上表现为什么?如果微信语音不用 callkit 了,会变成什么样?(针对普通用户来说)
|
|
13
shakaraka 2019 年 10 月 16 日 |
|
14
leshijiazu 2019 年 10 月 16 日 via iPhone
@Leonard 要注册的时候就是境外号码。后来改的也不行。
|
|
15
mschultz 2019 年 10 月 16 日 @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 |
|
16
oxoxoxox 2019 年 10 月 16 日
|
|
17
luckysonyu99 2019 年 10 月 16 日
Google Voice 好像不能直接注册微信的吧,楼上的使用 GV 号码而且有微信的 callkit 是怎么实现的?先用海外手机号注册再换绑 GV ?
|
|
19
d0m2o08 2019 年 10 月 16 日
@janus77 我不是 ios 开发者,说下我的理解,支持 callkit 的时候,别人用微信给你打电话,ios 会像来电话一样通知你有微信语音通话,其它附加设备如手表,蓝牙耳机等都有提醒。不支持 callkit 之后别人给你发语音通话,只能像来消息一样弹个通知,手表也没了反应。
|
|
20
mschultz 2019 年 10 月 16 日
@luckysonyu99 #17 我是香港手机号注册,或者其他什么实体海外手机号码注册。GV 等 VoIP 号码注册微信容易被秒封
|
|
21
luckysonyu99 2019 年 10 月 16 日
@mschultz #20 我说的也是这样呀,但是楼上一帮说着用微信用 GV 号码而且有 callkit 功能的,是先用海外手机号注册然后换绑 GV 吗,不然我想不到其他的方法。
但是既然可以用海外手机号注册了为什么还要换 GV 号码呢? |
|
22
B4PLpPSsR4voMdx0 2019 年 10 月 16 日 via iPhone
@luckysonyu99 我是以前直接用 GV 注册的,后期还改绑过国内号码,现在又改回 GV,现在微信通知有 callkit。
|
|
23
mschultz 2019 年 10 月 16 日
@luckysonyu99 #21 hh,我和你的想法是一致的。可能因为很久之前一段时间风控不严 GV 注册微信号还不是秒封?(参考这两天云南大量封微信号的事,电信诈骗这块越来越敏感了)
另一方面,GV 号申请的时候可以选号,有些人多少有点靓号,可能为了「各类海外服务统一绑定一个 GV 靓号」的想法…… 总之我觉得除了看着舒服之外可能没什么必须绑 GV 的理由。 |
|
24
gromit1337 2019 年 10 月 16 日 callkit 就是接电话直接就是和普通电话一样的机制了,直接威胁到电信运营商的地位,先问问工信部答不答应
|
|
25
luckysonyu99 2019 年 10 月 16 日
|
|
27
surfin9 2019 年 10 月 16 日 微信不用 darkmode 主要是面子问题。毕竟老板都在公众场合说过不做了,是一个生活方式,如果太亮了眼睛不舒服就说明你需要休息了。
坐等打脸。 |
|
30
lyoume 2019 年 10 月 16 日
微信要使用 callkit 功能,必须要在注册的时候就填写国外号码。
如果最开始注册用的国内号,后期换绑成国外号,同样还是无法使用 callkit。 |
|
31
lucifer9 2019 年 10 月 16 日
话说你们就一个微信用这玩意么
正常的 voip 应用大把的是不是都要挂了啊 |
|
32
nathanw 2019 年 10 月 16 日 via iPhone
是不是可以这样,report incoming call 然后立马 end call
|
|
34
realpg 2019 年 10 月 16 日
@luckysonyu99 #25
现在 GV 注册也有办法不封号 只是不敢瞎传而已…… |
|
35
hronro 2019 年 10 月 16 日
有没有人和我一样现在还在用 6.6.1 版本的微信的?这个版本能用 callkit,很爽
|
|
36
zhuangku556 2019 年 10 月 16 日
@lucifer9 周围人都用微信有什么办法?
|
|
37
luckysonyu99 2019 年 10 月 16 日
@realpg #34 毕竟现有的微信已经是国内号码注册了,为了一个 callkit 功能再去找 GV 重新注册不封号的方法好像不是太合适,除非刚好有需要新的微信的人。
|
|
38
lihongming 2019 年 10 月 16 日 via iPhone
|
|
39
allenforrest 2019 年 10 月 16 日
在 iOS 13 正式版刚发布也是发现了这个问题,后来就回退用 Xcode10 继续 build 版本了。
现在的打算是放弃 VoIP Push,该用普通 Push 了,反正都是没有 CallKit 的 InCall Screen 效果,换普通 Push 后,效果就是点击通知后,不能立马出接听界面,得等 App 启动和登录等等一堆事,变慢了,体验差了些,但也总还是能用。 就酱。 |
|
40
fvckDaybyte2 OP @allenforrest 可以用 remote notification 在 background 提前唤醒……确实这个问题早就在 WWDC 里讲过了,可惜我没看😂
|
|
41
haozes 2019 年 10 月 16 日
|
|
42
haozes 2019 年 10 月 16 日
看样子也活不久了,唉
|
|
44
cmobiooo 2019 年 10 月 16 日
我国行的机器+美区 id 是可以用 GV 的 Callkit 的
|
|
46
x86 2019 年 10 月 16 日 via iPhone
问下,国内不是关了吗?但昨天火车站看到一位阿姨打电话下面显示微信啥啥啥(后面看了几眼确认)
|
|
48
jakezh 2019 年 10 月 16 日
我是国内手机号注册的
但是我一直能用 callkit 啊 看起来不是单一的用手机号判断 |
|
50
Silently 2019 年 10 月 16 日
刚用香港号码注册一个新微信 可以使用系统推送语音 。。。换绑号码的无此功能
|
|
53
dai640 2019 年 10 月 16 日
在很久很久之前,曾经有很多在免费的,在 PC 上可以直接拨打电话号码的应用,那时候甚至还没有出现 iPhone,后来,后来消失了……
|
|
54
akring 2019 年 10 月 17 日
@surfin9 这种说法明显是张小龙的借口吧,微信现在说的好听是非常克制,说的难听就是固步自封,体量大了任何改变都显得小心翼翼,但是体量放在这,家人朋友同事都或多或少的需要依赖微信联系,再不好用也得凑合着用
|
|
55
akring 2019 年 10 月 17 日
@lihongming 所以感觉很有可能微信会联系苹果,特批带 callkit 上架,或者单独维护一个国际版(这个不太现实)
|
|
57
imzcg 2019 年 10 月 17 日 via Android
他
还以为苹果的推送被禁了。hh |
|
58
usVexMownCzar 2019 年 10 月 17 日
iOS 开发又有人要了
|
|
61
modayu 2019 年 10 月 17 日 via iPhone
还好越狱了能用 callkit
|
|
62
vela 2019 年 10 月 17 日 早些年为了保护运营商利益,国行智能手机(上一个时代的)还阉割 Wi-Fi 呢……呵呵呵呵。
我大阉割国什么不做。 |
|
63
JoeoooLAI 2019 年 10 月 17 日
@efin 感觉应该与 ID 和手机是否行货无关,我用 WhatsApp 国内 ID +行货 Callkit 照样能用。 我是多希望 能像 skype 和 WhatsApp 一样 能在自带通信录就能用这些软件打电话出去。老实说现在运营商策略都侧重在流量啦,通话分钟数基本白送的,还这样护着是真的。。
|
|
64
lcvs 2019 年 10 月 17 日
被工信部禁止了~
|
|
65
lcvs 2019 年 10 月 17 日
|
|
67
tangpizi 2019 年 10 月 17 日
我和我老婆都换绑了香港号码,结果我的有 call kit 我老婆的没有。。。这事怎么回事??
|
|
71
tracesnow001 2019 年 12 月 21 日
看了一圈,国行用外区手机号+外区 appstore 的软件就可以解锁 callkit 和 Facetime audio 了是这个意思吧。即使是港行的机器,如果用国区手机号国区 appstore 的软件,也没有 callkit 和 facetime audio
|
|
72
fvckDaybyte2 OP @tracesnow001 不是,港行无论如何都有 FaceTime audio
|
|
73
96HN29Sby9aZ0g81 2020 年 1 月 18 日
是不是现在 app 中不使用非官方提供的 CallKit,voip push 就用不了
|
|
74
mxi1 2020 年 3 月 22 日 via iPhone
@tracesnow001 #71 国行机器用任何方式都无法解锁 FaceTime audio ;
|
|
75
MicroGalaxy 2020 年 3 月 23 日 via iPhone
微信更新了,就是不用 callkit 也收到推送
|
|
76
astkaasa 2020 年 3 月 23 日 via iPhone
钉钉有 callkit 啊
|
|
77
shenwu35 2020 年 3 月 26 日
走普通文本推送
|
|
78
Damon4V 2020 年 11 月 24 日
***********************************************
|
|
79
Damon4V 2020 年 11 月 24 日
口吐芬芳
|
iOS 开发实用技术导航
NSHipster 中文版
› http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
› http://www.cocos2d-iphone.org/
CocoaPods
› http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
› http://code.google.com/mobile/analytics/
WWDC
› https://developer.apple.com/wwdc/
Design Guides and Resources
› https://developer.apple.com/design/
Transcripts of WWDC sessions
› http://asciiwwdc.com
Cocoa with Love
› http://cocoawithlove.com/
Cocoa Dev Central
› http://cocoadevcentral.com/
NSHipster
› http://nshipster.com/
Style Guides
› Google Objective-C Style Guide
› NYTimes Objective-C Style Guide
Useful Tools and Services
› Charles Web Debugging Proxy
› Smore