[iOS] Undefined symbols for architecture arm64 _OBJC_CLASS_$_GPPShare when integrating GooglePlus SDK.

This has been a pretty annoying issue, first when Compiling the App, and then Archiving it for App Store submission. This is how i solved all the issues related to GooglePlus SDK for iOS.

Compilation:

Inside the lib/ folder, there are two libs: libGooglePlusUniversal.a and libGooglePlus.a, i removed this last one so only libGooglePlusUniversal.a remained. This way i could compile without errors

Archiving:

As it’s explained in this StackOverflow question.

I had to go to Build Settings, and inside “Architectures”, select YES in “Build for Active Architectures” (“release” was NO by default), and inside “Base SDK”, put “Latest iOS (iOS 7.1)”.

Captura de pantalla 2014-10-23 a la(s) 19.42.41

Apart from that, also had to select a development team in the “Basic” section, and “7.1” as the deployment target.

After all these changes, I could archive the App and submit to the App Store.

Hope it helps!

Advertisement

[Android] Curious issue about notifications

It may seem obvious, but this issue annoyed me very much and made me waste some valious hours.

As scenario, imagine that you launch ActivityA, and after clicking a button, you launch ActivityB on top of it.

Now, ActivityB executes a long-time background operation (such as parsing a JSON file), and we want a Notification to tell us the progress.

The author of the Notification could be ActivityA, so we can keep on using the App, and even click “back”, and we will still be informed about the progress of our operation.

Well, just one detail when doing that: Don’t forget to set the Notification’s Small Icon, or else it won’t show up (It will if we launch it from ActivityB without smallIcon, but in case of ActivityA, it won’t). Here is some code:

Intent i = getIntent();
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
int notificationId = 100;
PendingIntent pi = PendingIntent.getActivity(ActivityA.this, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
mNotificationBuilder.setContentTitle(getString("Parsing"))
.setContentText("10% parsed")
.setProgress(100, 10, false)
.setContentIntent(pi)
.setSmallIcon(R.drawable.icon); // Do not forget this line!!
mNotifyManager.notify(notificationId, mNotificationBuilder.build());

I know it is quite silly, but remember it! 🙂