chore: Initial clean commit
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
This commit is contained in:
107
handle_bitcode.sh
Executable file
107
handle_bitcode.sh
Executable file
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to check if a binary contains bitcode
|
||||
check_bitcode() {
|
||||
local binary_path=$1
|
||||
if otool -l "$binary_path" | grep -q __LLVM; then
|
||||
echo "$binary_path contains bitcode."
|
||||
echo "$binary_path" >> bitcode_frameworks.txt
|
||||
else
|
||||
echo "$binary_path does not contain bitcode."
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to strip bitcode from a binary
|
||||
strip_bitcode() {
|
||||
local binary_path=$1
|
||||
local output_path="${binary_path}_stripped"
|
||||
xcrun bitcode_strip "$binary_path" -r -o "$output_path"
|
||||
echo "Stripped bitcode from $binary_path and saved to $output_path"
|
||||
}
|
||||
|
||||
# Function to replace original binary with the stripped version
|
||||
replace_framework() {
|
||||
local original_path=$1
|
||||
local stripped_path="${original_path}_stripped"
|
||||
|
||||
if [ -f "$stripped_path" ]; then
|
||||
echo "Replacing $original_path with $stripped_path..."
|
||||
rm "$original_path"
|
||||
mv "$stripped_path" "$original_path"
|
||||
echo "Replaced $original_path successfully."
|
||||
else
|
||||
echo "Stripped binary $stripped_path not found. Skipping."
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to disable Bitcode in the Xcode project
|
||||
disable_bitcode_in_project() {
|
||||
# Automatically detect the Xcode project file
|
||||
local xcodeproj_file=$(find . -name "*.xcodeproj" | head -n 1)
|
||||
if [ -z "$xcodeproj_file" ]; then
|
||||
echo "Xcode project not found. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
local xcodeproj_name=$(basename "$xcodeproj_file" .xcodeproj)
|
||||
|
||||
echo "Disabling Bitcode in Xcode project $xcodeproj_name..."
|
||||
/usr/libexec/PlistBuddy -c "Set :buildSettings:ENABLE_BITCODE NO" "$xcodeproj_file/project.pbxproj"
|
||||
|
||||
# Clean and rebuild the Xcode project
|
||||
echo "Cleaning the build folder..."
|
||||
xcodebuild clean -workspace "$xcodeproj_name.xcworkspace" -scheme "$xcodeproj_name" -configuration Debug
|
||||
|
||||
echo "Building the project..."
|
||||
xcodebuild -workspace "$xcodeproj_name.xcworkspace" -scheme "$xcodeproj_name" -configuration Debug
|
||||
|
||||
echo "Process completed successfully!"
|
||||
}
|
||||
|
||||
# Step 1: Check frameworks for Bitcode
|
||||
echo "Checking frameworks for Bitcode..."
|
||||
|
||||
# Remove old bitcode_frameworks.txt if it exists
|
||||
rm -f bitcode_frameworks.txt
|
||||
|
||||
# Check frameworks in Pods and the ios directory
|
||||
if [ -d "Pods" ]; then
|
||||
echo "Checking frameworks in Pods..."
|
||||
find Pods -name '*.framework' -type d | while read -r framework; do
|
||||
binary_name=$(basename "$framework" .framework)
|
||||
binary_path="$framework/$binary_name"
|
||||
if [ -f "$binary_path" ]; then
|
||||
check_bitcode "$binary_path"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Checking frameworks in the ios directory..."
|
||||
find . -name '*.framework' -type d | while read -r framework; do
|
||||
binary_name=$(basename "$framework" .framework)
|
||||
binary_path="$framework/$binary_name"
|
||||
if [ -f "$binary_path" ]; then
|
||||
check_bitcode "$binary_path"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Bitcode check completed. Frameworks containing bitcode are listed in bitcode_frameworks.txt."
|
||||
|
||||
# Step 2: Strip Bitcode from all frameworks that contain it
|
||||
if [ -f bitcode_frameworks.txt ]; then
|
||||
echo "Stripping bitcode from frameworks..."
|
||||
while read -r binary_path; do
|
||||
strip_bitcode "$binary_path"
|
||||
done < bitcode_frameworks.txt
|
||||
else
|
||||
echo "No frameworks found containing bitcode. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Step 3: Replace original frameworks with stripped versions
|
||||
echo "Replacing original frameworks with stripped versions..."
|
||||
while read -r binary_path; do
|
||||
replace_framework "$binary_path"
|
||||
done < bitcode_frameworks.txt
|
||||
|
||||
# Step 4: Disable Bitcode in the Xcode project and rebuild
|
||||
disable_bitcode_in_project
|
Reference in New Issue
Block a user