140 lines
4.4 KiB
Bash
Executable File
140 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function plistbuddy()
|
|
{
|
|
/usr/libexec/PlistBuddy -c "$*" "${WK_PROCESSED_XCENT_FILE}"
|
|
}
|
|
|
|
# ========================================
|
|
# Mac entitlements
|
|
# ========================================
|
|
|
|
function mac_process_jsc_entitlements()
|
|
{
|
|
plistbuddy Add :com.apple.security.cs.allow-jit bool YES
|
|
if [[ "${WK_USE_RESTRICTED_ENTITLEMENTS}" == YES ]]
|
|
then
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 110000 ))
|
|
then
|
|
plistbuddy Add :com.apple.security.cs.jit-write-allowlist bool YES
|
|
fi
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 120000 ))
|
|
then
|
|
plistbuddy Add :com.apple.private.verified-jit bool YES
|
|
plistbuddy Add :com.apple.security.cs.single-jit bool YES
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function mac_process_testapi_entitlements()
|
|
{
|
|
if [[ "${WK_USE_RESTRICTED_ENTITLEMENTS}" == YES ]]
|
|
then
|
|
plistbuddy Add :com.apple.security.cs.allow-jit bool YES
|
|
plistbuddy Add :com.apple.rootless.storage.JavaScriptCore bool YES
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 110000 ))
|
|
then
|
|
plistbuddy Add :com.apple.security.cs.jit-write-allowlist bool YES
|
|
fi
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 120000 ))
|
|
then
|
|
plistbuddy Add :com.apple.private.verified-jit bool YES
|
|
plistbuddy Add :com.apple.security.cs.single-jit bool YES
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# ========================================
|
|
# macCatalyst entitlements
|
|
# ========================================
|
|
|
|
function maccatalyst_process_jsc_entitlements()
|
|
{
|
|
plistbuddy Add :com.apple.security.cs.allow-jit bool YES
|
|
|
|
if [[ "${WK_USE_RESTRICTED_ENTITLEMENTS}" == YES ]]
|
|
then
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 110000 ))
|
|
then
|
|
plistbuddy Add :com.apple.security.cs.jit-write-allowlist bool YES
|
|
fi
|
|
fi
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 120000 ))
|
|
then
|
|
plistbuddy Add :com.apple.private.verified-jit bool YES
|
|
plistbuddy Add :com.apple.security.cs.single-jit bool YES
|
|
fi
|
|
}
|
|
|
|
function maccatalyst_process_testapi_entitlements()
|
|
{
|
|
plistbuddy Add :com.apple.rootless.storage.JavaScriptCore bool YES
|
|
plistbuddy Add :com.apple.security.cs.allow-jit bool YES
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 110000 ))
|
|
then
|
|
plistbuddy Add :com.apple.security.cs.jit-write-allowlist bool YES
|
|
fi
|
|
|
|
if (( "${TARGET_MAC_OS_X_VERSION_MAJOR}" >= 120000 ))
|
|
then
|
|
plistbuddy Add :com.apple.private.verified-jit bool YES
|
|
plistbuddy Add :com.apple.security.cs.single-jit bool YES
|
|
fi
|
|
}
|
|
|
|
# ========================================
|
|
# iOS Family entitlements
|
|
# ========================================
|
|
|
|
function ios_family_process_jsc_entitlements()
|
|
{
|
|
plistbuddy Add :com.apple.private.verified-jit bool YES
|
|
plistbuddy Add :dynamic-codesigning bool YES
|
|
}
|
|
|
|
function ios_family_process_testapi_entitlements()
|
|
{
|
|
ios_family_process_jsc_entitlements
|
|
}
|
|
|
|
rm -f "${WK_PROCESSED_XCENT_FILE}"
|
|
plistbuddy Clear dict
|
|
|
|
if [[ "${WK_PLATFORM_NAME}" =~ .*simulator ]]
|
|
then
|
|
[[ "${RC_XBS}" != YES ]] && plistbuddy Add :com.apple.security.get-task-allow bool YES
|
|
elif [[ "${WK_PLATFORM_NAME}" == macosx ]]
|
|
then
|
|
[[ "${RC_XBS}" != YES ]] && plistbuddy Add :com.apple.security.get-task-allow bool YES
|
|
|
|
if [[ "${PRODUCT_NAME}" == jsc ]]; then mac_process_jsc_entitlements
|
|
elif [[ "${PRODUCT_NAME}" == testapi ]]; then mac_process_testapi_entitlements
|
|
else echo "Unsupported/unknown product: ${PRODUCT_NAME}"
|
|
fi
|
|
elif [[ "${WK_PLATFORM_NAME}" == maccatalyst || "${WK_PLATFORM_NAME}" == iosmac ]]
|
|
then
|
|
[[ "${RC_XBS}" != YES && "${PRODUCT_NAME}" == jsc ]] && plistbuddy Add :com.apple.security.get-task-allow bool YES
|
|
|
|
if [[ "${PRODUCT_NAME}" == jsc ]]; then maccatalyst_process_jsc_entitlements
|
|
elif [[ "${PRODUCT_NAME}" == testapi ]]; then maccatalyst_process_testapi_entitlements
|
|
else echo "Unsupported/unknown product: ${PRODUCT_NAME}"
|
|
fi
|
|
elif [[ "${WK_PLATFORM_NAME}" == iphoneos ||
|
|
"${WK_PLATFORM_NAME}" == appletvos ||
|
|
"${WK_PLATFORM_NAME}" == watchos ]]
|
|
then
|
|
if [[ "${PRODUCT_NAME}" == jsc ]]; then ios_family_process_jsc_entitlements
|
|
elif [[ "${PRODUCT_NAME}" == testapi ]]; then ios_family_process_testapi_entitlements
|
|
else echo "Unsupported/unknown product: ${PRODUCT_NAME}"
|
|
fi
|
|
else
|
|
echo "Unsupported/unknown platform: ${WK_PLATFORM_NAME}"
|
|
fi
|
|
|
|
exit 0
|