由于应用程序名称中的变音符号,我无法将应用程序上传到BlackBerry World

时间:2013-05-22 13:46:51

标签: blackberry code-signing blackberry-10

我有Android应用程序(.apk包)。应用程序名称包含umlauts。我正在尝试将.apk捆绑包转换为.bar(BlackBerry 10)。我正在使用Eclipse的BlackBerry Repackaging Tool插件。

在.bar包中的MANIFEST.MF文件中重新打包和签署流程应用程序名称后包含'?'标志而不是变音符号。由于这个原因,我无法将.bar捆绑包上传到BlackBerry World。当我试图上传它时,我收到错误:

  

Manifest主要属性的System.exit调用无效的签名文件摘要!

2 个答案:

答案 0 :(得分:1)

Michail,你自己的答案不能正常运作。 BAR文件已签名并验证,但如果我将最终应用程序安装到真正的Z10设备,则会有“App f \ u00FCr BlackBerry”作为应用程序名称(直接打印转义序列)。

我在这里找到了简单的解决方案:Cyrillic app name incorrectly encoded during porting Android app to Blackberry

问题在于BlackBerry命令工具使用的编码。只需要添加

-Dfile.encoding=utf-8

参数进入apk2bar和blackberry-signer批处理命令。例如:

java -Djava.awt.headless=true -Dfile.encoding=utf-8 -Xmx512M -cp "$LIB/BarPackager.jar:$LIB/Apk2Bar.jar"...

然后,您可以直接从Eclipse使用BlackBerry World签名。

答案 1 :(得分:0)

我想我找到了解决方案。

假设我们在其名称中有一个带有变音符号的Android应用程序(.APK),例如:"App für BlackBerry"。如果我们想成功将其转换为BlackBerry应用程序(.BAR),请签名并上传到BlackBerry World,然后我们必须做下一件事:

  1. 使用Android项目的AndroidManifest.xml文件中的unicode转义序列替换应用程序名称中的变音符号。所以,我们将"App f\u00FCr BlackBerry"。构建我们的应用程序(这将创建.APK文件)。

  2. 使用apk2bar实用程序将.APK转换为.BAR(这将在与.APK文件相同的文件夹中创建.BAR文件):

    apk2bar <path to our .APK file> <path to Android SDK>
    
  3. 将.BAR文件的文件扩展名更改为.ZIP(或在.BAR之后添加.ZIP)。使用任何存档管理器解压缩文件。我们应该在存档文件夹中看到下一个文件:

    android/<application name>.APK
    META-INF/MANIFEST.MF
    

    我们需要打开META-INF / MANIFEST.MF文件并检查“Application-Name”和“Entry-Point-Name”行。如果他们看起来像:

    Application-Name: App für BlackBerry
    Entry-Point-Name: App für BlackBerry
    

    然后我们需要将MANIFEST.MF文件复制到与.APK文件相同的文件夹中,并用unicode转义序列替换这些行中的变音符号:

    Application-Name: App f\u00FCr BlackBerry
    Entry-Point-Name: App f\u00FCr BlackBerry
    

    在此步骤之后,我们可以删除.ZIP文件和unziped文件夹。

  4. 再次使用apk2bar实用程序并附加选项:

    apk2bar <path to our .APK file> <path to Android SDK> -m <path to our updated MANIFEST.MF file>
    

    在此步骤之后,我们将在内部MANIFEST.MF文件中使用带有unicode转义序列的.BAR文件而不是变音符号。

    警告:不要更新内部MANIFEST.MF文件,zip unziped文件夹并将.ZIP中的存档扩展名更改回.BAR。它可能会破坏.BAR文件。所以这对我而言。

  5. 使用blackberry-signer实用程序签署.BAR文件。

    • 如果我们的p12和CSK密码相同,那么我们可以使用:

      blackberry-signer -storepass <our P12/CSK password> <path to our .BAR file>
      
    • 如果我们的p12和CSK密码不一样,那么我们应该使用: blackberry-signer -keystore -storepass作者 和

      blackberry-signer -verbose -cskpass <our CSK password> -keystore <path to our lP12 file> -storepass <our P12 password> <path to our .BAR file> RDK
      
  6. 验证我们的.BAR文件:

    blackberry-signer -verify <path to our .BAR file>
    
  7. 如果此命令没有显示错误,那么我们可以将.BAR文件上传到BlackBerry World。

    就是这样。