首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
宝塔
V2EX  ›  iDev

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

  •  
  •   fvckDaybyte2 · 30 天前 · 11100 次点击
    根据苹果的文档,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
    第 1 条附言  ·  30 天前
    感觉苹果也是为了限制 voip 推送被滥用吧,因为 voip 推送是比普通推送更加迅速且耗电的,只要推送到达必定唤醒,不受任何后台运行政策限制,而且用户没有任何办法阻止,所以有些 voip 应用甚至在收发消息时也用 voip 推送,造成滥用……不过绑定 callkit 应该是没考虑中国国情吧……
    68 回复  |  直到 2019-10-17 21:18:30 +08:00
        1
    efin   30 天前
    大陆地区 callkit 的限制是基于什么?机器版本还是账号还是系统设定里的区域?
    行货+美区 ID-->?
    港行 /美行+国区 ID-->?
    港行 /美行+美区 ID-->?
        2
    oxoxoxox   30 天前   ♥ 3
    @efin #1 各个 app 内部自行做的限制,比如微信是看绑定的手机号所属的国家或地区,你用 Google Voice 或其他国外公司做的 app 还是能使用 CallKit 的
        3
    mikeven   30 天前
    能不能给港行用户一条活路😂😂😂。还有这种只禁止 iOS 不禁安卓什么情况,安卓才是绝大多数啊。运营商傻吗
        4
    fvckDaybyte2   30 天前   ♥ 1
    @efin 基于 app store 上架规则,只要你集成了 callkit 就无法在中国区 app store 上架,但是有些 app 不想区分国际版国内版,审核的时候也可以说,我的 app 通过 xxxx 机制检测在大陆就不会激活 callkit,审核人员觉得合理后也会让你上架大陆市场(我就是这么干的)。

    所以你的问题答案不是固定的,就像楼上说的,微信用绑定的手机号判断,有的 app 用 sim 卡的 country code 判断,我用手机设置里的区域来判断
        5
    liuzhaowei55   30 天前
    @mikeven 因为安卓做的烂啊,有也不能用,用也不好用。。。
        6
    mikeven   30 天前
    @oxoxoxox 意思是国行的 iOS 如果用 gvoice 其实是有 callkit 的吗
        7
    ajyz   30 天前 via iPhone
    好,希望要么妥协国内可用 callkit,要么索性微信就不要支持语音来电推送了,现在这种不能直接蓝牙接听,而某些 SB 客户整天就喜欢打微信语音(拨个正常电话能死啊,而且还是工作上的正事),真的不胜其烦,所以我索性语音都关了。
        8
    mschultz   30 天前
    @efin #1 App 内部限制。
    例如,国行 iPhone + 国区 App Store + 海外手机注册的微信号 = 可以用 CallKit.
        9
    ajyz   30 天前 via iPhone   ♥ 2
    @mikeven 你用微信也有 callkit 啊,前提是要么安装较老的无限制版,要么用非大陆手机号注册的微信号
        10
    Leonard   30 天前
    @mschultz 我微信绑的 Google Voice 也不能用 callkit 啊
        11
    janus77   30 天前
    非开发者来问个小问题:callkit 大概是做啥的,在微信上表现为什么?如果微信语音不用 callkit 了,会变成什么样?(针对普通用户来说)
        12
    mschultz   30 天前
    @Leonard #10 用海外微信号注册,不是换绑,微信貌似是注册时所用的手机号归属地定终身。
        13
    wunonglin   30 天前   ♥ 1
        14
    leshijiazu   30 天前 via iPhone
    @Leonard 要注册的时候就是境外号码。后来改的也不行。
        15
    mschultz   30 天前   ♥ 1
    @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   30 天前
    @mikeven #6 有的,我就是国行手机+GV,有 CallKit
    @Leonard #10 需要微信注册的时候就是用的 GV 账号,更改手机号为国外号码好像是不行的
    @janus77 #11 有 CallKit,微信有语音或视频呼叫的时候,界面就和来电界面一样;没有 CallKit,就只是一条系统推送的通知
        17
    luckysonyu99   30 天前
    Google Voice 好像不能直接注册微信的吧,楼上的使用 GV 号码而且有微信的 callkit 是怎么实现的?先用海外手机号注册再换绑 GV ?
        18
    mschultz   30 天前
    @mschultz #15 文章居然是少数派……
        19
    d0m2o08   30 天前
    @janus77 我不是 ios 开发者,说下我的理解,支持 callkit 的时候,别人用微信给你打电话,ios 会像来电话一样通知你有微信语音通话,其它附加设备如手表,蓝牙耳机等都有提醒。不支持 callkit 之后别人给你发语音通话,只能像来消息一样弹个通知,手表也没了反应。
        20
    mschultz   30 天前
    @luckysonyu99 #17 我是香港手机号注册,或者其他什么实体海外手机号码注册。GV 等 VoIP 号码注册微信容易被秒封
        21
    luckysonyu99   30 天前
    @mschultz #20 我说的也是这样呀,但是楼上一帮说着用微信用 GV 号码而且有 callkit 功能的,是先用海外手机号注册然后换绑 GV 吗,不然我想不到其他的方法。
    但是既然可以用海外手机号注册了为什么还要换 GV 号码呢?
        22
    echo314   30 天前 via iPhone
    @luckysonyu99 我是以前直接用 GV 注册的,后期还改绑过国内号码,现在又改回 GV,现在微信通知有 callkit。
        23
    mschultz   30 天前
    @luckysonyu99 #21 hh,我和你的想法是一致的。可能因为很久之前一段时间风控不严 GV 注册微信号还不是秒封?(参考这两天云南大量封微信号的事,电信诈骗这块越来越敏感了)
    另一方面,GV 号申请的时候可以选号,有些人多少有点靓号,可能为了「各类海外服务统一绑定一个 GV 靓号」的想法……

    总之我觉得除了看着舒服之外可能没什么必须绑 GV 的理由。
        24
    gromit1337   30 天前   ♥ 1
    callkit 就是接电话直接就是和普通电话一样的机制了,直接威胁到电信运营商的地位,先问问工信部答不答应
        25
    luckysonyu99   30 天前
    @echo314 #22
    @mschultz #23
    原来还有用 GV 注册微信不封号的时候,看来是我了解 GV 太晚了...
        26
    ashong   30 天前 via iPhone   ♥ 1
    @mikeven 确认国行 iOS 有 callkit,自搭的 nextcloud talk 可以正常使用
        27
    surfin9   30 天前
    微信不用 darkmode 主要是面子问题。毕竟老板都在公众场合说过不做了,是一个生活方式,如果太亮了眼睛不舒服就说明你需要休息了。
    坐等打脸。
        28
    lnkn   30 天前
    @mikeven #6 一开始注册才行,后面改版是不可以的
        29
    ftu   30 天前
    @mikeven 我非常认同你的看法,天朝对苹果禁这禁那,美国对华为禁这禁那
        30
    lyoume   30 天前
    微信要使用 callkit 功能,必须要在注册的时候就填写国外号码。
    如果最开始注册用的国内号,后期换绑成国外号,同样还是无法使用 callkit。
        31
    lucifer9   30 天前
    话说你们就一个微信用这玩意么
    正常的 voip 应用大把的是不是都要挂了啊
        32
    nathanw   30 天前 via iPhone
    是不是可以这样,report incoming call 然后立马 end call
        33
    tozp   30 天前
    @mschultz #18 用境外号码注册的微信会启用 callkit,否则不会。
        34
    realpg   30 天前
    @luckysonyu99 #25
    现在 GV 注册也有办法不封号 只是不敢瞎传而已……
        35
    hronro   30 天前
    有没有人和我一样现在还在用 6.6.1 版本的微信的?这个版本能用 callkit,很爽
        36
    zhuangku556   30 天前
    @lucifer9 周围人都用微信有什么办法?
        37
    luckysonyu99   30 天前
    @realpg #34 毕竟现有的微信已经是国内号码注册了,为了一个 callkit 功能再去找 GV 重新注册不封号的方法好像不是太合适,除非刚好有需要新的微信的人。
        38
    lihongming   30 天前 via iPhone
    @nathanw 要是有资格 report,又何必 end ?

    现在的问题是只要用了 callkit 就不能上架国区
        39
    allenforrest   30 天前
    在 iOS 13 正式版刚发布也是发现了这个问题,后来就回退用 Xcode10 继续 build 版本了。
    现在的打算是放弃 VoIP Push,该用普通 Push 了,反正都是没有 CallKit 的 InCall Screen 效果,换普通 Push 后,效果就是点击通知后,不能立马出接听界面,得等 App 启动和登录等等一堆事,变慢了,体验差了些,但也总还是能用。
    就酱。
        40
    fvckDaybyte2   30 天前 via iPhone
    @allenforrest 可以用 remote notification 在 background 提前唤醒……确实这个问题早就在 WWDC 里讲过了,可惜我没看😂
        41
    haozes   30 天前
    https://itunes.apple.com/cn/app/id1462516460?mt=8

    我这 App 就是用的 VOIP PUSH,暂时也没受影响啊
        42
    haozes   30 天前
    看样子也活不久了,唉
        43
    mikeven   30 天前 via iPhone
    @ashong 这个需要搭建啊,国区还有木有那个 APP 直接注册了就能用 callkit 的啊
        44
    cmobiooo   30 天前
    我国行的机器+美区 id 是可以用 GV 的 Callkit 的
        45
    qiaga   30 天前
    @lyoume #30 如果用香港号码注册了微信,然后后面换绑国内号码,callkit 会消失不?
        46
    x86   30 天前 via iPhone
    问下,国内不是关了吗?但昨天火车站看到一位阿姨打电话下面显示微信啥啥啥(后面看了几眼确认)
        47
    skull   30 天前 via iPhone
    @hronro 可以好多的小程序么有办法用了,还有就是没有悬浮按键,不方便
        48
    jakezh   30 天前
    我是国内手机号注册的
    但是我一直能用 callkit 啊
    看起来不是单一的用手机号判断
        49
    lyoume   30 天前
    @qiaga #45 现在不太清楚了,之前换绑后没问题。我有一个国外号长时间未登录被封了,现在没法测试。
        50
    Silently   30 天前
    刚用香港号码注册一个新微信 可以使用系统推送语音 。。。换绑号码的无此功能
        51
    xhqpp   30 天前
    @jakezh 你是国行机国区商店吗
        52
    jakezh   30 天前
    @xhqpp #51 非国行机,但是应该是国区商店吧 好几个账号切换着用 记不太清了
        53
    dai640   30 天前
    在很久很久之前,曾经有很多在免费的,在 PC 上可以直接拨打电话号码的应用,那时候甚至还没有出现 iPhone,后来,后来消失了……
        54
    akring   30 天前
    @surfin9 这种说法明显是张小龙的借口吧,微信现在说的好听是非常克制,说的难听就是固步自封,体量大了任何改变都显得小心翼翼,但是体量放在这,家人朋友同事都或多或少的需要依赖微信联系,再不好用也得凑合着用
        55
    akring   30 天前
    @lihongming 所以感觉很有可能微信会联系苹果,特批带 callkit 上架,或者单独维护一个国际版(这个不太现实)
        56
    liduoduo   30 天前
    @efin 亲测美国手机号码注册的微信是可以使用 callkit 的 测试机港版 xsm
        57
    imzcg   30 天前 via Android

    还以为苹果的推送被禁了。hh
        58
    chiaf   30 天前
    iOS 开发又有人要了
        59
    diggerdu   30 天前 via iPhone
    @akring 应该不可能 禁 callkit 本意就是保护运营商利益 如果微信能用那就没几个人打电话了
        60
    bclerdx   30 天前 via Android
    @ajyz 确实,有些 sb 用户,因为他认为便宜,大家都用微信语音,因为流量便宜,流量多呗。
        61
    modayu   30 天前 via iPhone
    还好越狱了能用 callkit
        62
    boywang004   29 天前   ♥ 3
    早些年为了保护运营商利益,国行智能手机(上一个时代的)还阉割 Wi-Fi 呢……呵呵呵呵。
    我大阉割国什么不做。
        63
    JoeoooLAI   29 天前
    @efin 感觉应该与 ID 和手机是否行货无关,我用 WhatsApp 国内 ID +行货 Callkit 照样能用。 我是多希望 能像 skype 和 WhatsApp 一样 能在自带通信录就能用这些软件打电话出去。老实说现在运营商策略都侧重在流量啦,通话分钟数基本白送的,还这样护着是真的。。
        64
    lcvs   29 天前
    被工信部禁止了~
        66
    artandlol   29 天前 via Android
    @mschultz 旧更换电话绑定就不会了
        67
    tangpizi   29 天前
    我和我老婆都换绑了香港号码,结果我的有 call kit 我老婆的没有。。。这事怎么回事??
        68
    Lentin   29 天前
    @tangpizi 以微信注册时的为准,用大陆手机号注册的就没有,其他地区就算绑回去也没关系的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2025 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 01:21 · PVG 09:21 · LAX 17:21 · JFK 20:21
    ♥ Do have faith in what you're doing.