为什么 CocoaPods 的 Acknowledgements.plist 在 iOS 9 上看起来一团糟,你能做些什么呢?
Why does Acknowledgements.plist from CocoaPods look messed up on iOS 9 and what can you do about it?
CocoaPods auto-generates Acknowledgements.plist 文件,以便您可以将其包含在 settings.bundle 中。
在 this 之后,我将 Acknowledgements.plist 添加到 settings.bundle。
Acknowledgements.plist 看起来像这样:
这在 iOS 8 上看起来很好(如预期的那样):
然而,iOS 9 在标题和页脚文本之间插入了大空格,这使它变得难看:
看起来这不是特定于此文件(致谢)的,iOS 9 通常在标题和页脚文本之间放置巨大的垂直空间。问题是,如何解决这种情况并将格式良好的致谢放入 plist 中?
好观察!我前段时间也注意到了同样的情况。希望这已经解决了。
调查
对我来说,一些页脚文本显示正确。那些很短,就像只有两行。 FooterText越长,空的越大space。例如。 Realm 数据库有一个很长的许可证文本,导致在标题之后和页脚之前有一个比单个设备屏幕大的空 space。
我手动编辑了 Acknowledgements.plist 以查看换行符是否有所不同:在保留文本的同时,我删除了换行符。
结果
不幸的是,删除换行符没有帮助。所以它确实与内容长度有关。看起来它是一个 TableView 并且行高计算还差得远。
但是,我没有找到任何解决方法。标题密钥的长度有限,因此不能用作解决方法。 FooterText 确实需要 Apple 修复。
我归档在rdar://24837397
系统 Settings.app 中还有其他几个在开发过程中令人不安的错误:
- (崩溃)打开应用程序的致谢部分。 运行 通过 Xcode 对您的应用程序进行新的调试构建,然后尝试切换回 Settings.app。由于使用更新的 Acknowledgements.plist 复制新的 Settings.bundle,Settings.app 崩溃。
- (缺少内容)打开设备设置并滚动到您的应用程序设置,但先不要打开它们。重复上面的步骤,并通过 Xcode 运行 一个新的调试版本。切换回 Settings.app 并尝试打开您的应用程序设置:显示的设置页面为空,只有核心位置和移动数据等权限可用。您必须通过任务切换器关闭 Settings.app 才能看到 Settings.bundle.
的新内容
除了这两个错误之外,Settings.app 没有部分索引让我抓狂。在开发过程中滚动到我自己的应用程序是不必要的浪费时间。我知道新搜索,但它也比仅用于第 3 方应用程序的索引慢。
编辑:如果您无意中发现了这一点,请也提交雷达!这对于真正修复它很重要,请参阅 https://blackpixel.com/writing/2012/02/radar-or-gtfo.html.
这是 iOS 9 中的错误,该问题已在 iOS 10 中修复。不幸的是,对于仍然 运行 iOS 的用户,我们无能为力9.
如果您使用的是 CocoaPods 或 Carthage,AckAck 可以很好地为您生成致谢 plist。它删除了不必要的行 breaks/indentation 并为每个框架生成一个单独的 plist(使其在 iOS 9 上不再是一个问题)。
https://github.com/Building42/AckAck
(我是 AckAck 的创建者)
CocoaPods auto-generates Acknowledgements.plist 文件,以便您可以将其包含在 settings.bundle 中。
在 this 之后,我将 Acknowledgements.plist 添加到 settings.bundle。
Acknowledgements.plist 看起来像这样:
这在 iOS 8 上看起来很好(如预期的那样):
然而,iOS 9 在标题和页脚文本之间插入了大空格,这使它变得难看:
看起来这不是特定于此文件(致谢)的,iOS 9 通常在标题和页脚文本之间放置巨大的垂直空间。问题是,如何解决这种情况并将格式良好的致谢放入 plist 中?
好观察!我前段时间也注意到了同样的情况。希望这已经解决了。
调查
对我来说,一些页脚文本显示正确。那些很短,就像只有两行。 FooterText越长,空的越大space。例如。 Realm 数据库有一个很长的许可证文本,导致在标题之后和页脚之前有一个比单个设备屏幕大的空 space。
我手动编辑了 Acknowledgements.plist 以查看换行符是否有所不同:在保留文本的同时,我删除了换行符。
结果
不幸的是,删除换行符没有帮助。所以它确实与内容长度有关。看起来它是一个 TableView 并且行高计算还差得远。
但是,我没有找到任何解决方法。标题密钥的长度有限,因此不能用作解决方法。 FooterText 确实需要 Apple 修复。
我归档在rdar://24837397
系统 Settings.app 中还有其他几个在开发过程中令人不安的错误:
- (崩溃)打开应用程序的致谢部分。 运行 通过 Xcode 对您的应用程序进行新的调试构建,然后尝试切换回 Settings.app。由于使用更新的 Acknowledgements.plist 复制新的 Settings.bundle,Settings.app 崩溃。
- (缺少内容)打开设备设置并滚动到您的应用程序设置,但先不要打开它们。重复上面的步骤,并通过 Xcode 运行 一个新的调试版本。切换回 Settings.app 并尝试打开您的应用程序设置:显示的设置页面为空,只有核心位置和移动数据等权限可用。您必须通过任务切换器关闭 Settings.app 才能看到 Settings.bundle. 的新内容
除了这两个错误之外,Settings.app 没有部分索引让我抓狂。在开发过程中滚动到我自己的应用程序是不必要的浪费时间。我知道新搜索,但它也比仅用于第 3 方应用程序的索引慢。
编辑:如果您无意中发现了这一点,请也提交雷达!这对于真正修复它很重要,请参阅 https://blackpixel.com/writing/2012/02/radar-or-gtfo.html.
这是 iOS 9 中的错误,该问题已在 iOS 10 中修复。不幸的是,对于仍然 运行 iOS 的用户,我们无能为力9.
如果您使用的是 CocoaPods 或 Carthage,AckAck 可以很好地为您生成致谢 plist。它删除了不必要的行 breaks/indentation 并为每个框架生成一个单独的 plist(使其在 iOS 9 上不再是一个问题)。
https://github.com/Building42/AckAck
(我是 AckAck 的创建者)