上篇寫到了手動(dòng)接ios一些sdk的坑點(diǎn),這篇主要是講unity自動(dòng)化打包的一些坑點(diǎn),IOS端的,自動(dòng)化有很多方法,Jenkins,或者editor等等,怎么自動(dòng)化在這不討論,這里增加的是截至目前unity和xcode沒同步的一些問題,也有可能是自己沒找對(duì)的地方
上篇說(shuō)到接入友盟的ios端推送,集成與Unity出的xcode工程,這里說(shuō)下目前沒有的地方
友盟官方文檔中說(shuō)明接入推送需要增加Backgroundmodes和pushnotifications在capability中.
但是目前unity提供的xcode自動(dòng)化中缺少了Backgroundmodes中需要的 backgroundprocessing選項(xiàng),
友盟官方文檔需要增加這個(gè)
目前缺少這個(gè)枚舉
也沒有這個(gè)字符串
unity官方也缺失
在這吐槽一句,xcode更新真的太快了,sdk和unity都更不上速度
由于xcode中info.plist和unity-iphone.xcodeproj. 和cs工程一樣 都是xml.所以我們找到這兩個(gè)文件,打開就能看到我們需要的值,已知"UIBackgroundModes"是key,所以打開info.plist就能找到,如下圖
這樣在xcode里面增加就能看到我們需要的是什么了
按步驟將"processing" 和對(duì)應(yīng)枚舉 加入即可 如下兩圖
增加字符串
增加枚舉
直接增加兩個(gè)key為UIBackgroundModes 在代碼中是不能實(shí)現(xiàn)的,是因?yàn)?PBXProject.AddCapability方法會(huì)判斷是否有兩個(gè)這樣的模塊
拋異常了
解決方案也簡(jiǎn)單,魔改下,判斷下"PBXCapabilityType"為"BackgroundModes",就把保存到list里面增加再調(diào)用AddCapability就行
改下就行
搞定