无法使用 Xcode 8.2.1 提交包含 Here Maps Premium SDK 的存档

Unable to submit archive including Here Maps Premium SDK with Xcode 8.2.1

archive upload failure messages screenhot

Xcode 未能提交项目,其中包含 Here Map Premium iOS 功能所需的动态库 "NMAKit.framework"。

(正在为 iOS 上传 Here Maps Premium SDK 中包含的示例项目,以避免我的项目造成的副作用也导致上传失败)

在项目的构建设置中禁用了 Bitcode。

我正在使用最新的 Xcode 版本 8.2.1。

我在没有 NMAKit.framework 的情况下提交应用程序没有问题。

Apple 似乎不接受该库的实际版本(此处为 SDK V.3.3)。

将我的项目包括 NMAKit.framework 提交到 iTunes-Connect 需要哪些步骤?

第 1 步:

项目->目标->构建阶段->运行脚本

添加运行脚本

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

你可以关注这个Link

第 2 步:

项目->目标->常规->嵌入式二进制文件

添加NMAKit.framework如下图

我尝试使用 .sh 脚本,这对我有用。

请按照以下步骤操作

  1. Unzip.tar 文件(即 HERE_Premium_iOS_SDK_v3.7.0.118.tar)
  2. 打开提取的文件夹 'HERESDK-Premium'。 ('HERESDK-Premium' 解压 'HERE_Premium_iOS_SDK_v3.7.0.118.tar' 文件时生成的文件夹)
  3. 打开终端
  4. 转到提取的文件夹路径('HERESDK-Premium->framework' 您可以在此文件夹中找到 'strip_sim.sh' 文件和 NMAKit.framework
  5. 运行 使用此命令在终端中输入 sh strip_sim.sh 并按回车键。 (NMAKit.framework 将使用此脚本修改)。
  6. 等待完成。
  7. 在您的项目中复制新的修改框架并尝试提交您的构建。

Note : When you run sh strip_sim.sh script your NMAKit.framework will be modified. Make sure replace new framework to old framework after uploading your build to iTunes.

模拟器中没有运行新框架。