WatchKit 扩展在 CocoaPods 下不起作用

Posted

技术标签:

【中文标题】WatchKit 扩展在 CocoaPods 下不起作用【英文标题】:WatchKit Extension not working under CocoaPods 【发布时间】:2015-05-25 09:06:50 【问题描述】:

使用 ios-8.3、Xcode-6.3.1 和 MacOS-10.10.3 - 描述 here 和 here 的 RealmSwift (v0.92.3) 的 CocoaPods (v0.37.1) 安装基本上可以工作,除了 WatchKit扩展没有找到任何 Realm 关键字。

我的 Podfile 如下所示:

xcodeproj 'MyApp.xcodeproj'
workspace 'MyApp.xcworkspace'
platform :ios, '8.3'

source 'https://github.com/artsy/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!

def shared_pods
      pod 'RealmSwift', '>= 0.92.3'
end

target 'MyApp' do
    shared_pods
end

target 'MyAppTests' do
    shared_pods
end

target 'MyApp WatchKit Extension' do
    shared_pods
end

link_with 'MyApp', 'MyApp WatchKit Extension'

我在 WatchKit 扩展中的所有 Realm 关键字都不起作用,如以下错误消息所示(...已注释掉任何 import RealmSwift 语句)(见下图)

任何想法强烈赞赏仍然可能是错误的???

关于目标设置必须如何的任何想法。提示:NameEntry Realm-Object 用于两个目标(即 MyApp 和 MyApp WatchKit Extension)。这似乎增加了 CocoaPods 使用的复杂性。知道双重用途(即在两个目标中)是否需要特殊的 cocoapods 设置?那么“import RealmSwift”呢?这有必要吗??

【问题讨论】:

Import RealmSwift no longer working using CocoaPods的可能重复 【参考方案1】:

上面的Podfile其实是对的!!

但是,重要的是您仍然使用 CocoaPods 在 Realm-Object 定义中“导入 RealmSwift”,如下面的更正示例所示。这将使您的 WatchKit Extension 无法识别任何领域对象的错误消息消失!

此外,如果您打算在两个目标中使用您的 Realm-Object(即“MyApp”和“MyApp WatchKit Extension”),请确保在 RealmObject.swift 文件的目标选择窗格中选择相应的目标(见下图):

【讨论】:

以上是关于WatchKit 扩展在 CocoaPods 下不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 App-Group 文件夹中创建领域文件在 WatchOS(WatchKit 扩展)下不起作用

在主要目标中包含 pod,而不是在 WatchKit 扩展中

WatchKit 无法从 Pod 导入库

添加 watchkit 时带有 cocoapods 的 Swift 项目出现新错误

Watchkit , openParentApplication 和 WatchKit 扩展

如何在 WatchKit 扩展中计算当前位置