Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 让Xcode项目构建静态库_Objective C_Ios_Xcode_Build_Static Libraries - Fatal编程技术网

Objective c 让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

我有一个ios项目的核心库。我在几个项目中使用这个库

在构建库时,我将.a文件和头文件复制到几个xcode项目中。一切都很顺利

现在,我希望使用库的每个项目都能自己构建库。 我尝试使用以下运行脚本:

 # 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文件添加到项目的每个文件夹中?当你编译你的项目库时,如果需要的话,你的项目库会在编译之前被检查和编译。谢谢