Skip to main content
Version: v4

Publishing App on App Store

Image

This guide helps you to push and publish your App on iTunes.

If you want to submit your app to the app store, you have to cut off the simulator related codebase from the framework.

Go under the Project Targets --> Build Phases --> Click on [+] Button --> New Run Script Phase.

Image

Then, add the below script in the new Run Script.

If you are using Xcode 11.4 then please use the below script

# This script loops through the frameworks embedded in the application 
# and removes unused architectures.
find "${TARGET_BUILD_DIR}_${WRAPPER_NAME}" -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"
for arch in $(lipo -archs $FRAMEWORK_EXECUTABLE_PATH); do
if ! printf '%s\n' ${ARCHS[@]} | egrep -q "^$arch$"; then
lipo -remove $arch "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH"
fi
done
done

If you are using Xcode 11.5 or higher then please use the below script

APP_PATH="${TARGET_BUILD_DIR}_${WRAPPER_NAME}"

# remove unused architectures from embedded frameworks
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 above scripts will remove all the unnecessary slices from the framework, so you'll be able to submit your app via iTunesConnect, without any issues.

Warning

If you are pushing your App on iTunes with the beta version of CometChat SDK then you need to the value of CFBundleShortVersionString by opening the CometChatSDK.framework in the finder, open the** info.plist **file and set the value of CFBundleShortVersionString by removing the beta word from the version and then try compiling your App Project.