V-Play Plugins Migration

Using V-Play Plugins before release 2.8.2 required you to install the plugin libraries from an additional repository in the Maintenance Tool. Beginning with V-Play 2.8.2, plugins are part of V-Play Engine libraries.

Please follow the listed steps found below to migrate to the new plugin integration if you were using plugins before that release.

To see an integration example of the plugins have a look at the V-Play Plugin Demo app.

Note: You only need to follow these steps if you were using V-Play Plugins before the 2.8.2 release.

General

Here is a short summary of all changes when using V-Play plugins:

  • All plugins are now added with a single, unified import statement. Therefore replace all plugin import statements like
     import VPlayPlugins.<plugin-name> 1.0

    with the new import statement:

     import VPlayPlugins 1.0
  • Plugins are now solely licensed through the GameWindowItem::licenseKey or App::licenseKey. Therefore remove all licenseKey property declarations from your individual plugin items. You can create a new license key with enabled plugins at https://v-play.net/license/.
  • As plugins are not part of the main V-Play libraries you should uninstall standalone plugins with the Maintenace Tool, found in the root directory of your V-Play installation. You can also remove the custom-defined repository
     https://sdk.v-play.net/plugins/<platform>

    as it is not required anymore.

  • If you are targeting Android, make sure that your project uses the Gradle Build System like described here. Please especially note the changes to your AndroidManifest.xml file.
  • See the following sections for individual plugin changes and migrations to use the new plugin system:

AdMob Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -framework GoogleMobileAds
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += admob
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Replace the following line from the dependencies block:
     dependencies {
       compile 'com.google.android.gms:play-services-ads:7.5.0'
     }

    with this one:

     dependencies {
       compile 'net.vplay.plugins:plugin-admob:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following lines:
     <meta-data
         android:name="com.google.android.gms.version"
         android:value="@integer/google_play_services_version"/>
     <activity
         android:name="com.google.android.gms.ads.AdActivity"
         android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
         android:theme="@android:style/Theme.Translucent"/>

    Note: If you have changed the permissions by hand you can also remove the following two lines:

     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Chartboost Plugin

iOS

  1. Replace the following lines of code int your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -framework Chartboost
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += chartboost
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Replace the following line from the dependencies block:
     dependencies {
       compile 'com.google.android.gms:play-services-ads:7.5.0'
     }

    with this one:

     dependencies {
       compile 'net.vplay.plugins:plugin-chartboost:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Delete chartboost.jar from the android/libs sub-directory.
  4. Open your {AndroidManifest.xml file and remove the following lines if you have changed the permissions by hand:
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

Facebook Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -framework FacebookSDK
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += facebook
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Replace the following line from the dependencies block:
     dependencies {
       compile 'com.facebook.android:facebook-android-sdk:3.20.0'
     }

    with this one:

     dependencies {
       compile 'net.vplay.plugins:plugin-facebook:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following lines:
     <activity android:name="com.facebook.LoginActivity" />
     <activity android:name="net.vplay.plugins.facebook.FriendPickerActivity" />

    Note: If you have changed the permissions by hand you can also remove the following line:

     <uses-permission android:name="android.permission.INTERNET" />

Flurry Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -lFlurry
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += flurry
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Replace the following lines from the dependencies block:
     dependencies {
       compile 'com.google.android.gms:play-services:7.5.0'
       compile 'com.android.support:support-v4:22.0.0'
       compile 'com.flurry.android:analytics:6.2.0'
     }

    with this one:

     dependencies {
       compile 'net.vplay.plugins:plugin-flurry:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following lines if you have changed the permissions by hand:
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Google Analytics Plugin

No changes needed.

HockeyApp Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -framework HockeySDK
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += hockeyapp
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Add the following line from the dependencies block:
     dependencies {
       compile 'net.vplay.plugins:plugin-hockeyapp:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following line:
     <activity android:name="net.hockeyapp.android.UpdateActivity" />

    Note: If you have changed the permissions by hand you can also remove the following two lines:

     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Notification Plugin

iOS

No further steps to do.

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Add the following line from the dependencies block:
     dependencies {
       compile 'net.vplay.plugins:plugin-notification:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following lines:
     <receiver android:name="net.vplay.plugins.notification.NotificationManagerItem$Receiver">
       <intent-filter>
         <action android:name="net.vplay.plugins.notification.BROADCAST"/>
       </intent-filter>
     </receiver>

Parse Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -framework Bolts
       LIBS += -framework Parse
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += parse
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Replace the following line from the dependencies block:
     dependencies {
       compile 'com.parse:parse-android:1.13.0'
     }

    with this one:

     dependencies {
       compile 'net.vplay.plugins:plugin-parse:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Open your {AndroidManifest.xml file and remove the following lines:
     <service android:name="com.parse.PushService" />
    
     <receiver android:name="net.vplay.plugins.parse.ParseItem$Receiver"
         android:exported="false">
       <intent-filter>
         <action android:name="com.parse.push.intent.RECEIVE" />
         <action android:name="com.parse.push.intent.DELETE" />
         <action android:name="com.parse.push.intent.OPEN" />
         </intent-filter>
     </receiver>
    
     <receiver android:name="com.parse.GcmBroadcastReceiver"
         android:permission="com.google.android.c2dm.permission.SEND">
       <intent-filter>
         <action android:name="com.google.android.c2dm.intent.RECEIVE" />
         <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
    
         <!--
           IMPORTANT: Change "com.parse.starter" to match your app's package name.
         -->
         <category android:name="com.parse.starter" />
       </intent-filter>
     </receiver>
     
  4. If you're using the background download feature remove the following line:
     <service android:name="net.vplay.plugins.parse.ParseDownloadService" />
  5. Remove the following permission lines:
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    
     <!--
       IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
       to match your app's package name + ".permission.C2D_MESSAGE".
     -->
     <permission android:protectionLevel="signature"
         android:name="com.parse.starter.permission.C2D_MESSAGE" />
     <uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" />
     

Soomla Plugin

iOS

  1. Replace the following lines of code in your .pro file:
     ...
     ios {
       # AdMob framework
       LIBS += -F$$PWD/ios
       LIBS += -lSoomlaiOSStore -lSoomlaiOSCore
       ...
     }
     ...

    with

     ...
     ios {
       VPLAY_PLUGINS += soomla
     }
     ...

Android

  1. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             jcenter()
             maven { url 'https://sdk.v-play.net/maven/' }
         }
     }
     ...
  2. Add the following line to the dependencies block:
     dependencies {
       compile 'net.vplay.plugins:plugin-soomla:2.+'
     }

    Note: Make sure that your project uses the Gradle Build System like described here.

  3. Delete SoomlaAndroidCore.jar, AndroidStore.jar, square-otto-x.x.x.jar, AndroidStoreGooglePlay.jar, in-app-purchasing-2.0.1.jar, AndroidStoreAmazon.jar from the android/libs sub-directory.
  4. Open your {AndroidManifest.xml file and remove the following line:
     <!-- Google Play -->
     <activity android:name="com.soomla.store.billing.google.GooglePlayIabService$IabActivity"
               android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
     <!-- Amazon -->
     <receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver" >
       <intent-filter>
         <action android:name = "com.amazon.inapp.purchasing.NOTIFY"
                 android:permission = "com.amazon.inapp.purchasing.Permission.NOTIFY" />
       </intent-filter>
     </receiver>

    Note: If you have changed the permissions by hand you can also remove the following two lines:

     <uses-permission android:name="com.android.vending.BILLING" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  5. Make sure that you keep the line of the selected billing service within the <application> element, either
     <meta-data android:name="billing.service" android:value="google.GooglePlayIabService" />

    for Google Play, or

     <meta-data android:name="billing.service" android:value="amazon.AmazonIabService" />

    for Amazon.

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support