Upgrading Socialize (CocoaPods and non-CocoaPods)

Important Notes on Upgrading to v3.1.0.1

This patch release corrects some lingering CocoaPods-related issues. If you are installing the SDK with CocoaPods, do the following:

  1. Delete the SocializeCocoaPods directory in ~/.cocoapods/repos, and re-run pod repo add as as described in the Getting Started Guide.
  2. Delete your project directory and re-clone from git, or else delete the Pods directory in the project

  3. In Xcode, navigate to the “Organizer” window and delete DerivedData for your project

  4. Re-run pod install and pod update in your local project

Important Notes on Upgrading to v3.1.0

As of this release, the Socialize SDK is compatible with iOS 8.1, Facebook SDK 3.19, and the revisions to CocoaPods 0.34.x. However, some of the SDK’s internal automated tests have not yet been upgraded. The SDK has been tested manually to ensure functionality works as before, and some changes to adapt to the new Facebook SDK have been made. We will update this page with any updates to the testing targets, but if you build the SDK from source (i.e. not via CocoaPods or as a framework package), note that “UnitTests” and “IntegrationTests” targets are not available in this version.

Important Notes on Upgrading to v3.0.9.1

This patch release temporarily makes the Socialize iOS SDK compatible with changes to its dependent libraries post-iOS 8.0.

If installing with CocoaPods, ensure your CocoaPods version is 0.33.x; the Socialize iOS SDK has not yet been updated to use CocoaPods 0.34.x. You may also need to delete and reinstall the SocializeCocoaPods private repo located in your .cocoapods directory.**

We will be issuing an update for these (and related issues) soon.

Important Notes on Upgrading to v3.0.3

To comply with Apple’s rules on IDFA (“advertisingIdentifier”), the Socialize iOS SDK offers the option to disable the use of IDFA. You must disable IDFA if your app does not serve ads or it will be rejected by the App Store.

To disable IDFA in Socialize, navigate to SZIdentifierUtils.m (in a CocoaPods installation, this will be in the Socialize Pods directory) and set the proprocessor macro flag to 0; to enable IDFA, set to 1 (the default):

#define SHOULD_USE_IDFA 1

The macro will remove any references to advertisingIdentifier in the code if so specified, ensuring it will not be detected during App Store submission.

Note

References to advertisingIdentifier may still exist in your code or in any CocoaPods your project and/or the Socialize iOS SDK depends on. You will have to implement an equivalent scheme to strip out these references before building your app if your app is not serving ads.

Note

If you are using Socialize as a framework, you will need to download the source from GitHub, perform the above adjustment in SZIdentifierUtils.m, then compile the source to build the framework. For more information, see “Manual Installation via Framework” in in the Getting Started Guide. .. _Getting Started Guide: getting_started.html

Important Notes on Upgrading to v3.0.2

Socialize 3.0.2 is compatible with iOS 7.1, which compiles for 64-bit devices by default. Since some dependent libraries have not yet been optimized for 64-bit devices, you may encounter build problems when compiling the Socialize SDK. To avoid 64-bit build errors, ensure your “Archtectures” settings in Xcode Build Settings for your project and targets are set as follows:

images/compiler_settings_302.png

Important Notes on Upgrading to v3.0.1

As of 3.0.1, Socialize is available as a CocoaPod!

To upgrade from a non-CocoaPods install (pre-3.0.1) to a CocoaPods install, remove the old Socialize SDK per Step 2, below, then follow the directions in “Installing with CocoaPods” in the Getting Started Guide. To upgrade a CocoaPods install, see below.

Important Notes on Upgrading to v2.8.9

For each of your application targets (or, if preferred, for the entire project), set the Debug setting of “Generate Test Coverage Files” and “Instrument Program Flow” in “Apple LLVM 5.0 - Code Generation” to “Yes”:

images/compiler_settings_289.png

Important Notes on Upgrading to v2.4

Entity loader events that occur when Socialize does not have a preexisting navigation controller on the screen no longer automatically push a new UINavigationController. This was made the default since the old behavior was intrusive for apps that might not want to display a navigation controller at all for this case. The UINavigationController parameter of the entity loader is now passed as nil, and it is left up to you to choose how to handle this situation.

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    
    // ...
    
    // Register for Apple Push Notification Service
    [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];

    // Handle Socialize notification at launch
    NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (userInfo != nil) {
        [self handleNotification:userInfo];
    }

    // Specify a Socialize entity loader block
    [Socialize setEntityLoaderBlock:^(UINavigationController *navigationController, id<SocializeEntity>entity) {
        
        SampleEntityLoader *entityLoader = [[SampleEntityLoader alloc] initWithEntity:entity];

        if (navigationController == nil) {
            UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:entityLoader];
            [self.window.rootViewController presentViewController:navigationController animated:YES completion:nil];
        } else {
            [navigationController pushViewController:entityLoader animated:YES];
        }
    }];
    
    // Optionally specify a new comments notification override (An SZCommentsListViewController plus comment detail will be shown by default)
//    [Socialize setNewCommentsNotificationBlock:^(id<SocializeComment> comment) {
//        NSLog(@"Received new comments notification. Doing nothing.");
//    }];

    
    return YES;
}

Upgrading with CocoaPods (v3.0.1 and Newer)

If you already have a CocoaPods install of the SDK, future upgrades must also be done via CocoaPods. To do so, in the command line at the root directory of your project, enter the following:

$ pod update

Upgrading via Framework (v3.0.0 and Older)

Note

This upgrade process can only be done for Socialize SDK installed via Framework; if you have installed via CocoaPods, you must upgrade with CocoaPods, as instructed above.

Step 1: Download a new release

Step 2: Delete the Old Socialize Framework from your Project

  • Remove the existing embedded static framework and resources from your application.

    Assuming resources are unmodified, the simplest thing to do is to just delete all resources and readd them.

images/delete_framework.png
  • Ensure that the Socialize.embeddedframework folder is also removed from disk. Xcode may leave the empty Socialize.embeddedframework directory around. This could cause a copy error in the next step.

Step 2: Re-add the framework to your project

  • Install the embedded static framework to your application.

    To do this just drag and drop Socialize.embeddedframework folder from the package to your framework section in your project.

Note

Be sure to drag the outlying .embeddedframework folder, not just the framework. The .embeddedframework directory contains both the Socialize framework and the Socialize resources. If you just add the framework, you will be missing important Socialize images and configuration files.

images/drag_and_drop.png
  • When prompted, check “Copy items into destination group’s folder (if needed)” and click finish

    images/check_copy_items.png

Note

If you get errors when copying files, ensure that the Socialize.embeddedframework folder has been removed from the filesystem (using finder or terminal). If it still there, delete it before performing this step