com.onesignal.unity.ios 5.0.1 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -111,6 +111,8 @@ namespace OneSignalSDK.iOS {
111
111
  // Add the service extension
112
112
  AddNotificationServiceExtension();
113
113
 
114
+ DisableBitcode();
115
+
114
116
  // Save the project back out
115
117
  File.WriteAllText(_projectPath, _project.WriteToString());
116
118
  }
@@ -191,6 +193,7 @@ namespace OneSignalSDK.iOS {
191
193
  _project.SetBuildProperty(extensionGuid, "SWIFT_VERSION", "5.0");
192
194
  _project.SetBuildProperty(extensionGuid, "ARCHS", "arm64");
193
195
  _project.SetBuildProperty(extensionGuid, "DEVELOPMENT_TEAM", PlayerSettings.iOS.appleDeveloperTeamID);
196
+ _project.SetBuildProperty(extensionGuid, "ENABLE_BITCODE", "NO");
194
197
 
195
198
  _project.AddBuildProperty(extensionGuid, "LIBRARY_SEARCH_PATHS",
196
199
  $"$(PROJECT_DIR)/Libraries/{PluginLibrariesPath.Replace("\\", "/")}");
@@ -282,6 +285,20 @@ namespace OneSignalSDK.iOS {
282
285
 
283
286
  File.WriteAllText(podfilePath, podfile);
284
287
  }
288
+
289
+ private void DisableBitcode() {
290
+ // Main
291
+ var targetGuid = _project.GetMainTargetGuid();
292
+ _project.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
293
+
294
+ // Unity Tests
295
+ var unityTests = _project.TargetGuidByName(PBXProject.GetUnityTestTargetName());
296
+ _project.SetBuildProperty(unityTests, "ENABLE_BITCODE", "NO");
297
+
298
+ // Unity Framework
299
+ var unityFramework = _project.GetUnityFrameworkTargetGuid();
300
+ _project.SetBuildProperty(unityFramework, "ENABLE_BITCODE", "NO");
301
+ }
285
302
  }
286
303
  }
287
304
  #endif
@@ -1,5 +1,5 @@
1
1
  <dependencies>
2
2
  <iosPods>
3
- <iosPod name="OneSignalXCFramework" version="5.0.1" addToAllTargets="true" />
3
+ <iosPod name="OneSignalXCFramework" version="5.0.2" addToAllTargets="true" />
4
4
  </iosPods>
5
5
  </dependencies>
@@ -70,7 +70,8 @@ typedef void (*ClickListenerDelegate)(const char* notification, const char* resu
70
70
  if (self = [super init]) {
71
71
  [OneSignal.Notifications addPermissionObserver:self];
72
72
  [OneSignal.Notifications addForegroundLifecycleListener:self];
73
- [OneSignal.Notifications addClickListener:self];
73
+
74
+ _willDisplayEvents = [NSMutableDictionary new];
74
75
  }
75
76
 
76
77
  return self;
@@ -84,10 +85,10 @@ typedef void (*ClickListenerDelegate)(const char* notification, const char* resu
84
85
 
85
86
  - (void)onWillDisplayNotification:(OSNotificationWillDisplayEvent *)event {
86
87
  if (_willDisplayDelegate != nil) {
88
+ _willDisplayEvents[event.notification.notificationId] = event;
89
+
87
90
  NSString *stringNotification = [event.notification stringify];
88
91
  _willDisplayDelegate([stringNotification UTF8String]);
89
-
90
- _willDisplayEvents[event.notification.notificationId] = event;
91
92
  }
92
93
  }
93
94
 
@@ -159,5 +160,7 @@ extern "C" {
159
160
 
160
161
  void _notificationsSetClickCallback(ClickListenerDelegate callback) {
161
162
  [[OneSignalNotificationsObserver sharedNotificationsObserver] setClickDelegate:callback];
163
+
164
+ [OneSignal.Notifications addClickListener:[OneSignalNotificationsObserver sharedNotificationsObserver]];
162
165
  }
163
166
  }
@@ -96,8 +96,8 @@ static bool swizzled = false;
96
96
 
97
97
  - (BOOL)oneSignalApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
98
98
  [OneSignalWrapper setSdkType:@"unity"];
99
- [OneSignalWrapper setSdkVersion:@"050001"];
100
- [OneSignal setLaunchOptions:launchOptions];
99
+ [OneSignalWrapper setSdkVersion:@"050003"];
100
+ [OneSignal initialize:nil withLaunchOptions:launchOptions];
101
101
 
102
102
  if ([self respondsToSelector:@selector(oneSignalApplication:didFinishLaunchingWithOptions:)])
103
103
  return [self oneSignalApplication:application didFinishLaunchingWithOptions:launchOptions];
@@ -48,15 +48,30 @@ namespace OneSignalSDK.iOS.Notifications {
48
48
  [DllImport("__Internal")] private static extern void _notificationsWillDisplayEventPreventDefault(string notificationId);
49
49
  [DllImport("__Internal")] private static extern void _notificationsSetClickCallback(ClickListenerDelegate callback);
50
50
 
51
- public delegate void PermissionListenerDelegate(bool permission);
51
+ private delegate void PermissionListenerDelegate(bool permission);
52
52
  private delegate void WillDisplayListenerDelegate(string notification);
53
53
  private delegate void ClickListenerDelegate(string notification, string resultActionId, string resultUrl);
54
54
  private delegate void BooleanResponseDelegate(int hashCode, bool response);
55
55
 
56
56
  public event EventHandler<NotificationWillDisplayEventArgs> ForegroundWillDisplay;
57
- public event EventHandler<NotificationClickEventArgs> Clicked;
58
57
  public event EventHandler<NotificationPermissionChangedEventArgs> PermissionChanged;
59
58
 
59
+ // Only set the native listner once
60
+ private bool _clickNativeListenerSet;
61
+
62
+ private EventHandler<NotificationClickEventArgs> _clicked;
63
+ public event EventHandler<NotificationClickEventArgs> Clicked {
64
+ add {
65
+ _clicked += value;
66
+
67
+ if (!_clickNativeListenerSet) {
68
+ _clickNativeListenerSet = true;
69
+ _notificationsSetClickCallback(_onClicked);
70
+ }
71
+ }
72
+ remove { _clicked -= value; }
73
+ }
74
+
60
75
  private static iOSNotificationsManager _instance;
61
76
 
62
77
  public iOSNotificationsManager() {
@@ -88,7 +103,6 @@ namespace OneSignalSDK.iOS.Notifications {
88
103
  public void Initialize() {
89
104
  _notificationsAddPermissionObserver(_onPermissionStateChanged);
90
105
  _notificationsSetForegroundWillDisplayCallback(_onForegroundWillDisplay);
91
- _notificationsSetClickCallback(_onClicked);
92
106
  }
93
107
 
94
108
  [AOT.MonoPInvokeCallback(typeof(PermissionListenerDelegate))]
@@ -114,7 +128,7 @@ namespace OneSignalSDK.iOS.Notifications {
114
128
  {
115
129
  // We use Send instead of Post because we need to *not* return to our caller until the
116
130
  // event handlers have returned themselves. This allows a handler to call PreventDefault()
117
- // which will get passed down to Android in InternalNotificationWillDisplayEventArgs.
131
+ // which will get passed down to iOS in InternalNotificationWillDisplayEventArgs.
118
132
  UnityMainThreadDispatch.Send(state => handler(_instance, args));
119
133
  }
120
134
  }
@@ -133,23 +147,10 @@ namespace OneSignalSDK.iOS.Notifications {
133
147
  _fillNotifFromObj(ref notif, Json.Deserialize(notification));
134
148
 
135
149
  var result = new NotificationClickResult(resultActionId, resultUrl);
136
-
137
150
  NotificationClickEventArgs args = new NotificationClickEventArgs(notif, result);
138
151
 
139
- EventHandler<NotificationClickEventArgs> handler = _instance.Clicked;
140
- if (handler != null)
141
- {
142
- if (OneSignalPlatform.DidInitialize)
143
- UnityMainThreadDispatch.Post(state => handler(_instance, args));
144
- else {
145
- void invokeOpened(string appId) {
146
- OneSignalPlatform.OnInitialize -= invokeOpened;
147
- UnityMainThreadDispatch.Post(state => handler(_instance, args));
148
- }
149
-
150
- OneSignalPlatform.OnInitialize += invokeOpened;
151
- }
152
- }
152
+ EventHandler<NotificationClickEventArgs> handler = _instance._clicked;
153
+ UnityMainThreadDispatch.Post(state => handler(_instance, args));
153
154
  }
154
155
 
155
156
  private static void _fillNotifFromObj(ref iOSDisplayableNotification notif, object notifObj) {
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "com.onesignal.unity.ios",
3
3
  "displayName": "OneSignal Unity SDK - iOS",
4
- "version": "5.0.1",
4
+ "version": "5.0.3",
5
5
  "unity": "2018.4",
6
6
  "description": "OneSignal is the market leader in customer engagement, powering mobile push, web push, email, and in-app messages.",
7
7
  "dependencies": {
8
- "com.onesignal.unity.core": "5.0.1"
8
+ "com.onesignal.unity.core": "5.0.3"
9
9
  },
10
10
  "keywords": [
11
11
  "push-notifications",