签名无效。密封资源丢失或无效(与Android Studio一起使用RoboVM)

时间:2017-06-15 18:50:31

标签: ios xcode robovm application-loader

我已经完成了一个LibGDX应用程序,我已准备好将它放在Apple应用商店中。但是,当我使用XCode附带的Application Loader(XCode-> Open Developer Tool-> Application Loader)将它放在iTunes Connect上时,我收到此错误日志:

ERROR ITMS-90035: "Invalid Signature. A sealed resource is missing or invalid. The file at path [IOSLauncher.app/IOSLauncher] is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html"
ERROR ITMS-90022: "Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 7.0."
ERROR ITMS-90023: "Missing required icon file. The bundle does not contain an app icon for iPad of exactly '76x76' pixels, in .png format for iOS versions >= 7.0."
ERROR ITMS-90023: "Missing required icon file. The bundle does not contain an app icon for iPad of exactly '152x152' pixels, in .png format for iOS versions >= 7.0." 

最后三个错误是我可以解决的错误(据我所知,不是第一个错误的原因,这是我担心的那个)。

我有最新版本的XCode和RoboVM插件(今天刚重新安装),我有一个显示here的iOS配置文件(分发)。捆绑包ID与应用程序ID匹配。此外,我的所有证书都已下载并存放在我的KeyChain上。

这些是我用来从Android Studio使用RoboVM构建IPA的设置:image here正如您所看到的,我使用(我认为是)正确的签名证书和配置文件。

以下是我可能有用的其他一些文件:

robovm.properties:

app.version=1.0
app.id=com.mcfadden.raindodge
app.mainclass=com.samuel.doubledodge.IOSLauncher
app.executable=IOSLauncher
app.build=1
app.name=Rain Dodge

Info.plist.xml:

<?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>CFBundleDisplayName</key>
    <string>${app.name}</string>
    <key>CFBundleExecutable</key>
    <string>${app.executable}</string>
    <key>CFBundleIdentifier</key>
    <string>${app.id}</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>${app.name}</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>${app.version}</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>${app.build}</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>MinimumOSVersion</key>
    <string>8.0</string>
    <key>UIRequiresFullScreen</key>
    <string>YES</string>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <key>UIStatusBarHidden</key>
    <true/>
    <key>UIDeviceFamily</key>
    <array>
        <integer>1</integer>
        <integer>2</integer>
    </array>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
        <string>opengles-2</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>Icon</string>
                <string>Icon-72</string>
            </array>
        </dict>
    </dict>
</dict>
</plist>

Robovm.xml:

<config>
  <executableName>${app.executable}</executableName>
  <mainClass>${app.mainclass}</mainClass>
  <os>ios</os>
  <arch>thumbv7</arch>
  <target>ios</target>
  <iosInfoPList>Info.plist.xml</iosInfoPList>
  <resources>
    <resource>
      <directory>../android/assets</directory>
      <includes>
        <include>**</include>
      </includes>
      <skipPngCrush>true</skipPngCrush>
    </resource>
    <resource>
      <directory>data</directory>
    </resource>
  </resources>
  <forceLinkClasses>
    <pattern>com.badlogic.gdx.scenes.scene2d.ui.*</pattern>
    <pattern>com.badlogic.gdx.graphics.g3d.particles.**</pattern>
    <pattern>com.android.okhttp.HttpHandler</pattern>
    <pattern>com.android.okhttp.HttpsHandler</pattern>
    <pattern>com.android.org.conscrypt.**</pattern>
    <pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings</pattern>
    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi</pattern>
    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std</pattern>
    <pattern>com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi</pattern>
    <pattern>com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL</pattern>
    <pattern>org.apache.harmony.security.provider.cert.DRLCertFactory</pattern>
    <pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>
  </forceLinkClasses>

  <libs>
      <lib>z</lib>   
  </libs>
  <frameworkPaths>
    <path>libs</path>
  </frameworkPaths>
  <frameworks>
    <framework>UIKit</framework>
    <framework>OpenGLES</framework>
    <framework>QuartzCore</framework>
    <framework>CoreGraphics</framework>
    <framework>CoreMotion</framework>
    <framework>OpenAL</framework>
    <framework>AudioToolbox</framework>
    <framework>AVFoundation</framework>
    <framework>GLKit</framework>
    <framework>CoreTelephony</framework>
    <framework>CoreMedia</framework>
    <framework>CoreVideo</framework>
    <framework>MessageUI</framework>
    <framework>CFNetwork</framework>
    <framework>MobileCoreServices</framework>
    <framework>EventKit</framework>
    <framework>EventKitUI</framework>
    <framework>AdSupport</framework>
    <framework>StoreKit</framework>
    <framework>SystemConfiguration</framework>
    <framework>GoogleMobileAds</framework>
  </frameworks>
</config>

如果您需要更多信息,请发表评论,我会提供。我完全迷失了为什么这不起作用。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

Xcode 版本 9.2 (9C40b)我使用了2个iMac,一个是 High Sierra 10.13.1 ,另一个是< strong> Sierra 10.12.6 。在销毁所有证书并重建它们以尝试解决此阻塞错误之后:

无效签名 - 密封资源丢失或无效。路径中的文件未正确签名。确保您已使用分发证书签署了应用程序,而不是临时证书或开发证书。

我将我的项目从主 APFS (Apple文件系统)分区移动到我的iMac with High Sierra中的 HFS + 分区(我已经使用了我的备份分区但你也可以使用HFS +格式的usb笔)。我认为这是一个Apple bug,所以我添加了open radar bug报告。

答案 1 :(得分:0)

我不知道它是否会对您有所帮助,但对我来说,删除现有的IPA构建文件就足够了。我的IPA文件名是&#34; IOSLauncher.ipa&#34;所以我不得不删除&#34; IOSLauncher.app&#34;和&#34; IOSLauncher.app.dSYM&#34;目录和&#34; IOSLauncher.ipa&#34;文件。