JPush iOS 客戶端注意事項(xiàng)

Jicon.png

如果你剛開始集成、使用JPush iOS SDK智厌,你可能會(huì)遇到各種各樣的問題粟判,下面就羅列幾個(gè)注意事項(xiàng),給大家作為參考:

1峦剔、

從iOS9系統(tǒng)開始档礁,使用通配證書也能成功獲取到Token,但是無法收到推送的通知(APNs)吝沫;

注:
JPush iOS SDK 從2.1.7版本開始呻澜,如果當(dāng)前應(yīng)用不具備推送功能會(huì)打印:PUSH | W - [JPUSHClientController] APNs is not available,please check your provisioning profile and certification

2惨险、

運(yùn)行安裝項(xiàng)目到測(cè)試設(shè)備羹幸,假設(shè)你的Provisioning Profile選擇自動(dòng),如果測(cè)試設(shè)備是iOS9系統(tǒng)辫愉,且本地的Provisioning Profile不含此設(shè)備栅受,仍能正常運(yùn)行安裝到測(cè)試設(shè)備并獲取到Token!其實(shí)你這時(shí)安裝的是通配證書的應(yīng)用,你將無法收到APNs推送屏镊;請(qǐng)參考JPush的教程文檔配置項(xiàng)目證書:XCode的證書配置教程

注:
JPush iOS SDK 從2.1.7版本開始依疼,如果當(dāng)前應(yīng)用不具備推送功能會(huì)打印:PUSH | W - [JPUSHClientController] APNs is not available,please check your provisioning profile and certification

3而芥、

從iOS9系統(tǒng)開始律罢,每次卸載安裝都會(huì)獲取到新的Token。如果你沒有使用傳IDFA的JPush初始化接口棍丐,那JPush會(huì)認(rèn)為你當(dāng)前是一個(gè)新的設(shè)備误辑,RegistrationId會(huì)隨之改變,之前設(shè)置的tag歌逢、alias需要重新設(shè)置巾钉;

4、

從iOS9系統(tǒng)開始秘案,新安裝某個(gè)調(diào)用apns注冊(cè)接口的應(yīng)用睛琳,彈出[“xxx”想給您發(fā)送推送通知]的提示時(shí),無論你是否允許踏烙,應(yīng)用都能獲取到Token师骗;

5、

JPush沒有提供開關(guān)推送的接口讨惩,但是可以調(diào)用apple的注冊(cè)APNs接口和反注冊(cè)APNs接口來設(shè)置是否有通知提醒辟癌!

注:從iOS9.3系統(tǒng)開始,調(diào)用代碼注冊(cè)APNs荐捻,再調(diào)用反注冊(cè)APNs接口黍少,再調(diào)用注冊(cè)APNs接口,需要把應(yīng)用進(jìn)程殺掉处面,重新開啟才能恢復(fù)APNs提示厂置;

6、

JPush iOS SDK從2.1.8版本開始支持https魂角,如集成的SDK 版本低于2.1.8昵济,請(qǐng)到xxx-info.plist里面配置下http,否則無法統(tǒng)計(jì)通知點(diǎn)擊和調(diào)用JPUSHService setBadge:<#(NSInteger)#>來上報(bào)badge野揪,具體配置看文檔:https解決方式

7访忿、

如果你是直接運(yùn)行安裝到測(cè)試設(shè)備(運(yùn)行調(diào)試狀態(tài)),那你的安裝的應(yīng)用的證書環(huán)境只有可能是開發(fā)環(huán)境或者通配的斯稳。向該設(shè)備(RegistrationID)推送開發(fā)環(huán)境的通知海铆,如果能收到(目標(biāo)和成功為:1/1),則說明是當(dāng)前安裝的應(yīng)用是開發(fā)環(huán)境的證書挣惰;如果目標(biāo)和成功為(0/0)卧斟,則可能是通配證書殴边。應(yīng)用證書環(huán)境具體以Code Signing配置為準(zhǔn):


4C2C57D9-3AA0-4D74-BE68-04B9F02088A1.png

8、

如果你想內(nèi)部測(cè)試生產(chǎn)環(huán)境的推送珍语,請(qǐng)去apple上面為該appid創(chuàng)建一個(gè)AD-Hoc的Provisioning Profile锤岸,下載添加到XCode,Archive項(xiàng)目廊酣,導(dǎo)出ipa文件能耻,把該ipa拖到iTunes赏枚,再同步到測(cè)試設(shè)備亡驰。
導(dǎo)出的時(shí)候下圖標(biāo)注的Profile必須是你所創(chuàng)建的AD-Hoc Profile:

0977C06F-E68A-450A-83CD-901D1D7D7031.png

9、

第7饿幅、8點(diǎn)說到安裝應(yīng)用證書環(huán)境的判斷依據(jù)凡辱,那這里再說明下:推送的時(shí)候如何指定iOS通知的推送環(huán)境。
進(jìn)入官方控制臺(tái)的發(fā)送通知頁(yè)面栗恩,可通過如下選項(xiàng)指定iOS通知的推送環(huán)境:


777F7275-CEB4-4427-8A74-CCC1D6335832.png

如果你通過api推送,則需要注意options下面的apns_production字段透乾。官網(wǎng)發(fā)送通知的

777F7275-CEB4-4427-8A74-CCC1D6335832.png

對(duì)應(yīng)的"apns_production":flase和"apns_production":true(請(qǐng)看:推送api文檔java示例代碼

75156F5A-A0E3-46B5-9471-BFA02ADD6E8A.png

iOS Push SDK的初始化接口:
+ (void)setupWithOption:(NSDictionary *)launchingOption
                 appKey:(NSString *)appKey
                channel:(NSString *)channel
       apsForProduction:(BOOL)isProduction;

注:
項(xiàng)目中配置的證書環(huán)境決定你的app能收到來自哪個(gè)環(huán)境的通知(APNs)磕秤;
初始化接口的isProduction字段需要與你應(yīng)用配置的證書環(huán)境一致乳乌。

即:
如果按照第7點(diǎn)的配置證書,isProduction的值應(yīng)該是false市咆;
如果按照第8點(diǎn)的配置證書汉操,isProduction的值應(yīng)該是true;
如果發(fā)布到App Store蒙兰,磷瘤,isProduction的值應(yīng)該是true。

10搜变、

請(qǐng)不要在初始化應(yīng)用的方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....
}

里面設(shè)置tag采缚、alias和獲取registrationID ,如果你在這里設(shè)置tag挠他、alias和獲取registrationID扳抽,你將無法獲取到registrationID,設(shè)置tag殖侵、alias會(huì)打铀だ丁:E - [JPUSHService] app not registed, give up set tag:xxx,alias:xxx

建議如下:


F11E5F11-4EEB-4599-80F1-F7BA5FA4EEEF.png

注:想了解集成文檔的[五個(gè)監(jiān)聽]請(qǐng)戳我
如不知道該如何添加監(jiān)聽,請(qǐng)參考官方 demo的:RootViewController.m愉耙;

11贮尉、

應(yīng)用前臺(tái)運(yùn)行的時(shí)候收到APNs不會(huì)有提示(橫幅、sound)朴沿,只會(huì)調(diào)用apple提供的APNs獲取接口:獲取 APNs(通知) 推送內(nèi)容猜谚,如果想彈出提示請(qǐng)自己在獲取接口里面寫代碼處理败砂;

12、

后臺(tái)收到普通APNs魏铅,點(diǎn)擊icon進(jìn)入應(yīng)用并不會(huì)觸發(fā)APNs獲取接口昌犹,只有點(diǎn)擊APNs才會(huì)觸發(fā)獲取接口;

13览芳、

從JPush下的發(fā)iOS自定義消息斜姥,只有在前臺(tái)運(yùn)行的時(shí)候才能收到(不會(huì)有apns提示),如果想要獲取由JPush 下發(fā)的自定義消息,請(qǐng)看:獲取自定義消息推送內(nèi)容

注:如果想了解通知和自定義消息的區(qū)別請(qǐng)看:常見問題 的[通知與自定義消息有什么區(qū)別沧竟?]

14铸敏、

建議在AppDelegate.m的applicationWillResignActive方法寫代碼調(diào)整本地的badge顯示和重置JPush服務(wù)器上面Badge值,示例代碼如下:

- (void)applicationWillResignActive:(UIApplication *)application {
  
        [JPUSHService setBadge:0];//重置JPush服務(wù)器上面的badge值悟泵。如果下次服務(wù)端推送badge傳"+1",則會(huì)在你當(dāng)時(shí)JPush服務(wù)器上該設(shè)備的badge值的基礎(chǔ)上+1杈笔;
        
        [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];//apple自己的接口,變更應(yīng)用本地(icon)的badge值糕非;
}

注:
1)JPush的badge上報(bào)接口可根據(jù)實(shí)際使用場(chǎng)景計(jì)算再調(diào)用接口上報(bào)蒙具;
2)應(yīng)用icon上顯示的badge最好在applicationWillResignActive方法里面設(shè)為最終計(jì)算所得的值。

15朽肥、

如果你之前能正常推送iOS通知禁筏,忽然所有推送記錄的結(jié)果都變成了:0/0。這個(gè)時(shí)候你需要去到JPush控制臺(tái)衡招,進(jìn)入該應(yīng)用的 [應(yīng)用設(shè)置]頁(yè)面篱昔,檢查證書的有效期,如果沒有過期蚁吝,則去到apple賬號(hào)檢查該證書是否還在(以appid+有效期來看)

注:無論是上述何種原因旱爆,你都需要在apple賬號(hào)上下載該bundle id的有效APNs證書,添加到本地窘茁,導(dǎo)出p12文件怀伦,上傳到JPush官網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市山林,隨后出現(xiàn)的幾起案子房待,更是在濱河造成了極大的恐慌,老刑警劉巖驼抹,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑孩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡框冀,警方通過查閱死者的電腦和手機(jī)流椒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來明也,“玉大人宣虾,你說我怎么就攤上這事惯裕。” “怎么了绣硝?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵蜻势,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鹉胖,道長(zhǎng)握玛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任甫菠,我火速辦了婚禮挠铲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淑蔚。我一直安慰自己市殷,他們只是感情好愕撰,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布刹衫。 她就那樣靜靜地躺著,像睡著了一般搞挣。 火紅的嫁衣襯著肌膚如雪带迟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天囱桨,我揣著相機(jī)與錄音仓犬,去河邊找鬼。 笑死舍肠,一個(gè)胖子當(dāng)著我的面吹牛搀继,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播翠语,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼叽躯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了肌括?” 一聲冷哼從身側(cè)響起点骑,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谍夭,沒想到半個(gè)月后黑滴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡紧索,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年袁辈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珠漂。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晚缩,死狀恐怖葛菇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橡羞,我是刑警寧澤眯停,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站卿泽,受9級(jí)特大地震影響莺债,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜签夭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一齐邦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧第租,春花似錦措拇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至趟据,卻和暖如春券犁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汹碱。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工粘衬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咳促。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓稚新,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親跪腹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子褂删,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容