xcodebuild fails to build from terminal but succeeded from xcode

11,116

I have found an answer.
Since custom frameworks were announced only in iOS 8, -sdk iphonesimulator8.0 need to be added to the script, it defines Xcode to build the project only for Ios 8.
it should look like:

xcodebuild -project <projName> -scheme <schemeName> -sdk iphonesimulator8.0 -configuration Debug clean build

this code works

Share:
11,116
Asaf Manassen
Author by

Asaf Manassen

Updated on June 04, 2022

Comments

  • Asaf Manassen
    Asaf Manassen about 2 years

    I'm trying to build a framework using xcode 6-beta 3 when compiling it using xcode it works but when compiling it from a terminal with the command:

    xcodebuild -project <projName> -scheme <schemeName>  -configuration Debug clean build 
    

    I'm getting the following error

    CodeSign error: entitlements are required for product type 'Framework' in SDK 'Simulator - iOS 8.0'. Your Xcode installation may be damaged.
    

    and the build fails to complete. at the end of the log it says

    The following build commands failed:
    PhaseScriptExecution Run\ Script build/myProj.build/Debug-iphoneos/myScheme.build/Script-DB9DC5BB19740464002F9181.sh
    


    upgrade:


    the script that failed is :

       #!/bin/sh 
    # Config 
    UFW_TARGET=AppCore
    
    # Default build dir
    UFW_BUILD_DIR="./build"
    
    # Global vars
    if [ -z ${SDK_NAME} ]; then
    
    # Use the latest iphoneos SDK available
    UFW_GREP_RESULT=$(xcodebuild -showsdks | grep -o "iphoneos.*$")
    while read -r line; do
    UFW_SDK_VERSION="${line}"
    done <<< "${UFW_GREP_RESULT}"
    else
    
    # Use the SDK specified by XCode
    UFW_SDK_VERSION="${SDK_NAME}"
    fi
    
    UFW_SDK_VERSION=$(echo "${UFW_SDK_VERSION}" | grep -o "[0-9].*$")
    
    UFW_IPHONE_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-iphoneos"
    UFW_SIMULATOR_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-iphonesimulator"
    UFW_UNIVERSAL_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-universal"
    
    # Static lib name
    STATIC_LIB_NAME="appCore"
    UFW_FRAMEWORK_DIR="${STATIC_LIB_NAME}.framework"
    
    # Build Framework
    
    rm -rf ${UFW_UNIVERSAL_DIR}
    
    xcodebuild ARCHS="armv7 armv7s arm64" -target "${UFW_TARGET}" -configuration ${CONFIGURATION} -sdk iphoneos${UFW_SDK_VERSION} clean build RUN_CLANG_STATIC_ANALYZER=NO
    
    if [ "$?" != "0" ]; then echo >&2 "Error: xcodebuild failed"; exit 1; fi
    
    xcodebuild ARCHS="i386 x86_64" -target "${UFW_TARGET}" -configuration ${CONFIGURATION} -sdk iphonesimulator${UFW_SDK_VERSION} clean build RUN_CLANG_STATIC_ANALYZER=NO
    
    if [ "$?" != "0" ]; then echo >&2 "Error: xcodebuild failed"; exit 1; fi
    
    mkdir -p "${UFW_UNIVERSAL_DIR}"
    mkdir -p "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}"
    mkdir -p "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}/Headers"
    
    cp -a "${UFW_IPHONE_DIR}/${UFW_FRAMEWORK_DIR}/Headers" "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}"
    
    echo "running lipo -create -ouput..."
    lipo -create -output "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}" "${UFW_IPHONE_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}" "${UFW_SIMULATOR_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}"
    if [ "$?" != "0" ]; then echo >&2 "Error: lipo failed for ${STATIC_LIB_NAME}"; exit 1; fi
    


    Does anyone know what I'm doing wrong ?
    any help be much appreciated

  • Boris Y.
    Boris Y. over 5 years
    Any ideas how this can be set when xcodebuild ran by Carthage?