我正在开发一个使用 OneSignal 集成推送通知的 iOS 应用程序。我遵循了 iOS SDK 设置指南,一切顺利,但由于我进行了最新的 xcode 更新和 macos 更新,我无法构建要发布的应用程序或仅在物理设备上构建应用程序。
我收到有关对 OneSignal 扩展进行代码签名的以下错误:
仅供参考:主要目标的捆绑包标识符是com.example.ios.app
CodeSign /Users/myUser/Library/Developer/Xcode/DerivedData/myApp-detsaukwwypeutcadzxgviircfje/Build/Intermediates.noindex/ArchiveIntermediates/myApp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex
cd /Users/pathToProject
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Signing Identity: "iPhone Developer: Me (##########)"
Provisioning Profile: "iOS Team Provisioning Profile: com.example.ios.app.OneSignalNotificationServiceExtension"
(######-####-####-####-######)
/usr/bin/codesign --force --sign E7160941E1D4E45D870F30CB31F3EC30BFB0ABBA --entitlements /Users/myUser/Library/Developer/Xcode/DerivedData/myApp-detsaukwwypeutcadzxgviircfje/Build/Intermediates.noindex/ArchiveIntermediates/myApp/IntermediateBuildFilesPath/myApp.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension.appex.xcent --timestamp=none /Users/myUser/Library/Developer/Xcode/DerivedData/myApp-detsaukwwypeutcadzxgviircfje/Build/Intermediates.noindex/ArchiveIntermediates/myApp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex
/Users/myUser/Library/Developer/Xcode/DerivedData/myApp-detsaukwwypeutcadzxgviircfje/Build/Intermediates.noindex/ArchiveIntermediates/myApp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex: unknown error -1=ffffffffffffffff
Command /usr/bin/codesign failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我做了一些研究,但没有发现任何有帮助的东西。
我遇到问题。\n我无法使用 OneSignal。我不知道为什么。我用谷歌搜索了该错误,但没有任何帮助。
\n目前我使用 Android Studio 版本:4.2\n最新的 OneSignal 版本:4.3.4\n还有最新的 Firebase 版本。我创建了一个新的 Firebase 项目和 OneSignal 项目。
\n这是错误:
\n2021-05-25 13:06:37.370 3225-4181/de.kggaming.application E/OneSignal: Unknown error getting FCM Token\n java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/iid/FirebaseInstanceId;\n at com.onesignal.PushRegistratorFCM.getToken(PushRegistratorFCM.java:60)\n at com.onesignal.PushRegistratorAbstractGoogle.attemptRegistration(PushRegistratorAbstractGoogle.java:97)\n at com.onesignal.PushRegistratorAbstractGoogle.access$100(PushRegistratorAbstractGoogle.java:37)\n at com.onesignal.PushRegistratorAbstractGoogle$1.run(PushRegistratorAbstractGoogle.java:84)\n at java.lang.Thread.run(Thread.java:923)\n Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.iid.FirebaseInstanceId" on path: DexPathList[[dex file "/data/data/de.kggaming.application/code_cache/.overlay/base.apk/classes3.dex", zip file "/data/app/~~37wP-zifceloViDoIaZiLQ==/de.kggaming.application-MT0rnPML9HHvlPgijekxXw==/base.apk"],nativeLibraryDirectories=[/data/app/~~37wP-zifceloViDoIaZiLQ==/de.kggaming.application-MT0rnPML9HHvlPgijekxXw==/lib/arm64, /system/lib64]]\n at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)\n at java.lang.ClassLoader.loadClass(ClassLoader.java:379)\n at java.lang.ClassLoader.loadClass(ClassLoader.java:312)\n at com.onesignal.PushRegistratorFCM.getToken(PushRegistratorFCM.java:60)\xc2\xa0\n at com.onesignal.PushRegistratorAbstractGoogle.attemptRegistration(PushRegistratorAbstractGoogle.java:97)\xc2\xa0\n at com.onesignal.PushRegistratorAbstractGoogle.access$100(PushRegistratorAbstractGoogle.java:37)\xc2\xa0\n at com.onesignal.PushRegistratorAbstractGoogle$1.run(PushRegistratorAbstractGoogle.java:84)\xc2\xa0\n at java.lang.Thread.run(Thread.java:923)\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n这是我的 build.gradle (项目):
\n// …
Run Code Online (Sandbox Code Playgroud) 我使用OneSignal进行推送通知服务.
(开发)我为我的应用设置了推送通知服务的配置文件
当我从Xcode运行时,一切都在每台设备上正常运行.
但是,当我使用Debug Scheme创建存档(.ipa)并通过iTunes安装时,设备似乎连接到OneSignal推送通知服务.但是,无法从连接到OneSignal的后端服务接收通知.
所以,我认为APNS存在问题
对此有何帮助?我做错了什么.
如果有,请指导我?如何使用存档(.ipa)测试iOS开发配置文件的推送通知?
我想知道如何发送自定义声音通知OneSignal
.不幸的是,他们的文档仅涵盖通过仪表板发送:链接
我的方法不起作用:
OneSignal.defaultClient().postNotification([
"contents": ["en": "test"],
"include_player_ids": [pushId],
"aps": ["sound": "sound.wav"],
])
Run Code Online (Sandbox Code Playgroud)
这也行不通:
OneSignal.defaultClient().postNotification([
"contents": ["en": "test"],
"include_player_ids": [pushId],
"sound": "sound.wav",
])
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
Web推送通知有一些问题。我可以定期发送通知,但是,当我发送两个通知而第一个通知仍在屏幕上可见时,第二个覆盖第一个。
REST API由使用C#编写的MVC站点调用,我发送的对象如下:
var obj = new
{
app_id = _appKey,
contents = new { en = message },
headings = new { en = title },
included_segments = new[] { "All" },
url,
chrome_web_icon = imageUrl,
priority = 1,
id = DateTime.Now.ToString("yyyyMMddHHmmss")
};
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过同样的问题?我该如何解决?
我正在尝试使用laravel-notifications-channel/onesignal,但我的 laravel 应用程序中的用户设置为接收通知时遇到了一些问题。在GitHub的页面文件并没有真正涵盖了用户如何认证他们自收到通知。
即使阅读OneSignal 文档以将用户发送到 OneSignal 也不适合我。
我如何设置当用户使用我们的网络应用程序时,他们会收到通知以接收通知,然后我可以使用laravel 通知向他们发送通知?
这是我的 AssignedToTask 通知文件:
<?php
namespace App\Notifications;
use App\Task;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use NotificationChannels\OneSignal\OneSignalChannel;
use NotificationChannels\OneSignal\OneSignalMessage;
use NotificationChannels\OneSignal\OneSignalWebButton;
class AssignedToTask extends Notification
{
use Queueable;
protected $task;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct(Task $task)
{
//
$this->task = $task;
}
/**
* Get the notification's delivery channels.
* …
Run Code Online (Sandbox Code Playgroud) 我已经制作了一个新闻应用程序,向用户发送oneSignal通知并且工作正常,但我有一个问题,让用户控制是否接收通知但我找不到如何以编程方式取消订阅OneSignal以及用户是否通过按下按钮,他将不再收到任何通知,任何人都可以帮助,请在Android工作室仍然是初学者.
我正在Android应用程序中实现推送通知.我们正在使用OneSignal发送推送通知.我们有一个API可以跟踪所有设备和API,决定哪些设备发送推送通知.
API请求OneSignal和OneSignal向设备发送通知.
在Android中,我使用以下代码获取设备令牌,该代码保存在API上,并使用它来发送推送通知.
public String getGCMTokenForPushNotification(){
String token = "";
try {
InstanceID instanceID = InstanceID.getInstance(this);
token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Log.i(TAG, "GCM Registration Token: " + token);
return token;
}catch (Exception e) {
Log.d(TAG, "Failed to complete token refresh", e);
}
return token;
}
Run Code Online (Sandbox Code Playgroud)
当Android应用程序在那里注册时,R.string.gcm_defaultSenderId是firebase上的SENDER ID.
截至目前,我已经在Android应用程序上设置了OneSignal
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OneSignal.startInit(this)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
}
Run Code Online (Sandbox Code Playgroud)
https://documentation.onesignal.com/docs/android-sdk-setup
如果API正在决定并在信号上初始化设备并发送推送通知.我不认为我会在Android应用程序上要求OneSignal设置.是对的吗?如果我从Android应用程序中删除OneSignal.我应该用什么来处理通知.
背后的原因是,截至目前我们正在使用OneSignal,将来如果我们更改提供商,我们不必在应用程序方面做任何事情.
是否有任何geniric方式来处理Android上的通知请.
谢谢您的帮助.[R
android push-notification google-cloud-messaging onesignal android-push-notification
我是本机反应的新手,我正在使用一个信号进行通知。我从OneSignal.configure();
这里得到了一个信号用户玩家 ID,并通过遵循我已经完成的代码但是我只能在控制台上看到的玩家 ID。我正在使用setState
保存状态,但它显示错误setState is not a function
。如何获取该玩家 ID 以将其保存在状态中。
代码:
componentWillMount() {
OneSignal.init("d447e6e2-0c8e-4781-8292-6e77d2e86691");
OneSignal.configure();
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
}
componentWillUnmount() {
OneSignal.removeEventListener('received', this.onReceived);
OneSignal.removeEventListener('opened', this.onOpened);
OneSignal.removeEventListener('ids', this.onIds);
}
onReceived(notification) {
console.log("Notification received: ", notification);
}
onOpened(openResult) {
console.log('Message: ', openResult.notification.payload.body);
console.log('Data: ', openResult.notification.payload.additionalData);
console.log('isActive: ', openResult.notification.isAppInFocus);
console.log('openResult: ', openResult);
}
onIds(device) {
console.log('Device info: ', device);
console.log('player id: ', device.userId);
this.setState({
pid: device.userId,
})
console.log(this.state.pid);
}
Run Code Online (Sandbox Code Playgroud) push-notification reactjs react-native onesignal react-native-android
我正在堆叠将curl命令转换为Node.js以获取firebase云功能.我所说的" https://curl.trillworks.com/ "似乎效果不佳.代码如下.
有谁知道Node.js下面的代码应该怎么写?
curl --include \
--request POST \
--header "Content-Type: application/json" \
--data-binary "{\"app_id\" : \"YOUR_APP_ID\",
\"identifier\":\"DEVICE_VOIP_TOKEN\",
\"language\":\"en\",
\"timezone\":-28800,
\"game_version\":\"1.0\",
\"device_os\":\"7.0.4\",
\"device_type\":0,
\"device_model\":\"iPhone 8,2\",
\"tags\":{\"a\":\"1\",\"foo\":\"bar\"}}" \
https://onesignal.com/api/v1/players
Run Code Online (Sandbox Code Playgroud)
我非常感谢你的帮助和支持.