友盟推送 php推送给ios,记录下接友盟ios的推送

最近项目要接友盟的ios端推送,所以记录下坑点

1.参考的一些博主的步骤

2.坑点先说明

2.有四个文件夹

381cd5e9d905

一定要再mac端解压!!!!!!

3.这个四个文件夹加入xcode的frameworks 这个怎么加看上面的链接 里面写的很清楚,还有一些.tbd文件也要加,这些步骤按文档即可

4.坑点.由于我们是jenkins自动化出包,所以我一般习惯windows上提交这些文件,但是!!!!需要记住的是这四个一定在ios端提交svn,如果在windows下,里面headers文件中 link会掉,就会导致在import的时候 not found各种.h文件

381cd5e9d905

windows下提交link会掉,不要问我为什么,我也不知道,被这个问题耽误一天

5.打ipa的时候报了个错"bulk_unityengine.vrmodule_o.cpp"not found.这就是个vr模块,我们项目中没用过,但是不知道为什么要报这个错,友盟sdk中引用了,经查是代码裁剪导致没有引用XR:VRModule可能在使用启用了“Strip Engine Code”的IL2CPP时被剥离,导致构建不进入VR模式。有关如何解决此问题的详细信息,请参阅https://forum.unity.com/threads/2018-1-il2cpp-vrmodule-stripping-issue.528799/。将在2018.1发布后解决

解决方案

381cd5e9d905

代码裁剪解决方案,加个link文件即可

6.在unityPlugins中加入需要的桥接文件下载地址 ,只需要UMPushSDK.h  UMPushSDK.mm文件即可,其他的xcode里面设置即可

7.也是狙击点..导出xcode后 在preprocessor.h文件中  UNITY_USES_REMOTE_NOTIFICATIONS 一定把0改为1,不然didRegisterForRemoteNotificationsWithDeviceToken 这个函数进入不了.

381cd5e9d905

修改为1

3.xcode代码

官方出了demo的github,找到对应.h .mm文件修正增加即可

381cd5e9d905

这个函数下增加这个代码

381cd5e9d905

import

381cd5e9d905

.h文件增加即可

完成

381cd5e9d905

7月1日更新:

由于推送后面传的app:目前上传app后会报2个错

1.ERROR ITMS-90771: “Missing Info.plist value. The Info.plist key ‘BGTaskSchedulerPermittedIdentifiers’ must contain a list of identifiers used to submit and handle tasks when ‘UIBackgroundModes’ has a value of ‘processing’. For more information, refer to the Information Property List Key Reference at https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html.”

这个错误是因为推送要增加UIBackgroundModes和processing选项,需要在plist中增加"BGTaskSchedulerPermittedIdentifiers" 相关,由于我们是unity自动化,所以c#代码为private static void ModifyPush(XcodeProjSet setting, PlistDocument plist)

{

var urlArray = plist.root.CreateArray("BGTaskSchedulerPermittedIdentifiers");

urlArray.AddString(setting.boundleId);

}

非自动化手动在info.plist中增加   包名

BGTaskSchedulerPermittedIdentifiers

com.yourCompanyName.appName

2.ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'UIApplicationExitsOnSuspend......

解决办法 删掉info.plist 中UIApplicationExitsOnSuspend即可

一些自动化的问题  :链接

友盟后台token获得 在代码里面加上对应语句即可

381cd5e9d905

加上这几句话 调试获取

和服务器交互的时候我们会给服务器发送设备ID,友盟提供了此接口的,就是

static extern void GetTag_iOS(TagHandler callback);  //TagHandler为string类型的delegate

但是这方法会有个问题,il2cpp下会报一个 MonoPInvokeCallback 的特性错误

解决办法就是将TagHandler 加入此特性

友盟这个坑货其实没有提供返回设备ID的方法 哎, 自己加了个

c#声明个方法调用oc的,原理怎么就不讨论,给结果

[DllImport("__Internal")]

static extern string GetCId();

OC:那边实现

381cd5e9d905

找个全局的NS存下 ,unity 调用下就好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值