我是Apple iOS开发的新手。我正在尝试创建静态库并将其添加到主应用程序。
现在,当我尝试将主应用程序复制到其他位置(甚至更改文件夹名称 - 其中存在主应用程序)并尝试在模拟器上运行时,我收到以下错误: 忽略文件/Users/.../lib.a,缺少文件/ Users /.../ lib.a中所需的体系结构i386
我真的不了解路径上的关系/依赖。
答案 0 :(得分:1)
我正在使用XCode 5.0.2和iOS 7.当我编译静态库时,Xcode表示它正在构建一个通用库(但实际上并非如此)。 '产品'目录显示了libxyz.a(位于iphoneos /目录中) - 这实际上是针对ARM6& ARM7 for iPhone设备。所以当我拿这个' libxyz.a'文件并在链接器用来发出警告的另一个项目中使用它。缺少必要的架构i386'。
我已关注http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial
使用该脚本生成单个二进制文件,其中包含模拟器和模拟器。 iphone设备二进制文件。
# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
# Step 1. Build Device and Simulator versions
xcodebuild -target ImageFilters ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target ImageFilters -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
# Step 2. Create universal binary file using lipo
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a"
# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"