我的iOS 8框架是否需要自己的代码签名才能进行分发?

时间:2015-02-25 22:55:46

标签: ios xcode

我正在尝试将iOS 8应用上传到应用商店进行分发。我的应用程序包含使用Xcode 6创建的框架。我从上传工具中收到以下配置文件错误。

“ERROR ITMS-90161:无效的配置文件。包com.auraishere.AuraClient [Payload / hipgroup.app / Frameworks / AuraCore.framework]中包含的配置文件无效。缺少代码签名证书。”

归档工作正常,我正在为目标和项目使用新创建的分发证书和配置文件。 app id特定于包名称而不是通配符。

框架使用不同组织的开发证书成功编译在单独的框架项目中。我是否需要使用该组织的分发证书进行编译,或者这不是必需的?

我有一个脚本,使用lipo工具创建一个胖二进制文件,以支持多种体系结构,并将fat二进制文件复制到我应用程序的项目文件夹中。我不认为这是问题,但我已将其包括在内。

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

# Build framework for iPhoneOS
xcodebuild -target AuraCore ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

# Build framework for iPhoneSimulator
xcodebuild -target AuraCore -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

# Build the universal library
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}"

# Copy the .framework folder of iphoneos
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/"

# Delete the library for iphoneos
rm "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}"

# Move the Universal Library into our framework
mv "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}" "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/"

# Copy the framework
cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"
rm -Rf "${PROJECT_DIR}/../../aura-ios-demo/{PROJECT_NAME}.framework"
cp -Rf "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}/../../aura-ios-demo"

if [ -d "${PROJECT_DIR}/../../concierge" ]; then
    echo "dir exsits"
# Copy the framework
cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"
rm -Rf "${PROJECT_DIR}/../../concierge/{PROJECT_NAME}.framework"
cp -Rf "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}/../../concierge"
fi

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:4)

关于this开发人员论坛帖子: “框架确实需要进行代码签名,但Xcode会为您解决此问题。 他们不需要任何额外的配置文件或应用程序ID来运行。要使用它们,您唯一需要做的就是确保在构建过程中使用额外的构建阶段正确复制它们。“

是否在构建阶段选中了“代码签名复制”框?

enter image description here