我正在构建一个react-native iOS应用程序,使用JWPlayer iOS SDK v4启用chrome casting。
根据JWPlayer和Google Cast文档,我在Xcode中添加了Access WiFi Information
功能,并在info.plist中添加了NSLocalNetworkUsageDescription
和NSBluetoothAlwaysUsageDescription
。
当我从Xcode运行应用程序在我的(真正的)iPhone上,一切都很完美。当打开应用程序时出现蓝牙访问提示,然后当在JWPlayer中按下Chrome-cast按钮时,它提示网络访问-播放器处理程序能够成功发现并连接到cast设备。
然而,当我在Xcode中存档应用程序,通过Ad-hoc, Developer或TestFlight分发方法进行测试时,蓝牙或网络访问提示都没有被触发,因此,JWPlayer无法发现任何cast设备。
我已经查过信息了。位于/Users/jonathanredford/Library/Developer/Xcode/Archives/2021-09-30/[AppName] 30-9-21, 3.19 pm.xcarchive/Products/Applications/[AppName].app/info.plist
的plist文件,以确认NSLocalNetworkUsageDescription
和NSBluetoothAlwaysUsageDescription
都在那里,它们是。
对于类似的问题,我已经遵循了解决方案,但还没有任何成功。
其中一个解决方案说要确保在查看信息时。在Xcode中的plist中,确保目标应用在右侧的File Inspector中被选中。这样做会导致存档失败,并出现以下错误:
1) Target '[AppName]' (project '[AppName]') has copy command from '/Users/jonathanredford/.../Projects/[AppName]/ios/[AppName]/Info.plist' to '/Users/jonathanredford/Library/Developer/Xcode/DerivedData/[AppName]-byufdhksjujqvwfyfegsqgpdvhow/Build/Intermediates.noindex/ArchiveIntermediates/[AppName]/InstallationBuildProductsLocation/Applications/[AppName].app/Info.plist'
2) Target '[AppName]' (project '[AppName]') has process command with output '/Users/jonathanredford/Library/Developer/Xcode/DerivedData/[AppName]-byufdhksjujqvwfyfegsqgpdvhow/Build/Intermediates.noindex/ArchiveIntermediates/[AppName]/InstallationBuildProductsLocation/Applications/[AppName].app/Info.plist'
提前感谢!
您是否在同一设备上进行所有测试?我建议在安装和测试之前完全删除应用程序,特别是在调试这样的构建问题时。可能有一个缓存的权限不起作用,但也没有触发请求。
调试类似这样的东西的下一步是像以前一样侧加载,但是在构建配置中。这将有助于缩小构建配置问题。您可以通过编辑构建方案并在Run和Info选项卡中查找这些设置。所有的测试都使用调试配置,但是归档应该使用发布配置。最安全的做法是在打乱该方案之前复制该方案,这样就不会破坏测试设置。