Troubleshooting (iOS)

Learn how to prepare a reproduction app and submit it with a support ticket.


After reading our documentation, reviewing our code samples, and examining our demo and best practice apps, you may still be unable to resolve an app issue. At this point, you should submit a support ticket that links to a native project that builds a reproduction app, which JWP's Support Team can access.

Reproduction apps reduce the time necessary to resolve your issue in several ways:

  • Clearly shows your implementation using our framework
  • Eliminates non-essential code and project settings that can mask an issue
  • Enables the Support Team to suggest code revisions


Create a reproduction app

When submitting a support ticket for an iOS SDK issue, follow these steps:

  1. Identify the BestPracticeApps project most relevant to your issue.
  2. Clone the project to your local machine.
  3. From Xcode, open the project.
  4. In the Podfile, update the SDK version to the relevant specific version, such as pod 'JWPlayerKit', '4.7.0'.

    πŸ’‘

    If the specific version does not matter, use the following steps to run the most updated version:

    • Open a command-line prompt.
    • Navigate to the project directory.
    • Run pod repo update.
    • Run pod update.
  5. Add your license key to the AppDelegate file inside the application:didFinishLaunching:withOptions before returning true.
    func application(_ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool {
        JWPlayerKitLicense.setLicenseKey("YOUR_KEY_HERE") 
        return true
    }
    
    [- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        [JWPlayerKitLicense setLicenseKey:@"YOUR_KEY_HERE"]; 
        return YES; 
    }
    
  6. Update the player configuration to match the setup that you want the Support team to troubleshoot. The following table lists a few common use cases and relevant configuration updates.
    Setup Description
    Advertising Add the JWAdvertisingConfig object.

    Refer to our advertising documentation if you need assistance.
    Callbacks
    1. Set the delegate property of the player to self.
    2. Set the SwiftViewController class to adopt the JWPlayerDelegate protocol.
    HLS Streams
    (DVR-enabled, Live Event streams, video on-demand)
    Replace the default content URL with your test stream.

  1. Save and zip your project with your commits.

    • Press βŒ₯ + ⌘ + C to open the commit window.
    • Select the Commit button to commit your changes to the git record.
    • Close the project.
    • Zip the entire project.

      πŸ“˜

      It is safe to delete the Pods folder to save space. This folder will be recreated by the Support team when $ pod install is run.

  2. Upload the zipped project to your server at a publicly-accessible link. If you are unable to upload the zipped project to a server, you can attach the .zip file in your email response to the Support email response you receive after you submit a support ticket.



Submit a support ticket

  1. Initiate submitting a support case. If you are not already logged into your JWP dashboard, you will be prompted to log in.

  2. Click I have a question for the technical support team.

  3. From the Category drop-down menu, select SDKs - I need help using the Android or iOS SDK.

  4. Click the iOS check box.

  5. Enter a Subject for your issue.

  6. Copy following content. Paste it into the Description field. Provide as much detail as possible.

    ENVIRONMENTAL CONDITIONS
    ====
    - To your knowledge, list all impacted versions of JWP SDK for iOS (not of demo app):
    - Last issue-free version of JWP SDK for iOS
    - iOS Version(s):
    - Device/simulator model(s):
    
    
    ISSUE REPRODUCTION & IMPACT
    ====
    - Expected behavior:
    - Actual behavior:
    - Frequency of the actual behavior:
    - Provide detailed, step-by-step directions to reproduce the actual behavior:
    - Link to a screenshot or screen capture of the observed behavior (particularly helpful in UI and UX issues):
    - Log and stack traces, if necessary:
    - What is the impact of the issue that you have observed?:
    
  7. In the Reproduction page page field, enter the URL of the .zip file that you uploaded to your server. If you are unable to upload the zipped project to a server, attach the .zip file in your email response to the Support email response you receive after you submit a support ticket.

  8. If you have screenshots, upload them to Dropbox, Google Drive, or Imgur. In the Link to screenshot field, enter the URL to the uploaded screenshots.

  9. Enter an Additional Email to have someone else in your organization copied on case communications.

  10. Answer the remaining questions.

  11. Click Submit.