iPhone WatchKit 配套应用显示名称
Posted
技术标签:
【中文标题】iPhone WatchKit 配套应用显示名称【英文标题】:iPhone WatchKit Companion App Display Name 【发布时间】:2015-06-13 04:03:23 【问题描述】:如果您在 >= ios 8.2 iPhone 上打开 Apple Watch 应用程序,您会得到一个应用程序列表,其中包含手表应用程序。
在哪里可以定义显示在手表应用图标旁边的名称?
【问题讨论】:
您是否检查过项目中的 Info.plist 文件? 当然可以。手表应用程序或 WatchKit 扩展目标的“捆绑显示名称”应该是正确的 Info.plist 键。但不幸的是,这不是使用的那个。 Apple dev 没有文档。 @LoVo:你有没有试过改变这个名字?如果不是,你为什么要 -1 我的问题? 在创建了一个单独的虚拟应用程序后,我发现这里使用了 iPhone“父”应用程序 CFBundleName。如果存在 CFBundleDisplayName,我将向苹果提交一份雷达请求。 @edsa-steffen 实际上我没有否决你的问题^^ 抱歉指责你 :-) 我是新来的贡献者 【参考方案1】:据此Apple note:
iPhone App 的Info.plist
中的CFBundleDisplayName
(Bundle 显示名称) 对应于在iPhone 上查看的名称,而@987654327 中的值@ (Bundle name) 是在 WatchKitSettings 应用程序中使用的:
Info.plist
文件中的CFBundleDisplayName
(捆绑显示名称)与 Apple Watch 本身显示的名称相关联:
【讨论】:
对我来说只有在重新启动 Xcode 后才能工作(清理没有帮助)。 对我来说这不适用于本地化文件。另请参阅***.com/q/32695954/439489【参考方案2】:它很奇怪,将来可能会改变,但它是父 iOs 应用程序的“Bundle Name”(CFBundleName
),在 iOs Apple Watch Companion Application 中用作 Watch 应用程序名称。
但在 Watch 应用程序中,使用的是 Watch 应用程序的“捆绑显示名称”(CFBundleDisplayName
)(与 iPhone 上相同)。
在这 2 种情况下,您可以使用 InfoPlist.strings
将它们本地化:
"CFBundleDisplayName" = "Whosnext";
"CFBundleName" = "Whosnext";
另外,如果Watch和iPhone应用程序的名称不同,您的应用程序将被拒绝。
Apple 在这里解释了这一点:https://developer.apple.com/library/ios/qa/qa1892/_index.html
【讨论】:
【参考方案3】:Apple 文档还描述了如何在 watchkit 中提供一致的应用名称 https://developer.apple.com/library/ios/qa/qa1892/_index.html
【讨论】:
【参考方案4】:您在 WatchKit App 目标下的 Info.plist 文件中的 Bundle Display Name (CFBundleIdentifier
) 键下设置此名称:
您为该键设置的值将在启动时显示并显示在用户设备上的 Apple Watch 配套应用程序中。
来源:虽然我们在模拟器中看不到此显示信息,但我知道这是设置此名称的地方,因为我的 WatchKit 应用程序因名称与商店。手表应用程序已设置为我的父应用程序的旧名称(当我添加目标时它默认为这个)。
App Review 为我提供了这些图片:
【讨论】:
是的,这有效,但仅适用于未本地化的字符串。【参考方案5】:我有同样的问题。苹果文件says。但它不起作用!
最后我在SlideShare找到了这个:
我可以通过更改包含应用程序包名称来更改我在 Apple Watch 上的应用程序名称!
【讨论】:
以上是关于iPhone WatchKit 配套应用显示名称的主要内容,如果未能解决你的问题,请参考以下文章
在没有配套应用程序的情况下从 Apple Watch 打开 Iphone 上的浏览器
如何从父 iphone 应用程序触发 watchkit 应用程序?