ios xcode文件前缀_关于ios8:Xcode 6错误:“嵌入式二进制文件的包标识符未以父应用程序的包标识符为前缀。”...

本文讨论了在Xcode 6中遇到的'嵌入式二进制文件的包标识符未以父应用程序的包标识符为前缀'的错误。作者分享了遇到该问题的情况,以及清理构建、更改扩展捆绑包ID、检查代码签名设置等尝试的解决方案。其他开发者提供了他们的经验,包括修改WatchKit扩展的捆绑包ID、清理派生数据、手动调整配置文件等方法。
摘要由CSDN通过智能技术生成

我正在尝试构建扩展项目,而Xcode不断在主题中抛出错误。

不用说,该扩展程序的捆绑软件ID会以应用程序的捆绑软件ID为前缀。

产品名称:ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

我试过清理build文件夹并重建,没有运气。 有趣的是,整个项目构建了几次,但是在对代码和UI进行一些更改之后,它开始失败。 即使创建新项目,大约5到6个构建之后,同样的事情也会发生。

还有其他人遇到此错误吗? 有解决方案或解决方法的提示吗?

在构建之前尝试清理。这为我解决了这个问题(Xcode 6b2)。

Xcode 6b2解决了问题,构建很好。只是在启动应用程序时崩溃:)

运行清理解决了我类似的问题;就我而言,它抱怨捆绑标识符不是嵌入式应用程序的子集。

这也解决了我的问题。

@chitza明确表示:"我曾经尝试清理过build文件夹并进行重建,没有运气。"我也遇到了chitzas问题,并且无法通过Xcode 9.3修复该问题。

建议删除DerivedData,然后清理。步骤如下:Xcode文件->工作区设置->单击直接按钮(仅在高级按钮上方)转到/ Users / {YourName} / Library / Developer / Xcode / DerivedData->删除DerivfedData下面的所有内容

当WatchOS 2到货时,捆绑包ID行为似乎已更改。

以前我有一个扩展束标识符,如下所示:

com.mycompany.myappname.watchkitextension

在Stackoverflow上的其他地方,提到了扩展束标识符应采用这种格式,但是无论我尝试了什么,Xcode都会不断向我抛出错误。

唯一可能的解决方案是将扩展束标识符更改为:

com.mycompany.myappname.watchkitapp.watchkitextension

我很确定WatchOS 1应用程序不是这种情况。由于此更改而导致的问题是,您实际上无法为捆绑包标识符com.mycompany.myappname.watchkitextension生成应用程序ID。这不是必需的,只需将构建设置中的所有供应配置文件设置为自动,并且不要忘记为您的发布/临时/调试方案使用正确的代码签名证书。

我实际上发现这种方法行之有效,因为Xcode建议解决此问题,而这就是它的作用。

我尝试了此操作,但是由于无法获取配置文件配置文件的权限,因此我无法提交给itunesconnect,因为该配置文件没有与我的watchkit扩展配置文件相关的应用程序组的权限,该配置文件具有以前的捆绑包ID(com.mycompany.myname.watchkitextension) ...我们如何解决此问题并成功提交给intunesconnect?

同样的问题在这里..是否有修复程序?

它也解决了我的问题,谢谢,这与第一次watchOS不一样

非常适合我的iOS应用小部件/手表扩展,非常感谢!

我进行了如下更改:

主应用程序捆绑包ID:com.myapp.testapp

扩展应用程序捆绑包ID:com.myapp.testapp.myextension

和它的作品!

对于主应用程序和扩展应用程序,我们是否需要具有两个包ID和两个不同的配置文件?或仅对主应用程序有一个捆绑包标识符,然后通过将.whateverextension附加到主应用程序捆绑包ID来对扩展应用程序使用相同的标识符?

是的,Ganesh,如果应用程序具有推送通知功能或需要唯一标识符,则我们需要为主应用程序和扩展应用程序提供两个不同的配置文件。

我必须手动将扩展程序的info.plist中的BundleID更改为所需的内容。

我提起雷达:rdar:// 17487465

我们的构建成功完成了这一更改。我们的info.plist文件中的BundleId为${PRODUCT_NAME}。因此,对于OP的示例,请在扩展名info.plist文件中,将ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier)用作BundleId。

我爱你雅各布=)

@SushiGrass Jacob(Y)

这帮助了我:

该扩展名必须具有父级的捆绑软件ID作为其前缀。

例如,如果您的应用程序是com.ronnathan.myapp,则扩展名必须是com.ronnathan.myapp.today。您已重命名了应用程序目标,现在进入扩展目标并更改名称以使其匹配。

从这里取

Target-> General-> Embedded Binaries删除旧版本并选择新版本,这就是我解决此问题的方法

在Watch App Target上进行上述更改。

我遇到了同样的错误,您可能添加了一个扩展,例如Today小部件,因为该扩展本身也是一个二进制文件,因此它具有自己的plist,并确保在扩展的plist中,捆绑包ID前缀为应用程序的捆绑包ID。希望这可以帮助。

不幸的是,这没有帮助。我已经说明了它的扩展名("我正在尝试构建扩展项目"),并且捆绑包ID是正确的("直到今天,扩展捆绑包ID都以应用程序捆绑包ID为前缀")。

我的扩展程序与该应用程序具有完全相同的ID,您是否尝试过清理项目?或删除派生数据?

是的,我确实做到了,但是不幸的是它没有解决问题:"我曾经尝试清理过构建文件夹并重建,没有运气。"

就我而言,当我更改应用程序捆绑包标识符时发生了此错误。我的项目中也有WatchKit App。

要解决此问题,请使用您应用的新捆绑包ID更新WatchKit Extension和WatchKit App捆绑包ID前缀。检查两个目标中的info.plist。

同时更新以下内容-

使用新的Watch App捆绑包ID更新以下内容。

WatchKit扩展> Info.plist-NSExtension-> NSExtensionAttributes-> WKAppBundleIdentifier

使用新的应用程序ID更新以下内容。

WatchKit应用> Info.plist-WKCompanionAppBundleIdentifier

更改所有值后,别忘了清洁产品一次。

是的,这就是它显示该错误的原因。

您可能已经复制了目标以执行克隆应用程序。例如,您选择了每个目标并复制了它们。克隆您的watchkit扩展目标时,其目标成员资格可能会自动分配给原始watch应用。

要解决此问题,您需要在Project Navigator中转到原始的" WatchKit extension.appex"文件,并在File Inspector中取消选择" Target Membership"作为新的克隆监视应用程序目标。您应该对重复的" Watchkit extension-copy.appex"执行相反的操作,并确保仅在其中选择了重复的" watch app-copy"目标。

确保您的:

目标应用A->内置设置->代码签名->发布

与以下内容相同:

目标应用程序A(扩展名)->内置设置->代码签名->发布

我尝试了此处给出的大多数解决方案,但并没有帮助我解决Xcode 9.4中的问题

这样的回答可以帮助我解决问题。

我所做的只是

取消选中所有目标和项目的自动管理签名

在代码签名中,使其成为所有目标和项目的iOS Developer。

清理项目,然后关闭项目并打开它。

现在,为目标启用"自动管理签名"并选择开发者帐户。然后建立它。

它修复了我的错误。我不知道苹果何时会解决这些问题。它要花很多时间。

编辑:我也使用此答案,那我的目标捆绑包ID是com.companyname.projectname和扩展捆绑包ID com.companyname.projectname.myextension

我只是清理派生文件夹,在这种情况下它对我有帮助。

转到每个目标>构建设置>产品捆绑包标识符>(重命名为任意名称)

我有一个包含多个项目的工作区。使用Xcodes搜索功能和"构建设置"搜索功能,我能够找到每个需要更改的实例。工作完美!

我遇到了同样的问题。将WatchKit扩展程序的CFBundleIdentifier更改为我首次添加WatchKit扩展程序时使用的原始值以外的其他值,并重新设置共享的应用程序组权利为我修复了该问题。

更改捆绑软件ID是可以的...但是我的watchkit扩展配置配置文件具有旧的捆绑软件ID,因此我无法使用新的捆绑软件ID将我的应用提交到itunesconnect,因为没有配置文件支持应用程序组,我遇到了错误。您如何重置您的共享组权利?

只需从?/ Library / MobileDevice / Provisioning Profiles中删除应用程序配置文件,重新加载Xcode并在Xcode提示时修复问题(或从iOS开发中心手动下载它们)。

为我解决了这个问题。

我按照你的解决方案。但发生相同的错误。在xcode 6.0.1和ios 8.0.2中运行

问题可能是您在将文件夹添加到项目中时使用"创建文件夹引用"添加了一个文件夹(就像我一样)。 @Jacob的修复不适用于我:(

我必须删除添加到项目中的文件夹引用,然后进行清理和构建,并为我修复了该问题。

这对我很有帮助:

我得到:

Xcode couldn't find any iOS App Development provisioning profiles matching

因此,我将捆绑包标识符名称(即com.example.something更改为com.example.something1),然后清理了构建。

确保同时更改所有从属包的ID。.njoy!

确保扩展的捆绑包标识符以应用捆绑包标识符为前缀。

如果相同但仍给出错误,则转到Extension的.plist文件并更改其Bundle Identifier。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值