WatchKit 扩展包标识符
WatchKit Extension bundle identifiers
我正在尝试构建我的应用程序,但失败了。我看到了下面的消息。
error: WatchKit Extension doesn't contain any WatchKit apps whose bundle identifiers match "com.domain.appname.watchkitapp". Verify that the value of WKAppBundleIdentifier in your WatchKit Extension's Info.plist matches the value of CFBundleIdentifier in your WatchKit App's Info.plist.
我最近将 "com.domain.appname.watchkitapp"
更改为 "com.domain.differentappname.watchkitapp"
。
我找不到在哪里更改它。
因此,如果您只想 运行 在测试设备上进行更改,则不必进行任何更改。但是您确实需要再请求两个配置文件才能测试手表应用程序。这两个额外的标识符可以从扩展目标和手表应用目标中获取。当您想将手表应用程序上传到 App Store
时,这也是您需要做的事情
更改包标识符时必须小心,下面是它们的设置方式(您需要为 iPhone 应用程序更改 Info.plist 中的每个标识符,对于 Watchkit Extension 和 Watchkit App):
iPhone 申请 Info.plist:
根据需要设置任何捆绑标识符(“捆绑标识符”属性)。
示例:
Bundle identifier: com.fruitcompany.orange
WatchKit 应用程序 Info.plist
这里的包标识符必须以iPhone应用程序的标识符为前缀,像这样(例子):
Bundle identifier: com.fruitcompany.orange.watchkit
您还需要更改 WKCompanionAppBundleIdentifier
, 必须 与 iPhone 应用程序包标识符匹配,如下所示:
WKCompanionAppBundleIdentifier: com.fruitcompany.orange
WatchKit 扩展 Info.plist:
这里的包标识符必须以iPhone应用程序的标识符为前缀,像这样(例子):
Bundle identifier: com.fruitcompany.orange.watchkit.extension
您还需要在 NSExtension
属性下设置 WKAppBundleIdentifier
。
WKAppBundleIdentifier
标识符 必须 与 WatchKit 应用程序包标识符匹配,如下所示:
WKAppBundleIdentifier: com.fruitcompany.orange.watchkit
不要忘记检查项目目标中的 Bundle ID 是否与 Info.plist!
中的相同
您可能还必须更改项目 iOS 配套应用信息 p.list 中的 WKCompanionAppBundleidentifier 密钥,以匹配手表套件扩展 info.plist 中的 WKAppBundleIdentifer 密钥。当我复制一个早期的手表套件项目并更改手表套件扩展 info.plist 中的 WKAppBundleIdentifier 以匹配手表套件 info.plist 中的包标识符时,我发现了这一点,但该项目仍然出现相同的错误。您需要转到 Finder,找到 iOS 配套项目 info.plist,然后在其上找到 double-click,然后根据需要更改 WKCompanionAppBundleIdentifer 密钥。通过查看 Xcode.
中的 info.plist,我无法看到此密钥
首先,让我强调@DejanSkledar 在本页上的出色回答,因为回答中提到的所有位置都很重要。
也就是说,该答案中的精确设置对我来说还不够。我想补充这个答案并指出,自 watchkit 2 以来,从应用程序到手表应用程序,最后到应用程序扩展程序的 bundle id,似乎需要一个层次结构。
以下是在我找到 edwardmp's answer on a related issue 后对我有用的每个相应 info.plist 文件中的设置。
iPhone 应用程序包 ID:
com.domain.yourapp
观看应用程序的捆绑 ID:
com.domain.yourapp.watchkit
Watchkit 的扩展包 ID:
com.domain.yourapp.watchkit.extension
如您所见,iPhone 应用程序有一个 watchkit 应用程序,它本身恰好有一个 watchkit 扩展,并且每个级别都必须反映在它们各自的 bundle id 中。
完成关系后,手表应用必须使用它的 (WKCompanionAppBundleIdentifier) 指向它所属的 iPhone 应用,并且手表扩展必须指向它所属的手表应用 (WKAppBundleIdentifier)。
观看应用程序的 WKCompanionAppBundleIdentifier:
com.domain.yourapp
观看应用程序的扩展 WKAppBundleIdentifier:
com.domain.yourapp.watchkit
希望这可以节省一些时间,因为我不得不为此苦苦挣扎了几个小时:(
In the WatchKit Extension info.plist is an entry NSExtension. Exand it and you'll find a key WKAppBundleIdentifier which is a reference to the bundle identifier of the WatchApp
从 Apple 试试这个:
https://developer.apple.com/forums/thread/5956?login=true
我正在尝试构建我的应用程序,但失败了。我看到了下面的消息。
error: WatchKit Extension doesn't contain any WatchKit apps whose bundle identifiers match "com.domain.appname.watchkitapp". Verify that the value of WKAppBundleIdentifier in your WatchKit Extension's Info.plist matches the value of CFBundleIdentifier in your WatchKit App's Info.plist.
我最近将 "com.domain.appname.watchkitapp"
更改为 "com.domain.differentappname.watchkitapp"
。
我找不到在哪里更改它。
因此,如果您只想 运行 在测试设备上进行更改,则不必进行任何更改。但是您确实需要再请求两个配置文件才能测试手表应用程序。这两个额外的标识符可以从扩展目标和手表应用目标中获取。当您想将手表应用程序上传到 App Store
时,这也是您需要做的事情更改包标识符时必须小心,下面是它们的设置方式(您需要为 iPhone 应用程序更改 Info.plist 中的每个标识符,对于 Watchkit Extension 和 Watchkit App):
iPhone 申请 Info.plist:
根据需要设置任何捆绑标识符(“捆绑标识符”属性)。
示例:
Bundle identifier: com.fruitcompany.orange
WatchKit 应用程序 Info.plist
这里的包标识符必须以iPhone应用程序的标识符为前缀,像这样(例子):
Bundle identifier: com.fruitcompany.orange.watchkit
您还需要更改 WKCompanionAppBundleIdentifier
, 必须 与 iPhone 应用程序包标识符匹配,如下所示:
WKCompanionAppBundleIdentifier: com.fruitcompany.orange
WatchKit 扩展 Info.plist:
这里的包标识符必须以iPhone应用程序的标识符为前缀,像这样(例子):
Bundle identifier: com.fruitcompany.orange.watchkit.extension
您还需要在 NSExtension
属性下设置 WKAppBundleIdentifier
。
WKAppBundleIdentifier
标识符 必须 与 WatchKit 应用程序包标识符匹配,如下所示:
WKAppBundleIdentifier: com.fruitcompany.orange.watchkit
不要忘记检查项目目标中的 Bundle ID 是否与 Info.plist!
中的相同您可能还必须更改项目 iOS 配套应用信息 p.list 中的 WKCompanionAppBundleidentifier 密钥,以匹配手表套件扩展 info.plist 中的 WKAppBundleIdentifer 密钥。当我复制一个早期的手表套件项目并更改手表套件扩展 info.plist 中的 WKAppBundleIdentifier 以匹配手表套件 info.plist 中的包标识符时,我发现了这一点,但该项目仍然出现相同的错误。您需要转到 Finder,找到 iOS 配套项目 info.plist,然后在其上找到 double-click,然后根据需要更改 WKCompanionAppBundleIdentifer 密钥。通过查看 Xcode.
中的 info.plist,我无法看到此密钥首先,让我强调@DejanSkledar 在本页上的出色回答,因为回答中提到的所有位置都很重要。
也就是说,该答案中的精确设置对我来说还不够。我想补充这个答案并指出,自 watchkit 2 以来,从应用程序到手表应用程序,最后到应用程序扩展程序的 bundle id,似乎需要一个层次结构。
以下是在我找到 edwardmp's answer on a related issue 后对我有用的每个相应 info.plist 文件中的设置。
iPhone 应用程序包 ID: com.domain.yourapp
观看应用程序的捆绑 ID: com.domain.yourapp.watchkit
Watchkit 的扩展包 ID: com.domain.yourapp.watchkit.extension
如您所见,iPhone 应用程序有一个 watchkit 应用程序,它本身恰好有一个 watchkit 扩展,并且每个级别都必须反映在它们各自的 bundle id 中。
完成关系后,手表应用必须使用它的 (WKCompanionAppBundleIdentifier) 指向它所属的 iPhone 应用,并且手表扩展必须指向它所属的手表应用 (WKAppBundleIdentifier)。
观看应用程序的 WKCompanionAppBundleIdentifier: com.domain.yourapp
观看应用程序的扩展 WKAppBundleIdentifier: com.domain.yourapp.watchkit
希望这可以节省一些时间,因为我不得不为此苦苦挣扎了几个小时:(
In the WatchKit Extension info.plist is an entry NSExtension. Exand it and you'll find a key WKAppBundleIdentifier which is a reference to the bundle identifier of the WatchApp
从 Apple 试试这个: https://developer.apple.com/forums/thread/5956?login=true