从原理上解决 uniapp (含第三方插件)打包 iOS APP 失败的问题

最近一段时间,我的团队基于uniapp开发的平台型APP因平台资金合规的要求,需要对接中金支付,uniapp的插件市场有一个别人做好的中金支付插件,但前端开发同事在引用这个 插件时,出现了 iOS APP 打包不成功的情况,开发花了几天时间也没有解决问题,就上升到我这边处理了。

由于我们的 APP大小已经超过 40MB,每次云打包都要收10元打包费用,让前端开发通过砍代码的方式,写了一个 小于 40MB 可以复现问题的 demo APP,这样我就可能通过多次打包一次一次调整并接近问题的核心。

这个demo APP是使用了 APP分享到微信的功能 和 一个中金支付的插件,也正是这 2 个功能触发了本次的问题。

第一次打包失败,看下面问题的现像,明显就是 Undefined symbols,一看就知道是 链接阶段,链接器找不到库,相关的 symbols自然就链接失败了。

cd [PackagePath]
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-ios12.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk -Os -L[PackagePath]/build/EagerLinkingTBDs/Release-iphoneos -L[PackagePath]/build/Release-iphoneos -L[SourcePath]/libs/UniSDK/Base -L[SourcePath]/libs/UniSDK -L[PackagePath]/utsFrameworks -L[SourcePath]/libs/Universal/DCUniAdWm.xcframework/ios-arm64/ -L[PackagePath]/wgtRoot/__UNI__0278D71/nativeplugins/cpcn-cpcnpay/ios/ -L[SourcePath]/libs/Universal -F[PackagePath]/build/EagerLinkingTBDs/Release-iphoneos -F[PackagePath]/build/Release-iphoneos -F[SourcePath]/libs/UniSDK/Base -F[SourcePath]/libs/UniSDK -F[PackagePath]/utsFrameworks -F[SourcePath]/libs/Universal/DCUniAdWm.xcframework/ios-arm64/ -F[PackagePath]/wgtRoot/__UNI__0278D71/nativeplugins/cpcn-cpcnpay/ios

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值