xcode 二进制拒绝 - 无效的 Watchkit 支持
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28973149/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Binary Rejection - Invalid Watchkit Support
提问by Guo Luchuan
We develop Watchkit app about 1.5 month, and we used Xcode 6.2 beta2,beta4, Xcode 6.3 beta to develop before and now use Xcode 6.2 (6c131e) to develop
我们开发Watchkit app大约1.5个月,之前使用Xcode 6.2 beta2,beta4, Xcode 6.3 beta开发,现在使用Xcode 6.2 (6c131e)开发
We use Xcode 6.2 (6c131e) to archive our project , and use Application loader to submit our app.
我们使用 Xcode 6.2 (6c131e) 来归档我们的项目,并使用 Application loader 提交我们的应用程序。
And then we received the rejection:
然后我们收到了拒绝:
"The bundle contains an invalid implementation of WatchKit. The app may have been build or signed with non-compliant or pre-release tools. Visit developer.apple.com for more information. "
“该捆绑包包含无效的 WatchKit 实现。该应用程序可能是使用不合规或预发布工具构建或签名的。访问 developer.apple.com 了解更多信息。”
anyone help me , thx.
任何人都可以帮助我,谢谢。
回答by Bobjt
Apple Watch apps are now accepted into the App Store as of Tues. March 31.
自周二起,Apple Watch 应用程序现已被 App Store 接受。3 月 31 日。
However, for folks using the old submission workflow of submitting a zipped .app will hit this error because zipped apps are no longer supported for apps that contain a watch extension. Follow these steps to generate a submittable .ipa file instead.
但是,对于使用旧的提交压缩的 .app 工作流程的人来说,会遇到这个错误,因为包含手表扩展的应用不再支持压缩的应用。请按照以下步骤生成可提交的 .ipa 文件。
Supporting Raw Zip Watch App SubmissionsApp Store import validation ensures that watch app submissions include additional files alongside the submitted bundle that are generated by Xcode. This prevents you from using the old submission workflow of submitting a zipped app file using Application Loader.
支持 Raw Zip Watch App SubmissionsApp Store 导入验证确保手表应用程序提交包括由 Xcode 生成的提交包旁边的其他文件。这可以防止您使用旧的提交工作流程,即使用 Application Loader 提交压缩的应用程序文件。
However, if you have a build process which currently prevents submitting the watch app using Xcode, you may use the following process to generate the necessary .ipa file to be submitted using Application Loader:
但是,如果您的构建过程当前阻止使用 Xcode 提交手表应用程序,则可以使用以下过程生成要使用 Application Loader 提交的必要 .ipa 文件:
- Create a directory named WatchKitSupport as a sibling to Payload
- Copy a binary named "WK" from the iOS 8.2 SDK in Xcode to your new WatchKitSupport directory. This binary can be found at: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/
- Do not touch or re-sign the WK binary in any way
- Compress everything into a zip and rename the file extension to .ipa
- 创建一个名为 WatchKitSupport 的目录作为 Payload 的同级目录
- 将名为“WK”的二进制文件从 Xcode 中的 iOS 8.2 SDK 复制到新的 WatchKitSupport 目录。这个二进制文件可以在:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/
- 不要以任何方式接触或重新签署 WK 二进制文件
- 将所有内容压缩为 zip 并将文件扩展名重命名为 .ipa
Note: You may compare your .ipa with one generated by Xcode by exporting an .ipa from an archive of a new Xcode project template for which you have added a watch target.
注意:您可以通过从添加了监视目标的新 Xcode 项目模板的存档中导出 .ipa 来将 .ipa 与 Xcode 生成的文件进行比较。
The format of the resulting IPA should contain (at least):
生成的 IPA 的格式应包含(至少):
myApp.ipa
|________Payload/
|________Symbols/
|________WatchKitSupport/
|_____WK
myApp.ipa
|________Payload/
|________Symbols/
|________WatchKitSupport/
|_____WK
Edit: The .dSYM corresponding to the built .app goes in Symbols/. You can always find it alongside the .app in the built products folder, or in dSYMs of an .xcarchive.
编辑:对应于内置 .app 的 .dSYM 进入 Symbols/。您始终可以在内置产品文件夹中的 .app 旁边或 .xcarchive 的 dSYM 中找到它。
回答by Gaurav
While uploading apple watch app, it need to have apple watch extension into embedded binary of iOS app. But if you are habbitat to delete derived data then xcode6 will delete that target. and when you submit it to apple it will only get ios app not apple watch app.enter image description here
上传苹果手表应用程序时,需要将苹果手表扩展程序嵌入到iOS应用程序的嵌入式二进制文件中。但是,如果您想要删除派生数据,那么 xcode6 将删除该目标。当你将它提交给苹果时,它只会得到 ios 应用程序而不是苹果手表应用程序。在此处输入图片描述
Adding Embedded Binaries fails in Xcode Xcode won't link framework form separate project App crashes on device because of missing framework, works in simulator Overview
在 Xcode 中添加嵌入式二进制文件失败 Xcode 不会链接框架形成单独的项目 由于缺少框架,应用程序在设备上崩溃,可在模拟器中运行 概述
After deleting the "DerivedData" folder (or performing a "Product > Clean") in xcode6, I cannot add CocoaTouch frameworks from another project to the "Embedded Binary" section (under General tab).
在 xcode6 中删除“DerivedData”文件夹(或执行“Product > Clean”)后,我无法将 CocoaTouch 框架从另一个项目添加到“嵌入式二进制”部分(在“常规”选项卡下)。
Or, Xcode hits a linker error because it cannot find a framework that if previously could.
或者,Xcode 遇到链接器错误,因为它找不到以前可以找到的框架。
Other symptoms
其他症状
Clicking on the + under "Embedded Binaries" shows the Framework selector but selecting a framework in different project in the workspace does nothing.
单击“嵌入式二进制文件”下的 + 会显示框架选择器,但在工作区中的不同项目中选择框架没有任何作用。
回答by aasatt
As @bobjt stated above, the old way up uploading a .zip file via the Application Loader is no longer valid for apps that contain a WatchKit app/extension.
正如上面@bobjt 所说,通过应用程序加载器上传 .zip 文件的旧方法不再适用于包含 WatchKit 应用程序/扩展的应用程序。
I was able to upload a valid binary by building my app and then going to Product>Archive>Submit to App Store.
我能够通过构建我的应用程序上传有效的二进制文件,然后转到产品>存档>提交到 App Store。
回答by BalestraPatrick
You can't submit WatchKit apps at the moment. Please wait for an official Apple announcement.
您目前无法提交 WatchKit 应用程序。请等待苹果官方公告。
回答by Kalana Meth Jayatilake
I had the same issue. I solved it by putting the correct image assets to the App Icon & uploaded the app through Xcode not the Application Loader. I archived the app from Xcode & validated it. After that I submitted it through Xcode.
我遇到过同样的问题。我通过将正确的图像资产放入应用程序图标并通过 Xcode 而不是应用程序加载器上传应用程序来解决它。我从 Xcode 归档了该应用程序并对其进行了验证。之后我通过Xcode提交了它。