udo*_*dan 5 validation xcode itunesconnect today-extension
我的项目或Xcode确实破坏了一些东西,我两天都在努力弄清楚发生了什么.
我的应用程序运行得很好,它是一个OS X应用程序,它包含Today Widget扩展.我最近完成了项目,现在由于验证错误,我无法发布应用程序.
它始于验证者抱怨我的应用程序组,我用它来共享主应用程序和Widget扩展之间的内容.该小组被定义为$(TeamIdentifierPrefix)com.acme.GreatApp.
验证者抱怨说我的组名格式错误,应该从我的TEAMID开始.在圈子跑了3个小时后,我$(TeamIdentifierPrefix)用我的团队ID(例如S3F45A5S35.)替换了占位符- 这很有效.
然后验证各种其他占位符的抱怨我info.plist和权利文件之类的东西$(PRODUCT_NAME),com.acme.GreatApp.$(PRODUCT_NAME:rfc1034identifier)和$(EXECUTABLE_NAME).我用相应的值替换了所有这些占位符,然后被接受.
然后,有一段时间验证者抱怨结构问题,这对我来说没有多大意义:
iTunes Store操作失败.坏CFBundleExecutable.找不到与嵌套包中的CFBundleExecutable值相匹配的可执行文件GreatAppWidget [com.acme.GreatApp.pkg/Payload/GreatApp.app/Contents]属性列表文件
iTunes Store操作失败.坏包标识符.应用程序扩展GreatApp.app/Contents/Plugins/GreatAppWidget.appex的包标识符'com.acme.GreatApp.GreatAppWidget'应扩展其包含应用程序的包标识符的虚线路径(com.acme.GreatApp.GreatAppWidget)
你是在告诉我我的分机是否包含在我的分机中?
iTunes Store操作失败.捆绑包位置无效.Bundle GreatApp.app/Contents/Plugins/GreatAppWidget.appex必须包含在父包的Contents/Plugins目录中.
好吧,错误表明我应该做它声称不正确的事情.显然它在父app文件夹中Contents/Plugins.所以呢?
iTunes Store操作失败.两个包的CFBundleExecutable可能不指向同一个文件.找到了以下共享包路径:GreatApp.app/Contents.
问题是,我的应用程序和扩展工作完全正常.如果有任何破坏,如依赖,路径或其他什么,一些东西很可能不会工作,不是吗?
此外,我没有修改任何构建设置或任何我不理解的东西.这些都是默认设置.我创建了一个新的Cocoa应用程序,添加了一个新的Today Widget Extension作为目标 - 就是这样.我没有乱用任何路径,位置,依赖关系,任何东西.
无论如何,这些错误只是暂时可见,我很幸运,我做了截图.因为现在,它再次显示错误消息中的原始占位符,即使我没有更改可能导致这种情况的事情.我唯一记得的就是在磁盘,钥匙串和成员中心本地删除/撤销所有配置文件和证书,并从头开始通过Xcode创建所有内容.
现在错误看起来像这样:
iTunes Store操作失败.坏CFBundleExecutable.找不到CFBundleExecutable的值在嵌套包相匹配的可执行文件$ {bundleName的} [ $ {bundlePath} ]属性列表文件
iTunes Store操作失败.坏包标识符.应用程序扩展$ {bundlePath}的包标识符' $ {bundleIdentifier} ' 应该扩展其包含应用程序的包标识符的虚线路径($ {parentBundleIdentifier})
iTunes Store操作失败.捆绑包位置无效.Bundle $ {bundlePath}必须包含在父包的$ {pluginsSubPath}目录中.
iTunes Store操作失败.两个包的CFBundleExecutable可能不指向同一个文件.找到了以下共享包路径:$ {sharedBundlePath}.
所以我想也许Apple在最近的更新中加入了它并且你无法验证具有扩展名的应用程序.所以我搜索了网络,发现了非常好的例子Today-Scripts.我添加了应用程序组($(TeamIdentifierPrefix)com.acme.Today-Scripts这里的占位符完美地工作)到所有目标,激活的沙盒,更改的证书和配置文件:它完美地验证了!
所以我比较了所有构建设置等.除了我必须用它们的实际值替换占位符,显然是证书和配置文件以及在Today-Scripts中有一个嵌入到Widget中的额外XPC目标的事实,它们原子上是一样的.每 一个 设置都是一样的.
我清理了所有缓存,真的很难.清理项目,清除~/Library/Developer/Xcode/DerivedData以及~/Library/Caches/com.apple.dt.Xcode,重新启动几次,没有什么帮助.
我真的很绝望,因为我不知道我能做什么.请有人了解Xcode在这里做了什么以及为什么.
info.plist和权利文件中的所有占位符?bundle在我工作时,如何发生上述错误
我终于找到了罪魁祸首!问题是,由于某些原因我无法解释,info.plist扩展是主要应用程序的成员(目标成员).我刚发现,通过按文件分析创建的归档文件,并info.plist在GreatApp.app/Contents/Resources文件夹中找到了一个附加内容.在该文件中,占位符未得到解决.然后,归档验证器将其info.plist用于验证.
那个小复选框花了我3天.
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |