iOS SDK Integration

Our iOS SDK support iOS 8.0 or higher and does not support bitcode which is a new feature of iOS9.

XCode

1. Download and unzip our SDK (also contains a sample iOS XCode project showing how to integrate our Offer Wall).

2. Drag AdscendMedia.framework file into your XCode project under embedded binaries

3. Add our header to the beginning of the file you are working with

#import <AdscendMedia/AdscendMedia.h>

Before App Submission

The AdscendMedia.framework has i386 or x86_64 code for the XCode simulator that cannot be embedded in the app that is submitted to the app store. To successfully submit your app to the app store you will need to strip out any non-ARM code from the app, otherwise you will receive an "unsupported architectures" error upon submission. In order to do that go to "Build Phases" of your app target in Xcode, add a "New Run Script Phase", copy the script below and paste it there. When you archive your app this script will run and strip the unsupported architectures out of all embedded frameworks in the project.


The size of stripped AdscendMedia.framework is only 1.7MB

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
This is how it would look like in Xcode

Disabling App Transport Security

1. In your app target, click on "Info" at the top, then right-click on the list and select "Add Row"

2. In the row that appears, type "NSAppTransportSecurity", and change the type to "Dictionary"

3. Expand that new "NSAppTransportSecurity" key (arrow next to name should point down), right-click that key and select "Add Row"; new row should be a child of the "NSAppTransportSecurity" key

4. Name that new child row "NSAllowsArbitraryLoads"; set the type to "Boolean", and set it's value to "YES"


The end result would be like this:


Need Help with Intergration?

If you have any questions about integrating our SDK into your project, don’t hesitate to reach out to us at :

SDKsupport@adscendmedia.com