-initWithDocumentTypes iCloud 仅在生产版本中崩溃

Posted

技术标签:

【中文标题】-initWithDocumentTypes iCloud 仅在生产版本中崩溃【英文标题】:-initWithDocumentTypes iCloud crashes only in production build 【发布时间】:2017-08-30 10:24:53 【问题描述】:

我正在使用 iCloud 功能通过 UIDocumentMenuViewController 从 iCloud 中选择文件。它在开发构建中运行良好,但是每当我在 Testflight 上使用生产配置文件上传构建时,我的应用程序都会在[[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[@"public.data"] inMode:UIDocumentPickerModeImport];

我在一台机器上制作存档,然后在不同机器上使用命令行创建生产版本。

我还检查了生产配置文件,发现所有功能都包含在权利部分下。

有人可以帮忙吗?

【问题讨论】:

您检查过 Apple 开发者网站上的配置文件吗?您是否还确认您在进行命令行构建的 Mac 上只有最新、正确版本的配置文件?我会删除所有旧的配置文件,因为如果您有一个对应用 ID 有效但没有最新权利的旧配置文件,它可能会在构建时选择错误的配置文件。 是的。一切正确。问题是我需要使用命令行创建存档。那时 iCloud 的权利不包括在内。当我通过 xcode 制作存档时,它工作正常。 显然有些东西是不正确的,否则你不会得到错误。您是否确认您在生产构建机器上没有应用程序捆绑 ID 的多个配置文件?旧版本可能会导致您的问题。 我找到了archived-expanded-entitlements.xcent文件丢失的解决方案 【参考方案1】:

问题:当我在没有代码签名(配置文件)的情况下使用命令行创建存档时,系统忽略了未创建权利文件的权利广告(未创建权利文件 archived-expanded-entitlements.xcent在存档包或 APP_NAME.xcarchive 中)。

解决方案:我想要 archived-expanded-entitlements.xcent 文件,因此我使用 Xcode 通过包含配置文件创建了存档,并且包中包含 archived-expanded-entitlements.xcent 文件。每次我通过命令行创建存档而不进行代码签名时,我都会复制此文件。我将这个archived-expanded-entitlements.xcent 文件复制到存档包中。

PS:如果我们更改应用功能,我们需要创建新的archived-expanded-entitlements.xcent,因为权利会改变。

感谢大家的建议和cmets :-)

【讨论】:

以上是关于-initWithDocumentTypes iCloud 仅在生产版本中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

非接触式ic卡机器只读卡号还是读取里面的信息,公交卡,学校饭堂,门禁很多都是这种非接触式ic卡,我

ic_launcher、ic_launcher_foreground 和 ic_launcher_round 之间的区别

IC资料网,很不错的一个网站,所有IC资料奥

ID卡IC卡的复制卡种类介绍

LCD驱动控制IC指啥

web调用IC卡读卡器开发第四章--读写IC卡数据