blob: c0a482973eecfdbc3cd0816c169ea82df1b03a97 [file] [log] [blame] [edit]
set -e
# Removes the `--entitlements path` argument pair from $OTHER_CODE_SIGN_FLAGS to avoid signing the
# extension with entitlements meant for the embedding app.
function filtered_other_code_sign_flags()
{
while [[ $# -gt 0 ]]
do
case $1 in
--entitlements)
shift
shift
;;
*)
echo "$1"
shift
;;
esac
done
}
DESTINATION_PATH=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Extensions/${INPUT_FILE_NAME}
mkdir -p "${DESTINATION_PATH}"
ditto "${BUILT_PRODUCTS_DIR}/${INPUT_FILE_NAME}" "${DESTINATION_PATH}"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier ${PRODUCT_BUNDLE_IDENTIFIER}.${INPUT_FILE_BASE}" "${DESTINATION_PATH}/Info.plist"
if [[ ${INPUT_FILE_BASE} == "WebContentExtension" || ${INPUT_FILE_BASE} == "NetworkingExtension" ]]; then
/usr/libexec/PlistBuddy -c "Add :NSAppTransportSecurity:NSAllowsArbitraryLoads bool true" "${DESTINATION_PATH}/Info.plist"
fi
if [[ ${INPUT_FILE_BASE} == "WebContentExtension" ]]; then
EXTENSION_POINT_ID="com.apple.web-browser-engine.content"
elif [[ ${INPUT_FILE_BASE} == "WebContentCaptivePortalExtension" ]]; then
EXTENSION_POINT_ID="com.apple.web-browser-engine.content"
elif [[ ${INPUT_FILE_BASE} == "WebContentEnhancedSecurityExtension" ]]; then
EXTENSION_POINT_ID="com.apple.web-browser-engine.content"
fi
if [[ -n "${EXTENSION_POINT_ID}" ]]; then
/usr/libexec/PlistBuddy -c "Delete :EXAppExtensionAttributes:EXExtensionPointIdentifier dict" "${DESTINATION_PATH}/Info.plist"
/usr/libexec/PlistBuddy -c "Add :EXAppExtensionAttributes:EXExtensionPointIdentifier string ${EXTENSION_POINT_ID}" "${DESTINATION_PATH}/Info.plist"
fi
if [ -n "${CODE_SIGN_IDENTITY}" ]; then
xcrun codesign --force --preserve-metadata=entitlements --sign "${CODE_SIGN_IDENTITY}" $(filtered_other_code_sign_flags ${OTHER_CODE_SIGN_FLAGS}) "${DESTINATION_PATH}"
fi