从 Xcode 在设备上构建与从 TestFlight 下载 - 问题

Posted

技术标签:

【中文标题】从 Xcode 在设备上构建与从 TestFlight 下载 - 问题【英文标题】:Build on device from Xcode versus downloaded from TestFlight - Issues 【发布时间】:2014-12-06 13:21:35 【问题描述】:

在我的设备上运行我的项目时遇到问题,但如果它是从 testFlight 下载的。当我直接从 Xcode 构建到设备时,它工作正常。

可能相关的详细信息 - 使用AVCaptureSession,我的应用程序记录了可以在前置/后置摄像头等之间切换的视频片段。我已经处理了每个视频的方向,因此在播放或合并多个视频时,它们都会以正确的方式播放。

当我直接从 Xcode 构建时,播放方向在我的设备上按预期工作。虽然从 Testflight 下载的应用程序中,视频的方向是错误的。

设备使用 iPhone 5S - 8.1 & iPad 2 7.1

如前所述,这只是来自 TestFlight 构建的问题。我没有发布任何代码,因为 Xcode 中的逻辑可以正常工作。在过去的一年里,我经常使用 TestFlight,之前没有遇到过这样的问题。它似乎仅与此视频播放无关。

如果有人遇到过类似问题并知道如何解决或有建议,将不胜感激。

【问题讨论】:

【参考方案1】:

我发现了为什么我的 testFlight 构建与我的 Xcode 构建不同,这一切都归结为 Xcode 中的构建配置设置

我编辑了提供构建选项的方案,并在运行选项中将构建配置从调试更改为发布。

虽然这从未解决视频问题,但它确实允许应用程序在发布时运行。我现在可以继续测试我的问题,但认为其他人在 Xcode 和测试版本中遇到差异可能希望了解此设置。

【讨论】:

【参考方案2】:

您是否碰巧在使用 Swift。 Apple 更改了他们的证书,并在此过程中添加了一个额外的字段。包含包含 Swift 代码的外部库时,现有证书不起作用。我为此浪费了很多时间。这是TestFlight竞争对手AirSign的解释表。

https://www.airsignapp.com/ios-apps-using-swift-crash-when-signed-with-inhouse-certificate/

如果是这种情况,结论是使用该证书生成一个新证书和一个新的配置文件。如果您的证书过多,您可能需要撤销旧证书。

如果您直接从您的机器构建,则您正在使用您的开发证书。如果您通过 TestFlight,您正在使用您的分发证书。如果您将要上传到 TestFlight 的发行版 ipa 并尝试将其直接安装到您的设备上,会发生什么情况。如果您无法安装该应用程序,那么您的分发证书存在问题。我还假设您尝试构建一个新的 hello world 类型的应用程序并通过 TestFlight,然后在应用程序的新版本中添加 AVCaptureSession 并尝试。

为了让我的生活更轻松,我使用 iFunBox 绕过 iTunes 直接在我的机器上安装测试 ipa。很棒的免费应用程序。只需启动,选择在设备上安装并选择 ipa

http://www.i-funbox.com/ifunboxmac/

【讨论】:

谢谢大卫,我正在使用objective-c,不过我会撤销并重新生成证书并再试一次。我目前也在准备 ARM 架构,想知道它是否实际上是不同的存档构建(而不是 TestFlight 问题本身)。让你认识你

以上是关于从 Xcode 在设备上构建与从 TestFlight 下载 - 问题的主要内容,如果未能解决你的问题,请参考以下文章

从 Apple App Store 下载的应用程序与从 XCode 加载的应用程序之间的二进制文件是不是存在差异?

应用程序图标在使用 xcode 10 的真实设备上显示为空白

iOS - 无法在设备上构建,但在 Xcode 4.6 上构建模拟器

Xcode 构建在设备上运行但在模拟器上失败

更新了 XCode,现在无法在 iPad 设备上构建应用程序

Xcode:推送通知以在设备工作上构建,而不是在同一设备上安装 TestFlight/App Store