我有一个用Xcode 7.3.1构建的应用程序。最近对该应用程序的更新增加了Taplytics框架以及对iOS9和watchOS2的支持。
使用Crashlytics发行版,我的QA团队和beta测试人员已经成功地在armv7、armv7s和arm64设备上运行了该应用程序。
昨天晚上,该应用程序获得了商店的批准,而今天,拥有armv7架构(iPhone 5,iPhone 5c)的设备无法加载该应用程序。
我从设备的崩溃日志中提取的错误如下:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: @rpath/Taplytics.framework/Taplytics | Referenced from: /var/containers/Bundle/Application/D5061E93-214B-4F24-8E06-CBA64C9B0940/XXXX.app/XXXX | Reason: image not found
Triggered by Thread: 0该错误发生在加载任何应用程序代码之前,因为操作系统正在加载App的包。
这个设备直接从Xcode运行调试版本,或者通过Crashlytics运行版本构建,没有问题。
我使用lipo来验证发送到App的IPA是否包含一个armv7映像,包括主应用程序和Taplytics预编译框架,使用:
lipo -info XXXX.app/Frameworks/Taplytics.framework/Taplytics我确实得到了一个结果,确认了包中存在的armv7、armv7s和arm64支持。
由于这是我们使用watchOS2的第一个版本,我们不得不在应用程序中打开Bitcode支持,这会导致当客户端从商店请求应用程序时,应用程序细化会发生。
我不知道为什么App发行过程会削弱对armv7的支持,但这是我目前看到的唯一可能。
然而,我怀疑我会是第一个遇到这件事的人,我在网上也没有看到任何东西来支持我的说法。
考虑到以下因素,导致图书馆中没有适当形象的另一个可能原因是:
发布于 2016-10-06 04:40:25
在Info.plist for Taplytics中,看看您是Required Device Capabilities aka UIRequiredDeviceCapabilities。确保列出了所有的体系结构。如果没有,则当应用程序细化发生时,将不包括该切片。
https://stackoverflow.com/questions/39885028
复制相似问题