gpt4 book ai didi

ios - 带有 CocoaPods v0.38 的 ADAL iOS 使用 Swift 没有桥接头

转载 作者:搜寻专家 更新时间:2023-11-01 05:39:54 26 4
gpt4 key购买 nike

我正在构建一个使用 ADAL 连接到 Office365 的 Swift 应用程序。几个月前,在 Podfile 中,我只有一行:

pod 'ADALiOS', '~> 1.0.1'

当我定义一个包含以下内容的桥接 header 时,一切正常:

#import "ADALiOS/ADAuthenticationContext.h"

最后,在我的 Swift 代码中,我只需要添加

import ADALiOS

但我也想开始使用 SwiftyJSON,这是一个 Swift 框架,所以我在我的 Podfile 中添加了几行:

pod 'ADALiOS', '~> 1.2.4'
pod 'SwiftyJSON'
use_frameworks!

更新到 CocoaPods V0.38 允许将框架与 Objective-C 库 (ADALiOS) 结合使用。根据文档,不再需要桥接头,所以我将其删除。

现在,一切都可以正常编译,但是当我调用 ADAL 代码时,它失败并出现以下错误:

ADALiOS [2015-08-09 13:01:07 - C621BB01-686A-4064-9455-A4B55C11E0E8] 
ERROR: Error raised: 18. Additional Information:
Domain: ADAuthenticationErrorDomain
ProtocolCode:(null)
Details:The required resource bundle could not be loaded. Please read the ADALiOS readme on how to build your application with ADAL provided authentication UI resources..
ErrorCode: 18.

我假设因为它可以很好地编译/链接,所以这与桥接 header 无关,而是与其他东西有关。

有什么线索吗?

最佳答案

我终于解决了这个问题。以防其他人遇到相同“类型”的错误,这就是我所做的。

我从头开始了一个新项目并使用 CocoaPod 安装了 ADALiOS,没有使用 use_framework!并手动将库 libADALiSO.a 添加到项目中,以及带有#import“ADAuthenticationContext.h”的桥接 header 。我什至使用了旧版本的 ADALiOS (V1.0.2)。当尝试运行这个项目时(这应该是可行的),我收到了奇怪的警告,指出我在 Xcode 使用的一些隐藏文件夹中有重复的函数:

~/Library/developer/xcode/DerivedData
~/Library/developer/xcode/CoreSimulator/Device

在任何情况下,它都有效,因为它使用了一个副本来运行程序。然后我只是删除了其中包含我的项目名称的文件夹/文件并重建了程序。警告消失了,它再次起作用。

然后,我在我的 Podfile 中包含了所需的 PromiseKit 和 use_frameworks,重建了应用程序,它再次运行。我删除了不需要的桥接头,但只在我的 swift 代码中添加了以下行:

import ADALiOS

而且它仍然像最初预期的那样工作。

最后,我打开了我的原始项目和我的所有代码,它也没有任何错误地构建和运行。因此,我浪费了整整 3 个小时从头开始重试一切,以为 Cocoapods V0.38 或 aven ADALiOS 是罪魁祸首,最终发现它可能只是 Xcode 中的东西。

所以我不知道为什么这些文件会导致这些问题,如果有人可以添加解释,那就太好了。

关于ios - 带有 CocoaPods v0.38 的 ADAL iOS 使用 Swift 没有桥接头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31904840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com