Comments (13)
Full code solution. Add that script to any Editor folder, should be fix the problem
public class ApplePostProcess : MonoBehaviour
{
#if UNITY_IOS
[PostProcessBuild(1)]
public static void OnPostProcessBuild(BuildTarget buildTarget, string pathToXcode)
{
if (buildTarget == BuildTarget.iOS)
{
FixediOS13NotificationBug(pathToXcode);
}
}
private static void FixediOS13NotificationBug(string pathToXcode)
{
string managerPath = pathToXcode + "/Libraries/com.unity.mobile.notifications/Runtime/iOS/Plugins/UnityNotificationManager.m";
var text = File.ReadAllLines(managerPath).ToList();
for (int i = 0; i < text.Count; i++)
{
if (text[i] == @"- (void)updateScheduledNotificationList")
{
text.RemoveRange(i, 7);
text.Insert(i, @"- (void)updateScheduledNotificationList
{
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
if (@available(iOS 15, *))
{
dispatch_async(dispatch_get_main_queue(), ^{
[center getPendingNotificationRequestsWithCompletionHandler:^(NSArray < UNNotificationRequest *> *_Nonnull requests) {
self.cachedPendingNotificationRequests = requests;
}];
});
}
else
{
[center getPendingNotificationRequestsWithCompletionHandler:^(NSArray < UNNotificationRequest *> *_Nonnull requests) {
self.cachedPendingNotificationRequests = requests;
}];
}
}");
break;
}
}
File.WriteAllLines(managerPath, text.ToArray());
}
#endif
}
from com.unity.mobile.notifications.
Little bit improved solution
- (void)updateScheduledNotificationList
{
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
if (@available(iOS 15, *)) {
dispatch_async(dispatch_get_main_queue(), ^{
[center getPendingNotificationRequestsWithCompletionHandler:^(NSArray<UNNotificationRequest *> * _Nonnull requests) {
self.cachedPendingNotificationRequests = requests;
}];
});
} else {
[center getPendingNotificationRequestsWithCompletionHandler:^(NSArray<UNNotificationRequest *> * _Nonnull requests) {
self.cachedPendingNotificationRequests = requests;
}];
}
}
from com.unity.mobile.notifications.
Thanks to the above comment we also managed to fix the issue. However, we chose to use dispatch_async rather than once so subsequent calls to the function will also work:
- (void)updateScheduledNotificationList
{
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
dispatch_async(dispatch_get_main_queue(), ^{
[center getPendingNotificationRequestsWithCompletionHandler:^(NSArray<UNNotificationRequest *> * _Nonnull requests) {
self.cachedPendingNotificationRequests = requests;
}];
});
}
from com.unity.mobile.notifications.
We had the same issue and the posted fix by mpdggdev fixed it for us too.
from com.unity.mobile.notifications.
Under what conditions does this occur?
I cannot reproduce this issue using latest notifications package.
from com.unity.mobile.notifications.
We found that the issue occurs when either Firebase or Pangle (or both) are present in a project.
from com.unity.mobile.notifications.
Is there any progress?
I'm worried because I need to remember to fix it every time I build, and if I forget, the app won't start.
Thank you,
from com.unity.mobile.notifications.
@celp could you submit a bug via Unity Editor with the project in which it reproduces?
Link this issue in the bug report.
from com.unity.mobile.notifications.
@aurimasc
OK, I will submit it.
from com.unity.mobile.notifications.
@aurimasc
I submitted a bug report from the Unity Editor with a project to reproduce.
Please check it.
Case: 1375744
from com.unity.mobile.notifications.
I found that the problem occurs with the combination of Xcode 13 and iOS 15.
from com.unity.mobile.notifications.
Hi All,
I just received a message from Unity that the issue has been added to the Issue Tracker.
I'm waiting for the fix.
from com.unity.mobile.notifications.
Should be fixed by this: #130
from com.unity.mobile.notifications.
Related Issues (20)
- NRE when update mobile notifications package from 2.0.2 to 2.1.0 iOS HOT 1
- Crash: com.unity3d.player.g.onRequestPermissionsResult HOT 5
- ANR in background caused by NotificationCallback.onSentNotification invoking JavaProxy HOT 3
- Notification permission request can be done twice HOT 4
- Native method - android.os.MessageQueue.nativePollOnce Broadcast of Intent { cmp=linkdesks.pop.bubblegames.bubbleshooter/com.unity.androidnotifications.UnityNotificationManager } HOT 7
- UnityNotificationUtilities.deserializeNotificationIntent HOT 1
- AndroidNotificationCenter.UserPermissionToPost does not consider the Status of the notifications from the Android Settings HOT 1
- Automatic permission request on Android 13. HOT 1
- ANR: Broadcast of Intent HOT 3
- [iOS] unregisterForRemoteNotifications ? HOT 1
- 安卓上的崩溃UnityNotificationRestartOnBootReceiver HOT 1
- 请教:如何走到UnityNotificationRestartOnBootReceiver类的onReceive方法 HOT 1
- Consultation: How to go to the onReceive method of the UnityNotificationRestartOnBootReceiver class HOT 1
- [Android] Large Icon is not displayed correctly
- Custom Large and Small icon not show in notification unity android HOT 1
- CancelNotification waits untill all notifications are scheduled before returning HOT 1
- add proguard HOT 1
- Android After I kill the process, there is no notification. HOT 1
- Google Play Rejects Android Apps Using USE_EXACT_ALARM Permission HOT 5
- iOSNotificationCenter.GetLastRespondedNotification() does not work when cold start HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from com.unity.mobile.notifications.