我的iOS 8框架是否需要自己的代码签名才能进行分发? [英] Does my iOS 8 framework need its own code signing for distribution?

查看:110
本文介绍了我的iOS 8框架是否需要自己的代码签名才能进行分发?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to upload my iOS 8 app to the app store for distribution. My app contains a framework created with Xcode 6. I am getting the following provisioning profile error from the uploader tool.

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

"ERROR ITMS-90161: Invalid Provisioning Profile. The provisioning profile included in the bundle com.auraishere.AuraClient [Payload/hipgroup.app/Frameworks/AuraCore.framework] is invalid. Missing code-signing certificate."

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

The archiving works fine and I am using a freshly created distribution certificate and profile for both the target and the project. The app id is specific to the bundle name and not a wildcard one.

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

The framework compiles in a separate framework project successfully using a different organisation's development certificate. Do I need to compile it using a distribution certificate for that organisation or is that not necessary?

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

I have a script that creates a fat binary using the lipo tool to support multiple architectures and copies the fat binary to my app's project folder. I don't think this is the problem but I have included it in case.

# 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

任何帮助都将不胜感激。谢谢。

Any help would be much appreciated. Thanks.

推荐答案

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

Regarding this developer forum thread: "Frameworks do need to be code signed but Xcode takes care of this for you. They don't need any extra profiles or app ID to run. The only thing you need to do in order to use them is to ensure they are copied properly during the build process with the extra build phase."

是在构建阶段检查代码签名复制框?

Is the "Code Sign On Copy" box checked in the build phase?

这篇关于我的iOS 8框架是否需要自己的代码签名才能进行分发?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆