创建存档时出错:无法生成bitcode包,因为“库路径(filename.o)”是在没有完整位代码的情况下构建的?

时间:2016-07-20 17:38:48

标签: ios objective-c xcode static-libraries watch-os-2

我已根据Ray Wenderlich Tutorial为Apple手表创建了库。我简短地试了几步。

步骤1:我选择模板作为Xcode - >档案 - >新 - > watchOS - >框架&图书馆 - >观看静态库

步骤2:添加了作为库所需的文件。

步骤3:在库内部添加头文件到公共文件。

第4步:运行应用程序

第5步:我想创建一个通用库,所以我将目标添加为Xcode - >档案 - >新 - >目标 - >其他 - >聚合

步骤6:为模拟器添加了运行脚本,并将操作系统视为

# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

xcodebuild -target RBWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator -arch x86_64 -arch i386  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

UNIVERSAL_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-universal

mkdir -p "${UNIVERSAL_BUILD_DIR}"

# Step 2. Create universal binary file using lipo

lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-watchos/lib${PROJECT_NAME}.a"

# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/include" "${UNIVERSAL_OUTPUTFOLDER}/"

我尝试了另外一个脚本,但尝试了这两个可用脚本中的任何一个

# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

# Step 1. Build Device and Simulator versions
xcodebuild -target RBIWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target RBIWatchModelManager -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

xcodebuild -target RBIWatchModelManager ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk watchos  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" "${BUILD_DIR}/${CONFIGURATION}-watchos/lib${PROJECT_NAME}.a"

# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"

使用此脚本中的任何一个成功创建库。

步骤7:我将此库(通用文件夹库和头文件(包含文件夹))添加到我的实际项目中。

步骤8:构建阶段中选定的库Link Binary with Libraries

步骤9:添加了标题搜索路径

步骤10:运行应用程序。在模拟器中,Device正常运行。

但是在创建此项目的存档时,我收到一个错误,如下图所示。

然后我搜索了这个错误,我尝试了这个建议:

建议我试过:

  1. 更改位代码。由于我正在使用watchOS,因此在创建库时,构建设置中没有可用的位代码选项。因此,此解决方案没有空间。

  2. 在创建库时,在库的构建设置中为-fembed-bitcode添加了Custom Compiler Flags。但没用。我收到同样的错误。

  3. 我认为这个错误是因为错误日志中显示了特定的文件名。所以我尝试分离这些文件,然后我创建了新的库,但是我得到了用于创建库的其他文件的相同错误。所以没用..

  4. 我尝试在原始项目的构建设置中启用和禁用Enable Bitcode选项,其中我添加了此创建的库,完全没用。

  5. 最后......是否有其他解决方案可用于解决此错误。我找到的苹果有一件事是

      

    对于iOS应用,bitcode是默认设置,但是可选。对于watchOS和   tvOS应用程序,bitcode是必需的。如果您提供bitcode,所有应用程序和   应用程序包中的框架(项目中的所有目标)都需要   包括bitcode。       使用iTunes Connect分发应用程序后,您可以下载构建的dSYMs文件,如查看和中所述   在设备窗口中导入崩溃。

    帮帮我吧?

    Error while creating archive

0 个答案:

没有答案