在 NSBundle 中加载自定义 NSBundle

Loading Custom NSBundle within NSBundle

NSBundle *customBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"CustomBundle" ofType:@"bundle"]];

当我执行上面的代码时,它在调试模式和 Adhoc 构建中 returns customBundle。但是当我在 TestFlight Build/App Store Build 中使用 32 位设备执行时,它 returns nil。此外 customBundle 通过 CocoaPods 添加到 Main bundle。我正在使用 Xcode 7.3.

我只有 iOS 9+ 有这个奇怪的错误,它在 iOS 8 中完美运行。对于 iOS 8,它适用于所有 Build/Adhoc/Appstore构建包括所有 32 位和 64 位设备。

我遇到了同样的问题。

这个错误是因为在 64 位设备上构建捆绑包时 xcode 添加到捆绑包内 info.plist 的密钥 UIRequiredDeviceCapabilities。(捆绑包在调试模式下构建仅适用于活动仅限建筑)

<key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>arm64</string>
    </array>

您可以通过删除 info.plist 中的 UIRequiredDeviceCapabilities 键或仅使用 32 位设备重建捆绑包并更新 podspec 来解决该错误。