#!/bin/bash # This script automates the process of building an Xcode project and creating an IPA file. SHELL_DIR=$(dirname $0) echo "change dir to $SHELL_DIR" cd "$SHELL_DIR" # 获取项目相关参数 if [ -f ./project_env.sh ]; then source ./project_env.sh echo "found the project_env file" fi PROJECT_NAME="$1" SCHEME_NAME="$2" PLATFORM="$3" VERSION="$4" PROJECT_PATH="../../Builds/$PLATFORM/$VERSION/$BUILD_NAME/" #PROJECT_NAME="Unity-iPhone" # Replace with your Xcode project name (without the .xcodeproj extension) #SCHEME_NAME="Unity-iPhone" # Replace with your Xcode scheme OUTPUT_DIRECTORY="../" # Replace with the desired output directory for the IPA file # create export Options plist #echo "Generating a new exportOptions.plist file" #sh generate_exportOptions.sh $PACKAGE_NAME $PACKAGE_ID # Define source and destination paths EXPORT_OPTIONS_FILE="./exportOptions.plist" # Copy the file echo "copy export options to $PROJECT_PATH" cp "$EXPORT_OPTIONS_FILE" "$PROJECT_PATH" echo "change direction to $PROJECT_PATH" cd $PROJECT_PATH xcodebuild -list -project $PROJECT_NAME.xcodeproj echo "clean..." xcodebuild clean # Build the Xcode project and create an archive echo "Building Xcode project..." xcodebuild archive -project $PROJECT_NAME.xcodeproj -scheme $SCHEME_NAME -archivePath $OUTPUT_DIRECTORY/$PROJECT_NAME.xcarchive # Export the archive to create an IPA file echo "Exporting archive to IPA..." xcodebuild -exportArchive -archivePath $OUTPUT_DIRECTORY/$PROJECT_NAME.xcarchive -exportPath $OUTPUT_DIRECTORY -exportOptionsPlist exportOptions.plist # Clean up the temporary archive echo "Cleaning up temporary archive..." rm -rf $OUTPUT_DIRECTORY/$PROJECT_NAME.xcarchive # The script is now complete. echo "Build process completed. IPA file is available at: $OUTPUT_DIRECTORY/$BUILD_NAME.ipa"