Declare XSAppIconAssets in the app manifest so actool receives --app-icon and the bundle carries CFBundleIconName, and always pass both Xcode version placeholders to the ReplayKit extension so an empty build number cannot drop CFBundleVersion and fail installd.
54 lines
2.1 KiB
Bash
Executable File
54 lines
2.1 KiB
Bash
Executable File
#!/bin/zsh
|
|
set -euo pipefail
|
|
|
|
configuration="${1:?configuration is required}"
|
|
sdk="${2:?sdk is required}"
|
|
architecture="${3:?architecture is required}"
|
|
output="${4:?output directory is required}"
|
|
script_dir="${0:A:h}"
|
|
project="$script_dir/../../../native/apple/broadcast/VoiceCatBroadcast.xcodeproj"
|
|
|
|
mkdir -p "$output"
|
|
signing=()
|
|
# Both keys must always be set. The extension manifest expands these placeholders, and an
|
|
# empty CURRENT_PROJECT_VERSION drops CFBundleVersion, which installd rejects. The defaults
|
|
# match ApplicationDisplayVersion/ApplicationVersion in VoiceCat.iOS.csproj so that the host
|
|
# and extension versions agree when no release build number is supplied.
|
|
versioning=(
|
|
MARKETING_VERSION="${VOICECAT_DISPLAY_VERSION:-0.0.1}"
|
|
CURRENT_PROJECT_VERSION="${VOICECAT_BUILD_NUMBER:-1}"
|
|
)
|
|
if [[ "$sdk" == "iphonesimulator" ]]; then
|
|
signing+=(CODE_SIGNING_ALLOWED=NO)
|
|
elif [[ -n "${VOICECAT_BROADCAST_CODESIGN_KEY:-}" && -n "${VOICECAT_BROADCAST_CODESIGN_PROVISION:-}" ]]; then
|
|
signing+=(
|
|
DEVELOPMENT_TEAM="${VOICECAT_DEVELOPMENT_TEAM:?VOICECAT_DEVELOPMENT_TEAM is required for distribution signing}"
|
|
CODE_SIGN_STYLE=Manual
|
|
CODE_SIGN_IDENTITY="$VOICECAT_BROADCAST_CODESIGN_KEY"
|
|
PROVISIONING_PROFILE_SPECIFIER="$VOICECAT_BROADCAST_CODESIGN_PROVISION"
|
|
)
|
|
elif [[ -n "${VOICECAT_DEVELOPMENT_TEAM:-}" ]]; then
|
|
signing+=(DEVELOPMENT_TEAM="$VOICECAT_DEVELOPMENT_TEAM" CODE_SIGN_STYLE=Automatic)
|
|
if [[ "${VOICECAT_ALLOW_PROVISIONING_UPDATES:-}" == "1" ]]; then
|
|
signing=(-allowProvisioningUpdates "${signing[@]}")
|
|
fi
|
|
fi
|
|
xcodebuild \
|
|
-project "$project" \
|
|
-scheme VoiceCatBroadcast \
|
|
-configuration "$configuration" \
|
|
-sdk "$sdk" \
|
|
-arch "$architecture" \
|
|
-derivedDataPath "$output/derived" \
|
|
CONFIGURATION_BUILD_DIR="$output" \
|
|
"${versioning[@]}" \
|
|
"${signing[@]}" \
|
|
build
|
|
|
|
xcent=$(find "$output/derived" -name 'VoiceCatBroadcast.appex.xcent' -print -quit)
|
|
if [[ -f "$xcent" ]]; then
|
|
cp "$xcent" "$output/VoiceCatBroadcast.xcent"
|
|
else
|
|
cp "$script_dir/../../../native/apple/broadcast/VoiceCatBroadcast.entitlements" "$output/VoiceCatBroadcast.xcent"
|
|
fi
|