ITMS-90338: Non-public API usage - Frameworks/Flutter.framework/Flutter: _ptrace

在将使用Flutter构建的应用提交到AppStore时遇到ITMS-90338错误,提示_Fptrace非公开API使用。解决方案包括清理并重新构建Flutter项目,或者检查是否误用了Debug版本的Flutter.framework。升级Flutter SDK也可能导致此问题。Flutter社区提供了相关讨论和解决建议。

使用Flutter 打包上传到appstore应用商店到时候,构建成功到包自动删除消失了,通过查找邮件出现以下问题:


ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _ptrace. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/


通过各种百度,bing搜索,结果发现大多数是下面到这种情况,

在这里插入图片描述
是因为没有导入库,但是我一个搞flutter的,我并不很懂iOS开发,改oc语言是不可能改的了,于是通过google发现了原来很多人都有着我同样都问题,而且看问题,他们还讨论的很欢快。

下面给出解决方法:

解决方法一:

1 flutter c
### 解决ITMS-90482错误:移除alivcffmpeg框架中的bitcode以通过App Store验证 ITMS-90482错误表明应用程序中的某些框架包含Bitcode,而这些框架在提交到App Store时未能通过验证。Bitcode是Apple引入的一种中间表示形式,允许Apple在未来对应用程序进行优化[^1]。然而,在某些情况下,框架可能包含不兼容的Bitcode,导致提交失败。 #### 问题分析 根据提供的引用信息,alivcffmpeg框架被标记为包含Bitcode,这可能是导致错误的原因之一。为了通过App Store验证,需要从该框架中移除Bitcode。可以通过以下方法实现: #### 方法一:使用`bitcode_strip`命令移除Bitcode 可以使用`xcrun bitcode_strip`命令从特定框架中移除Bitcode。以下是具体操作步骤: 1. 打开终端并导航到包含alivcffmpeg框架的目录。 2. 执行以下命令: ```bash xcrun bitcode_strip alivcffmpeg -r -o alivcffmpeg ``` 此命令将从alivcffmpeg框架中移除Bitcode,并将其替换为不含Bitcode的版本[^3]。 #### 方法二:禁用Xcode项目中的Bitcode选项 如果上述方法不可行或需要全局解决Bitcode问题,可以在Xcode项目的构建设置中禁用Bitcode选项。具体步骤如下: 1. 打开Xcode项目。 2. 在项目设置中选择目标(Target)。 3. 转到“Build Settings”标签页。 4. 搜索`Enable Bitcode`选项。 5. 将其值设置为`No`[^4]。 #### 注意事项 - 确保所有依赖框架都已正确处理Bitcode问题。如果其他框架仍然包含Bitcode,可能会导致类似错误。 - 在修改框架之前,建议备份原始框架文件,以防出现问题时能够恢复。 - 如果框架是由第三方提供且无法直接修改,联系框架提供商获取不包含Bitcode的版本可能是一个更长久的解决方案[^5]。 #### 验证步骤 完成上述操作后,重新构建和归档应用程序,并尝试将其提交到App Store。如果问题解决,应用程序应能成功通过验证。 ```python # 示例代码:检查Bitcode状态(仅作参考) import subprocess def check_bitcode_status(framework_path): result = subprocess.run(['otool', '-l', framework_path], capture_output=True, text=True) if '__LLVM' in result.stdout: return "Framework contains Bitcode" else: return "Framework does not contain Bitcode" framework_path = "/path/to/alivcffmpeg.framework/alivcffmpeg" print(check_bitcode_status(framework_path)) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值