Skip to content
SDK Generator, produces the source code for all PlayFab SDKs.
C# HTML JavaScript C++ Shell TypeScript Other
Branch: master
Clone or download
toddbellMSFT Easy changes to class and auth context (#602)
add PLAYFABCOMMON_API tag to CommonSettings and change && to || to enable returning a dev key
Latest commit 03c7dfd Sep 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
JenkinsConsoleUtility Debugging case Sep 7, 2019
SDKBuildScripts Deleting the XPlatCppSdk template (#576) Jul 11, 2019
licenses Adding EJS license Nov 15, 2017
node_modules/ejs Actual initial commit Jul 16, 2014
privateTemplates Update quickstart.sh (#589) Jul 15, 2019
targets Easy changes to class and auth context (#602) Sep 11, 2019
.gitattributes Jenkernaught lives! May 31, 2016
.gitignore Deleting the XPlatCppSdk template (#576) Jul 11, 2019
LICENSE Added LICENSE & updated README Apr 22, 2015
README.md Update README.md Jun 22, 2019
SDKGenerator.njsproj Update SDKGenerator.njsproj (#590) Jul 18, 2019
SDKGenerator.sln Restore Cocos, and finish removing the others. Jun 21, 2019
generate-plugins.js added reading specialization TOC (#144) Jun 28, 2018
generate-plugins.ts
generate-sdk.js Making the targetMaker hack slightly less hacky, by moving it to a gl… Sep 28, 2018
generate-sdk.ts Making the targetMaker hack slightly less hacky, by moving it to a gl… Sep 28, 2018
generate.js genConfig (#600) Sep 10, 2019
generate.ts genConfig (#600) Sep 10, 2019
node.d.ts Add license headers to dependencies Jan 5, 2018

README.md

PlayFab SDK Generator README

1. Overview:

This is an internal PlayFab tool, but not necessarily a "product". Feel free to use it as you need, but please note: We expect SdkGenerator users to be more tolerant of breaking changes and conflicts than we would with our SDKs.

This is a node.js based program that takes a json description of the PlayFab API and uses it to generate out all the different SDKs that must be kept up to date. This project also contains the sources for all PlayFab SDKs on all platforms. If you want to make a change in an SDK, this is where the change has to go.

2. Prerequisites:

  1. Any recent MS-Windows Operating System
  2. You must have Node.js installed: http://nodejs.org/
    • The location of node.exe must be in your PATH environment variable. Default: C:\Program Files (x86)\nodejs\
    • Highly suggested that you install Node.js tools for Visual Studio: https://beta.visualstudio.com/vs/node-js/
  3. SdkGenerator requires several PlayFab repositories, cloned to your local machine, as sibiling folders to SdkGenerator.
    • <parent-folder>/SdkGenerator = https://github.com/PlayFab/SDKGenerator (you're looking at it)
    • <parent-folder>/sdks/<targetSDK> - For every sdk you want to generate, you should git-clone the PlayFab repository for that target into the "sdks" subfolder first. In many cases, there are required files in the repo which are not generated
  4. [Optional] SdkGenerator can be configured to read from other PlayFab repositories, cloned to your local machine, as sibiling folders to SdkGenerator.

3. Usage Instructions:

If you have installed Node.js tools, then you can build any existing SDK from the Visual Studio solution: https://github.com/PlayFab/SDKGenerator/blob/master/SDKGenerator.sln

  • Open the solution
  • Set the Project Configuration to match the sdk you wish to build
  • Build -> Build Solution

There are many prebuilt scripts which can build each SDK automatically: https://github.com/PlayFab/SDKGenerator/tree/master/SDKBuildScripts

  • Find the script that matches the SDK you wish to build (EX unity_build.bat)
  • Double-click that file

If you wish to build an new sdk, you may need to build a new .bat file using the instructions in the next section.

Finally, to manually invoke the generator, open a command line at the root of the project and type:

node generate.js
    <targetName>=<targetOutputPath>
    -(apiSpecPath|apiSpecGitUrl|apiSpecPfUrl)[ (<apiSpecPath>|<apiSpecGitUrl>|<apiSpecPfUrl>)]
    [ -flags <flag>[ <flag> ...]]

You must supply a list of targets to generate, and the directory to generate them to. Each target takes the form:

<targetName>=<targetOutputLocation>

Where <targetName> is one of the supported SDK targets, and <targetOutputLocation> is a path to a directory to generate the SDK in. Note: Make sure there are no spaces between the arguments and the equals sign.

API-Spec Location:

  • You may optionally define exactly one location to read Api-Spec information
    • -apiSpecPath []
      • If the "-apiSpecPath" switch is defined without a path, this defaults to "../API_Specs" (relative path, sibling to SdkGenerator repo location)
    • -apiSpecGitUrl []
    • -apiSpecPfUrl []

Flags are optional, and can be used to generate console apis.

Example:

node generate.js unity-v2=../sdks/UnitySDK

4. Building a new SDK

Setting up a new target in the SdkGenerator is fairly simple. This example has been added to the SdkGenerator for reference: https://github.com/PlayFab/SDKGenerator/tree/master/targets/newTarget

  • Add a new subfolder in SdkGenerator/Targets
  • Add a "make.js" file to your new target
    • Implement makeClientAPI2, makeServerAPI, and/or makeCombinedAPI in the file, as shown in the NewTarget Example
    • Optionally, you may use template files and source files, as described in the NewTarget example.
  • Add a new bat-file to generate your sdk in SdkGenerator/SDKBuildScripts

PlayFab somtimes accepts submissions for new SDKs. This process is extensive, and it has to be integrated with our automated build and testing system. For more information contact us on the forums.

5. Troubleshooting:

For a complete list of available APIs, check out the online documentation.

Contact Us

We love to hear from our developer community! Do you have ideas on how we can make our products and services better?

Our Developer Success Team can assist with answering any questions as well as process any feedback you have about PlayFab services.

Forums, Support and Knowledge Base

6. Copyright and Licensing Information:

Apache License -- Version 2.0, January 2004 http://www.apache.org/licenses/ Full details available within the LICENSE file.

You can’t perform that action at this time.