简体   繁体   English

无法使用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 was failing to submit a project including dynamic library "NMAKit.framework" required for Here Map Premium for iOS functionality. Xcode未能提交包含Here Map Premium for iOS功能所需的动态库“NMAKit.framework”的项目。

(uploading the sample project included in Here Maps Premium SDK for iOS to avoid side effects caused by my project leading also to upload failure) (上传Here Maps Premium SDK for iOS中包含的示例项目,以避免因项目导致上传失败而导致的副作用)

Bitcode was disabled in project's build settings. Bitcode在项目的构建设置中被禁用。

I'am using the latest Xcode Version 8.2.1. 我正在使用最新的Xcode版本8.2.1。

I don't have trouble submitting the app without NMAKit.framework. 没有NMAKit.framework,我在提交应用程序时没有遇到任何问题。

It seems like the actual version (Here SDK V. 3.3) of the library is not accepted by Apple. Apple似乎不接受库的实际版本(此处为SDK V. 3.3)。

What steps would it take to get my project including the NMAKit.framework submitted to iTunes-Connect? 将我的项目包括提交给iTunes-Connect的NMAKit.framework需要采取哪些步骤?

Step 1: 第1步:

Project->Target->Build Phase->Run Script 项目 - >目标 - >构建阶段 - >运行脚本

Add Run Script 添加运行脚本

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

you can follow this Link . 你可以关注这个链接

Step 2: 第2步:

Project->Target->General->Embedded Binaries 项目 - >目标 - >常规 - >嵌入式二进制文件

Add NMAKit.framework like below image 添加NMAKit.framework,如下图所示

在此输入图像描述

I try with .sh script and this is working for me. 我尝试使用.sh脚本,这对我有用。

Please follow below steps 请按照以下步骤操作

  1. Unzip.tar file (ie HERE_Premium_iOS_SDK_v3.7.0.118.tar) Unzip.tar文件(即HERE_Premium_iOS_SDK_v3.7.0.118.tar)
  2. Open extracted folder 'HERESDK-Premium'. 打开提取的文件夹'HERESDK-Premium'。 ('HERESDK-Premium' folder generated when you extract 'HERE_Premium_iOS_SDK_v3.7.0.118.tar' file) (提取'HERE_Premium_iOS_SDK_v3.7.0.118.tar'文件时生成的'HERESDK-Premium'文件夹)
  3. Open terminal 打开终端
  4. Go to extracted folder path ('HERESDK-Premium->framework' you can found 'strip_sim.sh' file in this folder and NMAKit.framework ) 转到解压缩的文件夹路径('HERESDK-Premium-> framework',您可以在此文件夹中找到'strip_sim.sh'文件和NMAKit.framework
  5. Run scrip in terminal with this command sh strip_sim.sh and press enter. 使用此命令sh strip_sim.sh在终端中运行sh strip_sim.sh并按Enter键。 ( NMAKit.framework will be modified with this script). (将使用此脚本修改NMAKit.framework )。
  6. Wait for complete process. 等待完整的过程。
  7. Copy new modify framework in your project and try to submit your build. 复制项目中的新修改框架并尝试提交构建。

Note : When you run sh strip_sim.sh script your NMAKit.framework will be modified. 注意:运行sh strip_sim.sh脚本时,将修改NMAKit.framework Make sure replace new framework to old framework after uploading your build to iTunes. 将构建上传到iTunes后,确保将新框架替换为旧框架。

New framework is not running in simulator. 新框架未在模拟器中运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM