Objective c 让Xcode项目构建静态库
我有一个ios项目的核心库。我在几个项目中使用这个库 在构建库时,我将.a文件和头文件复制到几个xcode项目中。一切都很顺利 现在,我希望使用库的每个项目都能自己构建库。 我尝试使用以下运行脚本:Objective c 让Xcode项目构建静态库,objective-c,ios,xcode,build,static-libraries,Objective C,Ios,Xcode,Build,Static Libraries,我有一个ios项目的核心库。我在几个项目中使用这个库 在构建库时,我将.a文件和头文件复制到几个xcode项目中。一切都很顺利 现在,我希望使用库的每个项目都能自己构建库。 我尝试使用以下运行脚本: # Build Core library first CORE="${PWD}/../Core" IDENT="PROJECTIDENT" PROJ=$CORE/Core.xcodeproj CORE_LIB="${PWD}/Classes/Core" mkdir -p "${CORE_L
# Build Core library first
CORE="${PWD}/../Core"
IDENT="PROJECTIDENT"
PROJ=$CORE/Core.xcodeproj
CORE_LIB="${PWD}/Classes/Core"
mkdir -p "${CORE_LIB}"
#rm -rf "${CORE_LIB}/"*
mkdir -p "/tmp/${IDENT}"
IS_EMPTY=`ls "${CORE_LIB}" | wc -l`
if [ "true" == ${ALREADYINVOKED:-false} ]; then
echo "ALREADY INVOKED"
else
# CRITICAL:
# Prevent infinite recursion (Xcode sucks)
export ALREADYINVOKED="true"
SDK_VERSION=$(echo ${SDK_NAME} | grep -o '.\{3\}$')
OUT_DIR="/tmp/${IDENT}"
EXEC_NAME="libCore.a"
UNIVERSAL_DIR="${OUT_DIR}/Universal"
rm -rf "${UNIVERSAL_DIR}"
mkdir -p "${UNIVERSAL_DIR}"
CONFIG="Debug"
if [ ${CONFIGURATION} != "Debug" ]; then
CONFIG="Release"
fi
echo "${CONFIG}"
# Create build
DID_COMPILE=`xcodebuild -project $PROJ -target Core -configuration "${CONFIG}" -sdk "${PLATFORM_NAME}${SDK_VERSION}" build RUN_CLANG_STATIC_ANALYZER=NO BUILD_DIR="${OUT_DIR}" BUILD_ROOT="${OUT_DIR}" EXECUTABLE_NAME="${EXEC_NAME}" | grep "CompileC"`
if [ ! -z "${DID_COMPILE}" ] || [ ${IS_EMPTY} -eq 0 ]; then
# Copy Headers
cp "${OUT_DIR}/${CONFIG}-${PLATFORM_NAME}/usr/local/include/"* "${UNIVERSAL_DIR}"
cp "${OUT_DIR}/${CONFIG}-${PLATFORM_NAME}/${EXEC_NAME}"* "${UNIVERSAL_DIR}"
# Finally we have a fat static library with .a and .h files
# now we copy them to the Project
rm -rf "${CORE_LIB}"
cp -Rf "${UNIVERSAL_DIR}" "${CORE_LIB}"
fi
fi
此脚本可以工作,但仅每秒一次
例如,我在一个库类中做了一个更改,在库依赖项得到刷新时,主项目没有被编译
然后我对库做了另一个更改,再次构建,所有更改都可以在主probject中使用
但始终只有每一秒的构建
如何解决此问题?为什么不将库xcodeproject文件添加到项目的每个文件夹中?当你编译你的项目库时,如果需要的话,你的项目库会在编译之前被检查和编译。谢谢