iOS Charting Documentation - SciChart iOS Charts SDK v3.x

Deploying your application to App Store

The following section shows how to publish an application, with manually linked SciChart.framework to AppStore.

Framework linked via Cocoapods

If you are linked SciChart.framework to your app via cocoapods, you don’t need to perform any actions during publishing, as cocoapods handles embeded Universal Libraries for you.

Framework linked manually

There are a lot of third party libraries that provide separate library archives for simulator (i386) and device (armv64 and or armv7). SciChart iOS comes as a fat library, so when you’re using it, you can test your application wether on device or on simulator. But during Uploading to App Store stage your application might be rejected because of Simulator slice in SciChart framework:

Code Signing failed

To fix it you have to run special script, which removes Simulator slice from frameworks. This can be done just in a few steps:

  1. Go to the build phases of your project
  2. Press the + button in a top left corner, and choose New Run Script Phase option. This will add an additional step which runs a shell script to your build flow.

NOTE: Please note that the Run Script step should be placed after Embed Frameworks. If it will be placed before - the simulator slice will not be removed from SciChart.framework.

  1. Paste the following code into a this step:

    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
    find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
    do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    EXTRACTED_ARCHS=()
    for ARCH in $ARCHS
    do
    echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
    lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
    EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done
    echo "Merging extracted architectures: ${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"
    echo "Replacing original executable with thinned version"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
    done
    
  2. Re-archive your app now, and try to upload to AppStore (the error should be fixed now).

Troubleshooting Licensing & Activation

If you have trouble with licensing or activation, please contact us and we will do our best to help. We aim to answer all support incidents within 1 business day.