【问题标题】:Unable to submit archive including Here Maps Premium SDK with Xcode 8.2.1无法使用 Xcode 8.2.1 提交包含 Here Maps Premium SDK 的存档
【发布时间】:2017-07-05 17:36:50
【问题描述】:

archive upload failure messages screenhot

Xcode 未能提交包含 Here Map Premium for iOS 功能所需的动态库“NMAKit.framework”的项目。

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

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

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

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

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

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

【问题讨论】:

  • 您使用的是 HERE SDK 的 Starter of Premium 版本吗?
  • 高级版

标签: ios app-store-connect here-api xcode8.2


【解决方案1】:

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

请按照以下步骤操作

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

注意:当您运行 sh strip_sim.sh 脚本时,您的 NMAKit.framework 将被修改。将构建上传到 iTunes 后,确保将新框架替换为旧框架。

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

【讨论】:

    【解决方案2】:

    第 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

    【讨论】:

    • 它不起作用,我按照说明进行操作。没有运气
    • 可能是因为我那里也有织物脚本。
    • 是的,我发现了这个问题,因为我已经有了与fabric相关的脚本,并且我将脚本组合在一起。我发现我需要为不同的脚本创建单独的运行脚本。
    • @YestayMuratov 它用于不同的脚本。添加结构并添加 NMAKit 运行脚本。
    • @HimanshuPatel 最后我无法将 ipa 提交到应用商店,并运行与框架一起下载并位于框架内的脚本。答案中提供的脚本有效,因为当我添加它时,我无法在模拟器上运行,但仍然无法上传到应用商店。这就是为什么我决定运行框架内提供的脚本。
    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    相关资源
    最近更新 更多