xcode add embedded binary with buildscript
Thank you @RicardoDuarte; There is my script for both iPhone & simulator.
Example_To=$BUILT_PRODUCTS_DIR"/"$PRODUCT_NAME".app/Frameworks/Example.framework/"
Example_From=$PROJECT_DIR"/../out/Build/Products/"$CONFIGURATION$EFFECTIVE_PLATFORM_NAME"/Example.framework"
mkdir -p $BUILT_PRODUCTS_DIR"/"$PRODUCT_NAME".app/Frameworks"
cp -Rv $Example_From $Example_To
if [[ $PLATFORM_NAME == 'iphoneos' ]]; then
CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then
CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}"
fi
codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" $Example_To
fi
I also added path to framework
$(PROJECT_DIR)/../out/Build/Products/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
to "Framework Search Paths" and "Header Search Paths", your's path and framework name can be different of course.
It turns out that the embedded binary stage is nothing more than xcode copying the .framework into the an target bundle Framework folder so to achieve my final intentions of creating a script that adds a framework completely manually.
Which resulted in two scripts, one that is added right after target dependencies in build phases, must be before compile sources:
if [[ $PLATFORM_NAME == 'iphoneos' ]]; then
SOME_FRAMEWORK=$BUILT_PRODUCTS_DIR"/"$PRODUCT_NAME".app/Frameworks/someframework.framework/"
export LIBRARY_SEARCH_PATHS=$LIBRARY_SEARCH_PATHS" "$SDKROOT"/someframework.framework"
fi
and Another script and link binary with Libraries, where i copy and sign the framework.
if [[ $PLATFORM_NAME == 'iphoneos' ]]; then
MY_FRAMEWORK=$BUILT_PRODUCTS_DIR"/"$PRODUCT_NAME".app/Frameworks/someframework.framework/"
mkdir -p $BUILT_PRODUCTS_DIR"/"$PRODUCT_NAME".app/Frameworks"
cp -Rv $PROJECT_DIR"/someframework.framework" $MY_FRAMEWORK
CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then
CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}"
fi
codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" $MY_FRAMEWORK"/<binary of framework>"
fi
this is just a quick rough script i created quickly to achieve this. I only allow this to happen i target is a device as this was my original intentions. but it can be removed.