【问题标题】:Xamarin Studio exception when archiving for appstore归档应用商店时出现 Xamarin Studio 异常
【发布时间】:2013-11-02 10:15:52
【问题描述】:

我正在尝试归档构建以分发到应用商店,但在归档过程中,我不断收到来自 Xamarin Studio 的异常弹出消息,内容如下:

“发生错误 - 无法归档应用程序包。空字符串不被视为有效值”

签名应用时出现异常:

'System.ArgumentException: An empty string is not considered a valid value.
  at System.Enum.Parse (System.Type enumType, System.String value, Boolean ignoreCase) [0x00081] in /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin/build-root/mono-3.2.3/mcs/class/corlib/System/Enum.cs:523 
  at System.Enum.Parse (System.Type enumType, System.String value) [0x00000] in /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin/build-root/mono-3.2.3/mcs/class/corlib/System/Enum.cs:453 
  at Xamarin.MacDev.PropertyListFormat+XmlFormat+Context.ReadObjectHead () [0x00001] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:1737 
  at Xamarin.MacDev.PropertyListFormat+XmlFormat+Context..ctor (System.Xml.XmlReader reader) [0x0000f] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:1726 
  at Xamarin.MacDev.PropertyListFormat+XmlFormat.StartReading (System.IO.Stream input) [0x0008e] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:1702 
  at Xamarin.MacDev.PropertyListFormat.CreateReadContext (System.IO.Stream input) [0x00019] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:1070 
  at Xamarin.MacDev.PDictionary.FromFile (System.String fileName, System.Boolean& isBinary) [0x00026] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:664 
  at Xamarin.MacDev.PDictionary.FromFile (System.String fileName) [0x00004] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/Xamarin.MacDev/PListObject.cs:653 
  at MonoDevelop.IPhone.IPhoneProject.Archive (IProgressMonitor monitor, MonoDevelop.Projects.DotNetProjectConfiguration conf) [0x00111] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.0.13-branch/07afec66/source/md-addins/MonoDevelop.IPhone/MonoDevelop.IPhone/Project/IPhoneProject.cs:384' 

这是我的 bin\AppStore\iPhone\AppName.app\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>BuildMachineOSBuild</key>
    <string>11G63b</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleDisplayName</key>
    <string>ANet</string>
    <key>CFBundleExecutable</key>
    <string>ANetMobile</string>
    <key>CFBundleIconFiles</key>
    <array>
      <string>logo_57.png</string>
      <string>logo_114.png</string>
      <string>logo_120.png</string>
    </array>
    <key>CFBundleIdentifier</key>
    <string>com.anet.anmobile</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>ANetMobile</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleResourceSpecification</key>
    <string>ResourceRules.plist</string>
    <key>CFBundleShortVersionString</key>
    <string>1.1</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleSupportedPlatforms</key>
    <array>
      <string>iPhoneOS</string>
    </array>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>DTPlatformBuild</key>
    <string>9B176</string>
    <key>DTPlatformName</key>
    <string>iphoneos</string>
    <key>DTPlatformVersion</key>
    <string>5.1</string>
    <key>DTSDKBuild</key>
    <string>9B176</string>
    <key>DTSDKName</key>
    <string>iphoneos5.1</string>
    <key>DTXcode</key>
    <string>0440</string>
    <key>DTXcodeBuild</key>
    <string>4F250</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>MinimumOSVersion</key>
    <string>4.3</string>
    <key>UIDeviceFamily</key>
    <array>
      <integer>1</integer>
    </array>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
      <string>armv6</string>
    </array>
    <key>UIStatusBarTintParameters</key>
    <dict>
      <key>UINavigationBar</key>
      <dict>
        <key>Style</key>
        <string>UIBarStyleDefault</string>
        <key>TintColor</key>
        <dict>
          <key>Blue</key>
          <real>1</real>
          <key>Green</key>
          <real>0.0</real>
          <key>Red</key>
          <real>0.0</real>
        </dict>
        <key>Translucent</key>
        <false/>
      </dict>
    </dict>
    <key>UISupportedInterfaceOrientations</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
  </dict>
</plist>

【问题讨论】:

  • 你可能想分享你的 info.plist
  • 好的,我已经在上面添加了。

标签: xamarin.ios xamarin


【解决方案1】:

项目选项中是否填写了所有字段?确保您填写了应用名称。我本周归档了我的临时分发应用,没有任何问题。

【讨论】:

  • 一切似乎都在设置中填写,它在“签署应用程序”阶段发生异常。
  • 也许你应该重新创建你的证书/配置文件并使用新的。
  • 我已经做过很多次了。我已向 Xamarin 提交了一个错误,因为存档构建时看起来 .xcent 文件已损坏。我会及时通知你。
【解决方案2】:

尝试先解决这个问题:

<key>CFBundleSignature</key>
<string>????</string>

在您的项目选项中:

尝试设置一个有效的包标识符。

然后,为了构建 AppStore,您必须在 Apple 网站上注册此 BundleIdentifier

【讨论】:

  • 嗨 Stephane,我昨天在 Xamarin 论坛上发布了这个问题,来自 TeamXamarin 的贡献者说 CFBundleSignature 应该是????。但是,正如您所建议的,我已经创建了一个带有 bundle ID 的标识符,以及一个证书和配置文件,但仍然存在同样的问题。
  • 确保您的 AppID/证书/供应配置文件都具有相同的捆绑标识符(或者您使用的是通配符)。
  • 等待向 Xamarin 报告错误的结果。
【解决方案3】:

Xamarin 已确认这是 Studio 中的错误,将在 4.0.14 修补程序版本中修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多