Unity3d 如何解决';无法注册远程通知';,在由';统一云构建&x27;
我们使用“Unity cloud build”服务为Android和iOS构建我的项目,使用Firebase作为后端。最近,我们决定将“推送通知”功能添加到我们的项目中,以增强用户体验 我开始测试,看看整个过程是如何工作的,我添加了firebase消息包和标准的“官方”代码来接收和保存令牌。我还使用“Firebase函数”编写了一个小的“发送者”代码来发送测试通知 安卓系统的构建没有问题,它马上就可以工作了。它收到了令牌,每当我使用该令牌发送测试通知时,通知会立即弹出,没有问题 但是我们的iOS版本有一些问题!它不起作用!这是非常模糊的问题所在,我无法找到任何类似的问题使用谷歌!!我们花了大量时间调整.p12和配置文件以及.p8文件(用于与firebase的APN连接),它们看起来都很好,我们不确定问题是否存在 这是iOS版本的行为方式:Unity3d 如何解决';无法注册远程通知';,在由';统一云构建&x27;,unity3d,firebase-cloud-messaging,apple-push-notifications,unity3d-cloud-build,Unity3d,Firebase Cloud Messaging,Apple Push Notifications,Unity3d Cloud Build,我们使用“Unity cloud build”服务为Android和iOS构建我的项目,使用Firebase作为后端。最近,我们决定将“推送通知”功能添加到我们的项目中,以增强用户体验 我开始测试,看看整个过程是如何工作的,我添加了firebase消息包和标准的“官方”代码来接收和保存令牌。我还使用“Firebase函数”编写了一个小的“发送者”代码来发送测试通知 安卓系统的构建没有问题,它马上就可以工作了。它收到了令牌,每当我使用该令牌发送测试通知时,通知会立即弹出,没有问题 但是我们的iOS
注册远程通知失败
FCM:Received message
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.Collections;
using UnityEditor.iOS.Xcode;
using System.IO;
public class BuildSettings
{
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget != BuildTarget.iOS)
return;
string projectPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
PBXProject project = new PBXProject();
project.ReadFromFile (projectPath);
string targetGuid = project.TargetGuidByName(PBXProject.GetUnityTargetName());
project.AddCapability(targetGuid, PBXCapabilityType.PushNotifications);
project.AddFrameworkToProject(targetGuid, "CoreBluetooth.framework", false);
project.AddFrameworkToProject(targetGuid, "UserNotifications.framework", false);
File.WriteAllText (projectPath, project.WriteToString ());
var plistPath = Path.Combine(path, "Info.plist");
var plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetString("NSBluetoothPeripheralUsageDescription", "Bluetooth connection message!");
plist.WriteToFile(plistPath);
}
}
非常感谢。进一步调查显示,问题出现在缺乏aps环境授权的情况下,如果使用Xcode或cloud build,则将此授权添加到iOS版本的过程会有所不同 您可以在此处找到解决方案: