Xcode 10,WatchKit应用和带有com.apple.wk的分发错误ITMS-90334

时间:2018-09-21 05:37:17

标签: xcode watchkit code-signing xcode10 code-signing-entitlements

我有一个内部带有WatchKit应用程序的项目。

它过去可以与具有自动签名和分发功能的Xcode 8和Xcode 9配合使用。 Xcode 10损坏了某些东西。

我现在所拥有的是 enter image description here

这里的重点是“ com.apple.wk” 据我所知,它是在组织者重新签名阶段添加的。

我检查了我的项目四倍,我100%确信它在任何地方都不包含“ com.apple.wk”字符串。

我切换到手动签名。创建了新的iOS发行证书。生成了3个配置文件,其中包含适用于app,watch app和watchapp扩展的正确捆绑包。同样的错误在这里。

我试图清理项目,打开\关闭Xcode,重新启动系统。没运气。 由于上述错误,我无法将IPA扩展到iTunes。

我试图导出IPA并与Application Loader一起分发。没有运气。

我发现“ com.apple.wk”字符串的唯一位置是包装日志中

2018-09-21 06:54:33 +0000  /var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.4mX/Root/Payload/myApp.app/Watch/myApp Watch App.app: replacing existing signature    
2018-09-21 06:54:34 +0000  /var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.4mX/Root/Payload/myApp.app/Watch/myApp Watch App.app: signed app bundle with Mach-O universal (armv7k (33554444:1)) [com.apple.WK]

同一时间,主应用和扩展程序已使用正确的捆绑软件ID退出了

2018-09-21 06:54:34 +0000  /var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.4mX/Root/Payload/myApp.app: replacing existing signature
2018-09-21 06:54:34 +0000  /var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.4mX/Root/Payload/myApp.app: signed app bundle with Mach-O universal (armv7 arm64) [com.myAppBundleName]
&
2018-09-21 06:54:33 +0000  /var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.4mX/Root/Payload/myApp.app/Watch/myApp Watch App.app/PlugIns/myApp Watch App Extension.appex: signed bundle with Mach-O universal (armv7k (33554444:1)) [com.myAppBundleName.watchkitapp.watchkitextension]

任何提供我的应用程序的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

有两种选择:

a。 打开项目的每个目标,并将架构更改为$(ARCHS_STANDARD) ARCHS_STANDARD 清理构建文件夹,然后尝试照常上传。这应该允许您像往常一样通过管理器自动发送它。

b。。如果上述方法不起作用,请尝试以下操作:

  1. 使用XCode单击“存档”并获取xcarchive文件
  2. 在Finder中打开档案文件
  3. 通过管理器分发按钮开始分发到App Store存档
  4. 解决了上面的错误
  5. 导出创建的ipa文件
  6. 从导出目录中打开Packaging.log文件
  7. 搜索“ com.apple.wk”字符串以找到一个
  8. 分析打包日志中的codesign请求并发挥很多作用

    / usr / bin / codesign'-vvv''--force''--sign''B5152DB7C8BC97C444D44341275F5E1B3336BA3B''--entitlements''/ var / folders / gg / jxvtgf9n07s9m0z_vzqlx0c00000gn / T / lines'3ments。 --preserve-metadata = identifier,flags,runtime''/var/folders/gg/jxvtgf9n07s9m0z_vzqlx0c00000gn/T/XcodeDistPipeline.vsk/Root/Payload/myApp.app/Watch/myApp Watch App.app'

  9. 弄清楚,如果我删除此'--preserve-metadata=identifier,flags,runtime'并在bash中重新运行此代码,一切将会顺利进行,并且二进制文件将使用正确的包ID而不是使用com.apple.wk

    进行签名。
  10. 将已签名的嵌入式程序(您可以在上面的请求中找到的路径)复制观看应用程序二进制文件到第一步创建的xcarchive文件中,替换旧文件。
  11. 开始使用管理器将其分发回App Store
  12. Voila已上传。

希望它将对某人有所帮助。