uni-app Swift Support 构建版本出错

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app Swift Support 构建版本出错

操作步骤:

  • HBuilderx打包成ipa包,用transpoter或第三方工具提交到App Store Connect

预期结果:

  • App Store Connect成功构建版本

实际结果:

  • 邮件返回ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

bug描述:

  • HBuilderx打包ipa包,将ipa包到App Store Connect,邮件返回ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

| 项目信息           | 值          |
|-------------------|-------------|
| 产品分类           | uniapp/App  |
| PC开发环境操作系统 | Windows     |
| PC开发环境版本号   | 11          |
| HBuilderX类型      | 正式        |
| HBuilderX版本号    | 4.36        |
| 手机系统           | iOS         |
| 手机系统版本号      | iOS 15      |
| 手机厂商           | 苹果        |
| 手机机型           | iOS         |
| 页面类型           | vue         |
| vue版本            | vue2        |
| 打包方式           | 云端        |
| 项目创建方式       | HBuilderX   |

4 回复

请更新Transpoter到最新版本。


回复 a***@anzcdk.cn: 请提供下appid,我们查下后台打包日志。确认项目是否为cli项目,如果是cli项目请更新到最新版本。另外如果使用了“安心打包”模式,可以尝试切换到“传统打包”模式。

针对您提到的uni-app中Swift Support构建版本出错的问题,这通常涉及到uni-app跨平台开发框架与原生iOS开发(特别是使用Swift语言)的集成问题。由于uni-app主要基于Vue.js和Weex等技术栈,而原生iOS开发则使用Objective-C或Swift,两者之间的集成需要一定的桥接工作。

以下是一个简化的代码示例,展示如何在uni-app项目中通过自定义原生插件(以Swift编写)的方式来解决可能的构建错误。请注意,这只是一个基础示例,具体实现可能需要根据您的项目需求进行调整。

步骤1:创建Swift原生插件

  1. 创建一个新的Xcode项目(选择Cocoa Touch Framework模板),并确保语言选择为Swift。
  2. 在Xcode中编写Swift代码。例如,创建一个简单的类来执行一些原生功能:
// MyNativePlugin.swift
import Foundation

@objc(MyNativePlugin)
class MyNativePlugin: NSObject {
    @objc func someNativeFunction() -> String {
        return "Hello from Swift!"
    }
}
  1. 配置Info.plistBridging-Header.h(如果需要)以确保Swift代码可以被Objective-C代码调用。

步骤2:集成到uni-app项目

  1. 将编译好的Framework集成到uni-app的native-plugins目录中
  2. 在uni-app项目中创建相应的插件配置文件(如manifest.json),并声明这个原生插件。
{
  "nativePlugins": {
    "MyNativePlugin": {
      "version": "1.0.0",
      "provider": "your.company.name",
      "platforms": {
        "ios": {
          "package": "com.yourcompany.mynativeplugin",
          "methods": [
            {
              "name": "someNativeFunction",
              "returns": "String"
            }
          ]
        }
      }
    }
  }
}
  1. 在uni-app的Vue组件中调用这个原生插件
export default {
  methods: {
    callNativeFunction() {
      // #ifdef APP-PLUS
      plus.nativePlugin.MyNativePlugin.someNativeFunction((result) => {
        console.log(result); // 应该输出 "Hello from Swift!"
      });
      // #endif
    }
  }
}

注意

  • 确保Xcode项目的Build Settings中正确配置了Swift版本和模块设置。
  • 在uni-app中调用原生插件时,注意平台判断(如#ifdef APP-PLUS),因为原生插件只在App平台有效。
  • 如果遇到构建错误,检查Xcode的Build Logs以获取详细信息,并确保所有依赖和路径设置正确。

以上代码提供了一个基本的框架,帮助您理解如何在uni-app中集成Swift原生插件。具体的实现和错误解决可能需要根据您的项目细节进行调整。

回到顶部