84 lines
3.3 KiB
Bash
84 lines
3.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Script to update code signing settings in iOS project for CI environment
|
||
|
# Updates project.pbxproj to use Apple Distribution certificate and team settings
|
||
|
|
||
|
set -e # Exit immediately if a command exits with a non-zero status
|
||
|
|
||
|
# Define target values
|
||
|
TARGET_IDENTITY="Apple Distribution: TOEVERYTHING PTE. LTD. (73YMMDVT2M)"
|
||
|
TARGET_SIGN_STYLE="Manual"
|
||
|
TARGET_TEAM="73YMMDVT2M"
|
||
|
TARGET_PROVISIONING_PROFILE="AppStore app.affine.pro"
|
||
|
|
||
|
# Get script directory and build absolute path to project file
|
||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
|
PBXPROJ_FILE="$SCRIPT_DIR/App/App.xcodeproj/project.pbxproj"
|
||
|
|
||
|
# Check if file exists
|
||
|
if [ ! -f "$PBXPROJ_FILE" ]; then
|
||
|
echo "❌ Error: project.pbxproj file not found: $PBXPROJ_FILE"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo "🔍 Found project file: $PBXPROJ_FILE"
|
||
|
|
||
|
# Display current settings
|
||
|
echo "📋 Current code signing settings:"
|
||
|
echo "--- CODE_SIGN_IDENTITY ---"
|
||
|
grep -n "CODE_SIGN_IDENTITY" "$PBXPROJ_FILE" || echo "No CODE_SIGN_IDENTITY settings found"
|
||
|
echo "--- CODE_SIGN_STYLE ---"
|
||
|
grep -n "CODE_SIGN_STYLE" "$PBXPROJ_FILE" || echo "No CODE_SIGN_STYLE settings found"
|
||
|
echo "--- DEVELOPMENT_TEAM ---"
|
||
|
grep -n "DEVELOPMENT_TEAM" "$PBXPROJ_FILE" || echo "No DEVELOPMENT_TEAM settings found"
|
||
|
echo "--- PROVISIONING_PROFILE_SPECIFIER ---"
|
||
|
grep -n "PROVISIONING_PROFILE_SPECIFIER" "$PBXPROJ_FILE" || echo "No PROVISIONING_PROFILE_SPECIFIER settings found"
|
||
|
|
||
|
# Replace CODE_SIGN_IDENTITY settings
|
||
|
echo ""
|
||
|
echo "🔄 Replacing CODE_SIGN_IDENTITY..."
|
||
|
sed -i.tmp 's/CODE_SIGN_IDENTITY = "[^"]*";/CODE_SIGN_IDENTITY = "'"$TARGET_IDENTITY"'";/g' "$PBXPROJ_FILE"
|
||
|
|
||
|
# Replace CODE_SIGN_STYLE settings
|
||
|
echo "🔄 Replacing CODE_SIGN_STYLE..."
|
||
|
sed -i.tmp 's/CODE_SIGN_STYLE = [^;]*;/CODE_SIGN_STYLE = '"$TARGET_SIGN_STYLE"';/g' "$PBXPROJ_FILE"
|
||
|
|
||
|
# Replace DEVELOPMENT_TEAM settings
|
||
|
echo "🔄 Replacing DEVELOPMENT_TEAM..."
|
||
|
sed -i.tmp 's/DEVELOPMENT_TEAM = [^;]*;/DEVELOPMENT_TEAM = '"$TARGET_TEAM"';/g' "$PBXPROJ_FILE"
|
||
|
|
||
|
# Replace PROVISIONING_PROFILE_SPECIFIER settings
|
||
|
echo "🔄 Replacing PROVISIONING_PROFILE_SPECIFIER..."
|
||
|
sed -i.tmp 's/PROVISIONING_PROFILE_SPECIFIER = "[^"]*";/PROVISIONING_PROFILE_SPECIFIER = "'"$TARGET_PROVISIONING_PROFILE"'";/g' "$PBXPROJ_FILE"
|
||
|
|
||
|
# Remove temporary file
|
||
|
rm -f "${PBXPROJ_FILE}.tmp"
|
||
|
|
||
|
# Verify replacement results
|
||
|
echo ""
|
||
|
echo "✅ Replacement completed! New code signing settings:"
|
||
|
echo "--- CODE_SIGN_IDENTITY ---"
|
||
|
grep -n "CODE_SIGN_IDENTITY" "$PBXPROJ_FILE"
|
||
|
echo "--- CODE_SIGN_STYLE ---"
|
||
|
grep -n "CODE_SIGN_STYLE" "$PBXPROJ_FILE"
|
||
|
echo "--- DEVELOPMENT_TEAM ---"
|
||
|
grep -n "DEVELOPMENT_TEAM" "$PBXPROJ_FILE"
|
||
|
echo "--- PROVISIONING_PROFILE_SPECIFIER ---"
|
||
|
grep -n "PROVISIONING_PROFILE_SPECIFIER" "$PBXPROJ_FILE"
|
||
|
|
||
|
# Count replacements
|
||
|
IDENTITY_COUNT=$(grep -c "CODE_SIGN_IDENTITY.*$TARGET_IDENTITY" "$PBXPROJ_FILE")
|
||
|
STYLE_COUNT=$(grep -c "CODE_SIGN_STYLE.*$TARGET_SIGN_STYLE" "$PBXPROJ_FILE")
|
||
|
TEAM_COUNT=$(grep -c "DEVELOPMENT_TEAM.*$TARGET_TEAM" "$PBXPROJ_FILE")
|
||
|
PROVISIONING_COUNT=$(grep -c "PROVISIONING_PROFILE_SPECIFIER.*$TARGET_PROVISIONING_PROFILE" "$PBXPROJ_FILE")
|
||
|
|
||
|
echo ""
|
||
|
echo "📊 Replacement summary:"
|
||
|
echo " - CODE_SIGN_IDENTITY: $IDENTITY_COUNT replacements"
|
||
|
echo " - CODE_SIGN_STYLE: $STYLE_COUNT replacements"
|
||
|
echo " - DEVELOPMENT_TEAM: $TEAM_COUNT replacements"
|
||
|
echo " - PROVISIONING_PROFILE_SPECIFIER: $PROVISIONING_COUNT replacements"
|
||
|
|
||
|
echo ""
|
||
|
echo "🎉 Script execution completed successfully!"
|