1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#!/bin/bash
set -e
function plistbuddy()
{
/usr/libexec/PlistBuddy -c "$*" "${WK_PROCESSED_XCENT_FILE}"
}
function plistbuddy_base()
{
if [[ "${WK_PLATFORM_NAME}" =~ .*simulator ]]
then
/usr/libexec/PlistBuddy -c "$*" "${WK_PROCESSED_SIMULATOR_XCENT_FILE}"
else
plistbuddy "$*"
fi
}
# ========================================
# Common entitlements
# ========================================
process_base_testwebkitapi_entitlements()
{
if [[ "${CONFIGURATION}" != Production ]]
then
plistbuddy_base Add :com.apple.security.get-task-allow bool YES
fi
}
process_restricted_testwebkitapi_entitlements()
{
plistbuddy Add :keychain-access-groups array
plistbuddy Add :keychain-access-groups:0 string com.apple.TestWebKitAPIAlternate
plistbuddy Add :keychain-access-groups:1 string com.apple.TestWebKitAPI
plistbuddy Add :com.apple.private.webkit.adattributiond.testing bool YES
plistbuddy Add :com.apple.private.webkit.webpush bool YES
plistbuddy Add :com.apple.private.webkit.webpush.inject bool YES
}
# ========================================
# Mac entitlements
# ========================================
function process_mac_testwebkitapi_entitlements()
{
process_base_testwebkitapi_entitlements
plistbuddy Add :com.apple.security.temporary-exception.sbpl array
plistbuddy Add :com.apple.security.temporary-exception.sbpl:0 string '(allow mach-issue-extension (require-all (extension-class \"com.apple.webkit.extension.mach\")))'
plistbuddy Add :com.apple.security.temporary-exception.sbpl:1 string '(allow iokit-issue-extension (require-all (extension-class \"com.apple.webkit.extension.iokit\")))'
if [[ "${WK_USE_RESTRICTED_ENTITLEMENTS}" == YES ]]
then
process_restricted_testwebkitapi_entitlements
plistbuddy Add :com.apple.hid.manager.user-access-device bool YES
plistbuddy Add :com.apple.private.hid.client.event-filter bool YES
fi
}
# ========================================
# iOS Family entitlements
# ========================================
function process_ios_family_testwebkitapi_entitlements()
{
process_base_testwebkitapi_entitlements
process_restricted_testwebkitapi_entitlements
plistbuddy Add :com.apple.developer.WebKit.ServiceWorkers bool YES
plistbuddy Add :com.apple.Pasteboard.paste-unchecked bool YES
plistbuddy Add :com.apple.private.xpc.launchd.job-manager string TestWebKitAPI
plistbuddy Add :com.apple.CommCenter.fine-grained array
plistbuddy Add :com.apple.CommCenter.fine-grained:0 string public-cellular-plan
if [[ "${PRODUCT_BUNDLE_IDENTIFIER}" == org.webkit.TestWebKitAPI ]]
then
plistbuddy Add :com.apple.developer.web-browser bool YES
plistbuddy Add :com.apple.developer.web-browser-engine.host bool YES
fi
}
plistbuddy Clear dict
plistbuddy_base Clear dict
if [[ "${WK_PLATFORM_NAME}" == macosx || "${WK_PLATFORM_NAME}" == maccatalyst ]]
then
process_mac_testwebkitapi_entitlements
elif [[ "${WK_IS_COCOA_TOUCH}" == YES ]]
then
process_ios_family_testwebkitapi_entitlements
else
echo "Unsupported/unknown platform: ${WK_PLATFORM_NAME}"
exit 1
fi
exit 0
|