| #!/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 |