Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

Felgo Plugins Migration

Note: This document references how to migrate Plugins from Felgo 2 to Felgo 3. For information on how to migrate to Felgo 4, see the Felgo 4 Update Guide.

Using Felgo Plugins before release 2.8.2 required you to install the plugin libraries from an additional repository in the Maintenance Tool. Beginning with Felgo 2.8.2, plugins are part of Felgo 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 Felgo Plugin Demo app.

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

General

Here is a short summary of all changes when using Felgo plugins:

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

    with the new import statement:

     import Felgo
  • Plugins are now solely licensed through the AppItem::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://felgo.com/license/.
  • As plugins are not part of the main Felgo libraries you should uninstall standalone plugins with the Maintenace Tool, found in the root directory of your Felgo installation. You can also remove the custom-defined repository
     https://sdk.felgo.com/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

     ...
     FELGO_PLUGINS += admob
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += admob
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Replace the following line from the dependencies block:
     dependencies {
       implementation 'com.google.android.gms:play-services-ads:7.5.0'
     }

    with this one:

     dependencies {
       implementation 'net.vplay.plugins:plugin-admob:3.+'
     }

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

  4. 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

     ...
     FELGO_PLUGINS += chartboost
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += chartboost
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Replace the following line from the dependencies block:
     dependencies {
       implementation 'com.google.android.gms:play-services-ads:7.5.0'
     }

    with this one:

     dependencies {
       implementation 'net.vplay.plugins:plugin-chartboost:3.+'
     }

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

  4. Delete chartboost.jar from the android/libs sub-directory.
  5. 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

     ...
     FELGO_PLUGINS += facebook
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += facebook
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Replace the following line from the dependencies block:
     dependencies {
       implementation 'com.facebook.android:facebook-android-sdk:3.20.0'
     }

    with this one:

     dependencies {
       implementation 'net.vplay.plugins:plugin-facebook:3.+'
     }

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

  4. 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

     ...
     FELGO_PLUGINS += flurry
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += flurry
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Replace the following lines from the dependencies block:
     dependencies {
       implementation 'com.google.android.gms:play-services:7.5.0'
       implementation 'com.android.support:support-v4:22.0.0'
       implementation 'com.flurry.android:analytics:6.2.0'
     }

    with this one:

     dependencies {
       implementation 'net.vplay.plugins:plugin-flurry:3.+'
     }

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

  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.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

     ...
     FELGO_PLUGINS += hockeyapp
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += hockeyapp
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Add the following line from the dependencies block:
     dependencies {
       implementation 'net.vplay.plugins:plugin-hockeyapp:3.+'
     }

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

  4. 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 {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  2. Add the following line from the dependencies block:
     dependencies {
       implementation 'net.vplay.plugins:plugin-notification:3.+'
     }

    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

     ...
     FELGO_PLUGINS += parse
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += parse
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Replace the following line from the dependencies block:
     dependencies {
       implementation 'com.parse:parse-android:1.13.0'
     }

    with this one:

     dependencies {
       implementation 'net.vplay.plugins:plugin-parse:3.+'
     }

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

  4. 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>
     
  5. If you're using the background download feature remove the following line:
     <service android:name="net.vplay.plugins.parse.ParseDownloadService" />
  6. 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

     ...
     FELGO_PLUGINS += soomla
     ...

Android

  1. Add the following lines of code to your .pro file:
     FELGO_PLUGINS += soomla
  2. Open your build.gradle file and add the following maven line within the allprojects block, so that it looks like this:
     ...
     allprojects {
         repositories {
             mavenCentral()
             maven { url 'https://install.felgo.com/maven/' }
         }
     }
     ...
  3. Add the following line to the dependencies block:
     dependencies {
       implementation 'net.vplay.plugins:plugin-soomla:3.+'
     }

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

  4. 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.
  5. 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" />
  6. 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.

Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded