# 开发常见问题
# 一、SDK 可支持的系统最低版本是多少
- iOS SDK 最低支持 iOS 系统版本是 13
- Android 的 minSdkVersion 是 21 (即 Android 5)
# 二、开发者工具
# 1、提示要升级最新的开发者工具
- 文案 1:为正常使用多端应用功能,需将当前工具升级到最新 nightly 版并重新升级多端项目
- 文案 2:此版本的该功能已停止维护,请升级最新工具并使用新的升级多端项目功能
- 如出现上述的报错提示,开发者需将开发者工具升级至最新的 nightly 版,并且重新点击「升级多端项目」即可正常使用
# 2、编译报错
# a) [summer-compiler] Couldn't found the 'xxxx.json' file relative to 'xxxx'
- 多端编译对 json 路径的校验比小程序编译更严格,因此开发者需要重新确认一下组件路径配置是否准确
# 三、Android 相关
# 1、 Android 出现 CanvasView is not a constructor
- 因为缺少了 Xweb 的扩展模块导致的,查看说明文档
- 可在
project.miniapp.json
中将 Xweb 扩展 SDK 勾上

# 2、APK包体 targetSdk 版本不符合要求
- 上架应用市场出现因为 targetSdkVersion 不符合要求而被驳回的,开发者可以参考Android 设置 targetSdkVersion设置targetSdkVersion,设置后,重新构建安装包即可。

# 3、应用上架因检测到使用了某些权限但是未对这些权限的用途进行声明而驳回,但是App中实际又没用到这些权限
- 如下图,驳回原因中提到:您好,SDK存在收集使用个人信息的行为,但未在隐私政策中清晰明示SDK收集使用该信息的目的、方式和范围,请修改,谢谢(违规点:(传感器数据)微信三方SDK获取传感器数据的行为)

- 当遇到这种情况,开发者可通过在将 project.miniapp.json 切换到 json 格式,然后使用 uselessPermissions 参数移除相关权限项即可,详情可查看Android 系统权限配置指南
# 4、Android 应用 勾选了 xweb SDK 后同层渲染依然失效
- 请确认 app.json 里是否有 "renderingMode": "seperated",导致了强制关闭同层渲染;
- 请不要强制关闭同层渲染
# 5、日志出现 ERROR_NOCELL&WIFI_LOCATIONSWITCHOFF
- 请打开 wlan 扫描,即不要关着
# 6、Android 应用启动的时候卡在启动页,并且出现提示:调试模式已开启请重启
- 请开发者检查下是不是 wx.setEnableDebug和 project.miniapp.json 里 enableVconsole 冲突
- vConsole 的规则详情可查看开启 vConsole
# 7、安装或者启动应用时出现“已屏蔽不安全的应用”
- 开发者需将 targetsdkversion 设置为 >= 33,详情可查看Android 设置 targetSdkVersion
# 8、Android 系统版本较低时,启动应用白屏
- 需前往 project.miniapp.json 将 XWEB 扩展 SDK 勾上,然后重新构建安装包重新安装即可
# 9、基座 APK 构建失败,错误信息:Cannot read property 'android' of undefined
- 出现该错误的原因是 i18nInfo.json 为空,解决方案为:工具更新到最新版nightly,然后先执行一次构建不要点运行,就可以了。
# 10、基座 APK 构建失败,错误信息:error: resource drawable/splashscreen
- 出现该错误的原因是 project.miniapp.json 中配置的启动页路径错误或者配置的格式不对,请确保配置了正确启动页后重试即可。
# 四、iOS 相关
# 1、iOS M1 的电脑出现模拟器按钮点击无响应如何处理
# Xcode 版本 ≥ 14.0
- 开发者可在终端执行下方命令后即可解决该问题。(可以通过“活动监视器”查看xcode模拟器的运行架构是否是intel)
arch -x86_64 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator
- 上述解决方案在新版本的xcode可能依然无法生效,开发者只能在真机中调试。
# Xcode 版本 < 14.0
- 开发者可参考下方步骤将模拟器的"使用 Rosetta 打开"勾上即可解决该问题
步骤1. 前往 /Applications/Xcode.app/Contents/Developer/Applications/Simulator
步骤2. 右键打开模拟器简介,并且展开“通用” ,勾选"使用 Rosetta 打开"

# 2、iOS 本地图片无法加载问题
- 因为缺少了 Media 的扩展模块导致的,查看说明文档
- 可在
project.miniapp.json
中将 Media 扩展 SDK 勾上 - 注意新版本的开发者工具 Media SDK 已经进行拆分,详情可查看扩展 SDK 拆分日志

# 3、iOS 构建 IPA 报错createAssetsCar failed。
# Xcode 没有安装 iOS SDK

- 可能是 Xcode 没有安装 iOS SDK,可安装下方路径查看已安装的 SDK

- 如果尚未安装,则可点击 “get” 进行安装

# Command Line Tool
出现提示 xcrun: error: unable to find utility "actool", not a developer tool or in PATH .

需在 Xcode 「Settings」->「Locations」 中设置 Command Line Tools

# 4、Windows 系统构建 IPA 出现乱码

如出现上述乱码问题,开发者需进行下方两个操作
1、设置保存 IPA/APK 的路径不要包含中文

2、需设置系统默认 utf-8 编码(Windows系统默认字符编码为gbk编码,需将其调整为 UTF-8)
- 按 win 键,输入"区域与语言设置"
- 选择管理语言设置
- 在弹出框中选择更改系统区域设置
- 勾选Unicode UTF-8 并点击确定和应用
- 重启系统即可,如遇问题可自行网上搜索解决方案
# 5、iOS 如何查看日志
iPhone 连接 Mac 电脑,通过开发者工具安装了多端应用的情况下,怎么查看应用的日志?
Mac 打开 ”控制台” 程序,右边
选择你的iPhone手机
,顶部点击开始
按钮。在手机上操作你的应用程序,复现问题。
在 Mac 上点击
暂停
按钮,点击旁边的搜索,输入demo
,类别选择进程名。即可看到多端应用的日志。
说明:
如果应用崩溃了,那么最后一条日志一般会显示崩溃原因。
如果是其他问题,那么请把日志内容共享给我们(导出到 Note 中,再保存成文件)。
# 6、iOS - Asset validation failed (90034)
# 问题描述
- 报错详情
- 报错分析:此类报错一般是因为错误使用证书导致,解决方案如下。
# 解决方案
操作流程 :
检查是否采用分发证书:点击 「签名证书管理 - iOS 签名证书管理」 -> 在「采用分发证书」选择“是”
检查是否有同名证书:打开「钥匙串」,检查是否有同名证书,若有,应删除多余的,保留一个,否则打包时输入证书签证名会产生歧义。报错提示(示例)如下:
iPhone Distribution: xxx (H9178ADUBS): ambiguous (matches "iPhone Distribution: xxx (H9178ADUBS)" and "iPhone Distribution: xxx (H9178ADUBS)" in /Users/xxxx/Library/Keychains/login.keychain)
报错情况一:登录帐号中存在相同的分发证书
- 报错情况二:系统帐号和登录帐号中存在相同的分发证书
- 证书介绍
iOS 证书有多种类型,用于不同的目的。以下是 iOS 证书的分类:
- 开发者证书(Developer Certificate):用于在开发阶段对应用程序进行签名和调试。开发者证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 分发证书(Distribution Certificate):用于将应用程序分发给其他用户或者上传到 App Store 进行审核。分发证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 推送证书(Push Certificate):用于实现远程推送功能,可以让应用程序接收来自服务器的推送通知。推送证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 企业证书(Enterprise Certificate):用于将应用程序分发给企业内部员工或者客户。企业证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
# 7、iOS - Asset validation failed (90717)
# 问题描述
报错详情
Invalid App Store Icon. The App Store Icon in the asset catalog in 'demo.app' can't be transparent nor contain an alpha channel. (ID: ee9a621e-b195-4e79-a700-0fbb1aa1xxxx)
报错分析
提交应用到 App Store 时,图标不能包含 alpha 通道或透明度
# 解决方案
关闭图像 alpha 通道可参考如下方法:
https://cloud.tencent.com/developer/ask/sof/111356139
https://developers.weixin.qq.com/community/minihome/article/doc/0008e263df8b002b67a03566a66013
# 8、iOS - 所选证书非有效证书
- 如果提示证书无效,则需要安装Apple全球开发者关系认证媒介中间证书,一般选择Apple Intermediate Certificates 中Worldwide Developer Relations 相关的证书。
# 9、iOS 构建提示 dyld: Symbol not found
需要升级 macOS >= 11.5

# 10、Missing potentially required entitlement. Your app, or a library that’s included in your app, uses Apple Push Notification service (APNs) registration APIs, but the APS Environment Entitlement isn’t included in the app signature’s entitlements. If your app uses APNs, make sure the App ID is enabled for push notifications in Certificates, Identifiers & Profiles, sign the app with a distribution provisioning profile that includes the APS Environment Entitlement, and upload a new build to ensure that push notifications function as intended.
- 当出现这个报错的时候,开发者需前往苹果后台检查是否勾选了「Push Notifications」
- 如果没有勾选,但是还是出现了这个报错,那么前往微信开发者工具的 project.miniapp.json 看是否勾选了消息推送的内容
- 如果没有,那么将 project.miniapp.json 切换到 json 模式看看,是否将"useExtendedLib_WeAppTPNS"设置了 true,如果是的话,请将 "useExtendedLib_WeAppTPNS" 这一行都删了,然后重新构建即可
# 五、多端应用控制台
# 1、绑定小程序时出现“暂无可绑定的小程序”
- 详细的排查指南可查看暂无可绑定的小程序说明
# 六、其他
# 1、如何获取小程序原始 ID
# 在微信公众平台里获取
- 登录微信公众平台 -> 进入小程序后台 ->「设置」 -> 「基本设置」 -> 「账号信息」
# 在微信小程序里获取
- 在微信里搜索目标小程序 -> 打开目标小程序 -> 查看目标小程序的「更多资料」