存档上传错误:错误ITMS-90207 - 包中不包含可执行文件

时间:2015-12-29 13:27:10

标签: ios xcode app-store itunesconnect

我有一个使用Xcode 7.2在Swift 2.1.1中开发的iOS应用程序。该应用程序运行完美,Xcode创建存档没有问题,但在将其上传到应用程序商店(iTunes Connect)后,我收到以下错误:

  

错误ITMS-90207:"无效的捆绑包。在我的应用名称.app'   不包含可执行文件。"

我已经尝试过任何我能找到的建议,但没有任何改进。我该如何解决这个问题?我怎样才能找到原因?有解决方法吗?

我使用CocoaPods的多个库,我的Podfile:

platform :ios, '8.0'
use_frameworks!

target 'My App Name' do
    pod 'RealmSwift'
    pod 'SwiftDateExtension'
    pod "JDFTooltips"
end
target 'My App NameTests' do
    pod 'RealmSwift'
end

我的Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSHumanReadableCopyright</key>
    <string>Text removed</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Text removed</string>
    <key>UILaunchStoryboardName</key>
    <string>Launch Screen</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
</dict>
</plist>

我尝试了我能找到的任何建议,包括:

  • 在应用目标中设置了套件ID,重新添加了info.plist(source
  • CFBundleExecutable在Info.plist中设置(source
  • 设备是否连接没有区别(source
  • 禁用位代码
  • 我进入存档以确保它包含可执行文件,并且Plist文件正确链接到它(从我可以收集的内容)。甚至删除名称中的空格以确保不是问题。

1 个答案:

答案 0 :(得分:1)

原来NSHumanReadableCopyright打破了Info.plist。完全从Info.plist中删除密钥解决了问题(仅删除©字符是不够的)。

我认为对于遇到类似问题的任何人来说,尝试使用默认的,未经修改的Info.plist提交存档以查看是否有效是一个公平的建议。根据我的经验,您可以根据需要提交多次,所以请不要犹豫实验。

我添加了密钥,因为Apple建议在他们的文档中这样做:https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html#//apple_ref/doc/uid/TP40012582-CH28-SW29。 当他们无法解释Info.plist时,他们的验证过程会破坏并指向可执行文件,这似乎很奇怪和愚蠢。