问题标签 [ios-app-group]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - watchOS 2 中的共享 NSUserDefaults 和 App Groups 之类的东西?
我目前正在为 watchOS 2 更新我的应用程序,但在设备之间的通信方面遇到了一些问题:以前我一直在使用共享的 NSUserDefaults 来使 Watch 和 iOS 设备能够独立地从一个应用程序组读取和写入多个值。
现在 watchOS 2 应用程序在 Watch 上本地运行,并且 Watch Connectivity Framework 取代了以前的通信选项,这似乎不再适用。但是,根据我在参考资料中阅读的内容,使用 Watch Connectivity 实现与 watchOS 1 中相同的功能相当麻烦……</p>
我还有其他选择可以创建某种容器/文件/数据库/任何东西,我可以从我的 Watch 应用程序和相关的 iOS 应用程序访问和更新吗?
ios - 设置包在 watchOS 2 上不起作用
这在 watchOS 1 上不是问题,但现在在 watchOS 2 上我无法读取手表扩展上的值。
根据Apple docs,这是可能的。根据该线程上的某些人的说法,这是可能的。根据此线程上的 Apple 员工的说法,这是可能的。
据我所知,我正在正确设置所有内容:
- 我在 iOS 应用程序和具有相同标识符的手表扩展上启用了应用程序组。
- 我将 Settings-Watch.bundle 添加到 iOS 应用程序并将
ApplicationGroupContainerIdentifier
具有相同标识符的添加到 plist
当我使用标识符作为套件名称初始化NSUserDefaults
对象时,我无法读取手表扩展上的值。我可以在 iOS 应用程序上阅读它们。这发生在模拟器和真实设备中。
请不要发布有关如何使用 Watch Connectivity 执行此操作的答案。在没有 Watch Connectivity 的情况下,仅使用 watchOS 2 上的共享应用程序组就可以做到这一点,人们可以做到这一点,这里直接来自文档:
在 watchOS 2 中,您的 WatchKit 扩展可以读取首选项的值,但您不能写入新值。watchOS 2 中的首选项会从 iOS 转发到 Apple Watch,但您所做的任何修改都不会发送回 iOS。
ios - iOS 9 ShareData 在 AppGroup 之间通过 NSUserDefaults
我正在尝试将 TodayExtension 添加到我现有的应用程序中,并且我希望该应用程序和扩展程序将通过 NSUserDefaults 共享数据。根据本教程http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/ 我确实喜欢它说:
- 使用 Today 扩展创建新目标
- 在 Extension 和 App 中添加新的 App-Group
- 将代码添加到应用程序
- 将代码添加到扩展程序
应用程序代码
扩展代码
问题
我的问题是扩展名总是读取 0 而不是 2。显然我遗漏了一些东西。在 AppGroup 和 NSUserDefaults 的情况下,iOS8 和 9 之间有一些主要区别吗?我知道应用程序之间只有watchOS2。
为了更清楚,这是来自 App 和 Extension NSUserDefaults 的键
应用程序密钥
苹果键盘
苹果键盘扩展
添加表情符号键盘处理
苹果语言
苹果密码键盘
首选语言
苹果语言环境
NSInterfaceStyle
MSVLoggingMasterSwitchEnabledKey
NS语言
AppleiTunesStoreItemKinds
身份代码
AppleLanguagesDidMigrate
PKEnable斯德哥尔摩设置
扩展键
苹果键盘
苹果键盘扩展
添加表情符号键盘处理
苹果语言
苹果密码键盘
首选语言
苹果语言环境
NSInterfaceStyle
MSVLoggingMasterSwitchEnabledKey
NS语言
AppleiTunesStoreItemKinds
AppleLanguagesDidMigrate
PKEnable斯德哥尔摩设置
很明显,密钥identityCode
根本没有出现在扩展中。
ios - 如何在 Watch OS 2 中引用不支持的框架
我将我的应用程序更新为最新的 swift 2.0 语法。这样做时,我的 watchkit 应用程序已损坏。问题是 watchkit 应用程序引用了一个引用框架 AVFoundation 的类。WatchOS2 显然现在不再支持一些标准框架:
对基于网络的操作的支持包括以下技术:
WatchKit 扩展可以通过 NSURLSession 对象直接访问网络。WatchKit 扩展可以完全访问 NSURLSession 功能,包括在后台下载文件的能力。有关如何使用此类的信息,请参阅 URL 加载系统编程指南。Watch Connectivity 框架支持 Watch 应用和 iOS 应用之间的双向通信。使用此框架来协调两个应用程序之间的活动。请参阅与您的 Companion iOS 应用程序通信。
所以现在我无法编译手表套件代码,因为在尝试使用 AVFoundation 框架时“找不到此类模块”是一条错误消息。我怎样才能解决这个问题并在我的 Apple Watch 应用程序中继续引用该类和框架。我应该在手机和手表之间传输数据吗?有没有办法将框架链接到扩展?
我想要做的是在我的 InterfaceController 中:
RSUnifiedCodeGenerator
是一个利用 AVFoundation 从字符串生成条形码图像的类。此外,生成器采用的类型是 AVObject:AVMetadataObjectTypeCode39Code。该解决方案在第一个 WatchOS 中运行良好,但现在在 OS 2 中仍然存在问题。我看到 WatchConnectivity 可能是一个解决方案,它只是将手机本身的条形码传递给我,但这需要我停止支持 iOS 8。什么是最好的解决方案,如果有的话,将 AVFoundation 与 WatchOS 2 一起使用。如果我不能这样做,我应该如何在调用时将此图像从手机传递到手表。谢谢。
ios - iOS:将图像保存在 App Group 中以在 Apple Watch 上使用
背景:
在我的 iPhone 应用程序中,我检索图像并将它们保存到文档目录以便更快地加载。我知道要在 Apple Watch 上使用这些图像,我必须与 App Group 共享它们。
所以,我创建了一个应用程序组,更新了我的配置文件,所有这些爵士乐。现在我的问题是我不知道如何将图像保存到 App Group 并在我的 WatchKit 文件中读取该图像。
这是我尝试将图像保存到应用程序组的方法:
- 注意:我的 FileManager 类返回一个 UIImage
为了在我的 WatchKit 应用程序中检索图像,我使用以下代码:
问题:
我在 Apple Watch 上测试时没有显示图像。我需要做些什么来保存/检索我的应用程序和 Apple Watch 之间的图像?
ios - 在 iPhone 和 Apple Watch 之间共享公用容器
我正在尝试在我的 iPhone 应用程序与其在 Apple Watch 上的扩展应用程序之间共享通用数据。如下所示:
我还为 iPhone 和 Apple Watch 应用程序打开了应用程序组。我还修改了应用程序 ID以支持这一点并生成了一个新的配置文件。
但是someArray的内容,在 Watch 和 Phone 上运行时是不同的。
就像在手表上一样,我只能看到我从手表上存储的数据,在手机上也是如此。
这里缺少什么?
ios - 无法为 Watch Extension 创建专用 App ID
我在为我的手表扩展创建专用 AppId 时遇到问题。
到目前为止,我的应用程序和相应的手表应用程序运行良好。我使用类似于以下格式的捆绑 ID 配置了我的 App ID xx.yyyyy.appName
,并且 watchkit 应用程序和扩展使用通配符 appId 与相关(和建议的)捆绑 ID 为xx.yyyyy.appName.watchkitextension
andxx.yyyyy.appName.watchkitapp
并且一切都很好。
我发现我需要更改我的 Apple Watch 应用程序的当前行为以与父应用程序共享一些数据,为了做到这一点,我必须启用这些App Groups
功能,但我发现我无法这样做watchkitextension(显然应用组功能需要显式应用 ID 而不是通配符应用 ID)。
意识到我没有专用的 App ID,我去了会员中心并尝试制作一个不成功。按照 Apple 的指导方针,我正在尝试创建具有xx.yyyyy.appName
以下 前缀的 App ID .watchkitextension
。
这会导致以下错误消息:
标识符为“xx.yyyyy.appName.watchkitextension”的应用 ID 不可用。请输入不同的字符串。
无论我输入什么字符串,我都会得到同样的错误。我确保我没有与它关联的类似 bundleId 的其他 AppId。我什至删除了通配符 App ID,以确保它的 Bundle ID 字段中最后一位数字中的星号 (*) 不会造成混淆。没有运气-> 情况变得更糟。我无法重新创建以前的通配符 App ID(出现相同的错误)
更新:
我发现将字符串的第一部分(xx
部分)更改为不同的内容可以让我创建 AppID - 但不幸的是,它不能解决我的问题,因为我需要它具有相同的前缀作为捆绑包 ID手表扩展。我想也许这些信息会对任何试图提供帮助的人有所帮助。
UPDATE2
我已经阅读了以下 stackoverflow 帖子,一、二、三和许多其他帖子。没运气 :(
我在这里感到有点失落,任何帮助将不胜感激!
nsuserdefaults - NSUserDefault 是否可以安全地存储应用程序组数据?
我有两个应用程序(AppA 和 AppB)。我想在 AppA 中保存数据并使用 App Group 在 AppB 中访问它:
应用 A 中的代码:
应用 B 中的代码:
问题:
是否足够安全?
ios - 无法使用应用程序组访问 NSUserDefaults 一个到另一个
我正在开发一个应用程序和一个小部件需要从应用程序获取数据的小部件。我使用以下代码在 NSUserDefaults 上进行读写。我也用于$(PRODUCT_BUNDLE_IDENTIFIER).widget
小部件并$(PRODUCT_BUNDLE_IDENTIFIER)
参考这篇文章。但是小部件无法从应用程序或 NSUserDefaults 获取数据。我怎样才能让它工作?
///////
swift - 如何用 swift 在 UIImage 上画线?
我是新来的。我已经按照很多教程来学习它。有人可以指导我如何用 UIImage 画线吗?我想在图像上画一些线条。
如果我在绘制方法中在 UIView 上绘制图像 - 性能是否会与 UIImage 上的图像相同 - 我是否仍然能够获得全分辨率和捏缩放等功能。