Preparing for Store Submission

Before you submit your Tizen application to the store, you’ll need a Tizen Package ID and other information that uniquely identifies your application.

Generate a Tizen Package ID with Tizen Studio

  1. Open Tizen Studio.
  2. Select File > New > Tizen Project.
  3. Select Template and click Next.
  4. Click TV and ensure that you select TV v4.0 or newer from the drop-down, then click Next.
  5. In the next window, Web Application is the only option (as it’s the only supported platform for TV development). Click Next.
  6. A prompt appears requesting a Project Name and Package ID. Leave these with their default values.
  7. Click Finish.
  8. If it’s not already visible in your editor, open your project’s config.xml file. You can do this by expanding the application in the Project Explorer on the left, and opening config.xmlfrom there.

Copy the Generated Package ID to Your Project

  1. Navigate to the Tizen tab near the top of the window and look for the field labelled ID under the Application header. This field has a Generate button to the right of it.
  2. The Application ID contains the randomly generated Package ID you need, followed by a period and the project name. Here’s an example Tizen application ID:

    <tizen:application id="1234abcDEF.projectname"
      package="1234abcDEF"
    
  3. Switch to the Source tab to view the raw XML for your sample project. Copy the 10-character Package ID value (everything to the left of the period in the Application ID). Using the example above, the value to copy is 1234abcDEF(without .projectname).
  4. Open your project’s CMakeLists.txt file and replace the default value in YI_PACKAGE_ID (FmHXPQSBwZ) with the copied Package ID from the sample project. If the YI_PACKAGE_ID line doesn’t exist in your CMakeLists.txt file, add it:

    set(YI_PACKAGE_ID "<your copied package id>" CACHE STRING "The Tizen application id override." FORCE)

Failing to replace the Package ID value results in a duplicate Application ID error when you submit it to the Tizen store.

If you prefer not to manually override the value in CMakeLists.txt, you can instead do one of the following:

  • Add a cmake/Modules/tizen-nacl/YiConfigurePackagingForPlatform.cmake file to your project. Then include the original CMake file by adding this line:

    include("${YouiEngine_DIR}/cmake/Modules/tizen-nacl/YiConfigurePackagingForPlatform.cmake")

    followed by adding the line

    set(YI_PACKAGE_ID "<your copied package id>" CACHE STRING "The Tizen application id override." FORCE)

  • Use the command line argument -d YI_PACKAGE_ID=<your copied package ID>when using youi-tv generate or youi-tv build. You.i TV generally recommends that you use one of the other described methods.

Set Other Application Metadata

You.i Platform’s CMakeLists.txt file is where you can set variables and metadata for your application. During the build process, these values are assembled into the final manifest file (config.xml) for your Tizen application.

Edit the following values in your project’s CMakeLists.txt file:

  • YI_AUTHOR_NAME: Provide your Tizen application author name.
  • YI_DESCRIPTION: Enter your application description.
  • YI_COMPANY_URL: Your company’s website URL.

You may need to edit your CMakeLists.txt file to add the placeholders for this metadata:

set(YI_SIGNING_IDENTITY "${YI_SIGNING_IDENTITY}" CACHE STRING "Specifies the signing identity to use when packaging the wgt (If not specified the active identity in Tizen Studio will be used.)")
set(YI_AUTHOR_NAME "You.i TV" CACHE STRING "The name of the company that is publishing the widget.")
set(YI_COMPANY_URL "http://your_domain" CACHE STRING "The company URL that will be inserted into the 'config.xml' file.")
set(YI_DESCRIPTION "Description of your widget" CACHE STRING "The description of the widget.")
set(YI_PACKAGE_ID "FmHXPQSBwZ" CACHE STRING "The ID value of the package. This gets combined in 'config.xml' with the YI_APP_NAME to make the application ID.")
set(YI_SMART_HUB_PREVIEW_URL "" CACHE STRING "Set the remote JSON file URL for Smart Hub public preview.")
set(YI_PERMISSIONS "PPB_FileIO,PPB_NetworkMonitor,PPB_File_IO_Private,PPB_FileRef,PPB_FileSystem,PPB_RemovableStorage_Dev" CACHE STRING "The permissions that should be added to the generated .nmf file during packaging.")

Other Important Things to Note for Store Submission

Before you upload your Tizen application widget to the store, ensure that it has been signed using a production-grade Samsung certificate. Production-grade certificates have the correct metadata, and DUIDs have been whitelisted. For more information on Samsung certificates, see Signing Certificates.

If your widget isn’t signed with your production certificate:

  • Your widget may be rejected automatically if signed using a Tizen certificate.
  • You may not be able to change to a different certificate after your initial upload.
  • You may not be able to whitelist new devices in the existing certificate.
  • You may be required to recreate the store page entry if you do need to change certificates and remove your original application.

When submitting to the store, you’re prompted to input the version of the NaCl Pepper SDK that you used for development. The minimum version of the NaCl Pepper SDK that You.i Platform supports is 47, but the store upload page currently supports a max value of 40. We’ve tested and confirm that you can use the value 40 without issue.

You may also see some error messages related to a URL which references one of the many Tizen privileges, for example:

(http://tizen.org/privilege/appmanager.certificate) After checking, please re-upload.

This indicates that you’re using a privilege in your config.xml file that is not allowed. For further clarification on submission errors, contact Samsung for support.

Once you’ve successfully submitted your application, it’s reviewed by Samsung’s internal testing teams. A series of spreadsheets full of issues that their testing teams find will be reported, typically with each entry accommodated by the TV classes it was found on, along with a description, steps to reproduce, and a video or picture of the issue. Some of these issues may be acceptable, while others may be critical and will cause your application submission to be rejected until these issues are resolved.

If applicable, provide sufficient test accounts for their team to work with, and allocate at least one to two months of additional development time to resolve any critical defects and resubmit your application.