• (转载)Java读取ipa中info.plist获取版本信息


    http://www.linuxidc.com/Linux/2012-01/51479.htm

    Android的manifest.xml类似,ios中一个应用的版本信息,应用名称,兼容的最低版本等等都在ipa包中的info.plist中列出,但是对于一个打包好ipa包,里面的info.plist是乱码的,想要获取信息还是相当的麻烦。而最近也要到这方面的需求,找到的第一个方案是使用java调用linux 中的plutil工具来实现对info.plist的解析,这样做虽然可以实现但感觉太牵强了,,第二个方案是继续寻找纯java的解决方案,找啊找最后还是在老外的一个网站上(overstackflow.com)上找到有人提这样的问题,幸运的是还有很多哥们回复,老外果然是牛逼,最后照着做,可行了,具体的是找到了一个jar包,简单调用一下就Ok,先贴一下代码,对于怎样从ipa中提取info.plist就不罗嗦了,使用zip流就可以搞定,提供一个别人弄好的实现参考一下就ok(http://code.google.com/p/sunlab/source/detail?r=339):

    [java]

    1. import java.io.File;  
    2.   
    3. import com.dd.plist.PropertyListParser;  
    4.   
    5. public class Plist {  
    6.     public static void main(String[] args) throws Exception {  
    7.         File file = new File("d:\\angryInfo.plist");  
    8.         File file1 = new File("d:\\angryInfo1.plist");  
    9.           
    10.         PropertyListParser.convertToXml(file, file1) ;  
    11.           
    12.           
    13.            
    14.         //InputStream input = Plist.class.getClassLoader().getResourceAsStream("");   
    15. //      NSDictionary rootDict = (NSDictionary) PropertyListParser.parse(file);   
    16. //         
    17. //         
    18. //         
    19. //         
    20. //      String name = rootDict.objectForKey("Name").toString();   
    21. //      NSObject[] parameters = ((NSArray) rootDict.objectForKey("Parameters")).getArray();   
    22. //      for (NSObject param : parameters) {   
    23. //             
    24. //          System.out.println(param.toXMLPropertyList());   
    25. //             
    26. //          if (param.getClass().equals(NSNumber.class)) {   
    27. //              NSNumber num = (NSNumber) param;   
    28. //              switch (num.type()) {   
    29. //              case NSNumber.BOOLEAN: {   
    30. //                  boolean bool = num.boolValue();   
    31. //                  // ...   
    32. //                  break;   
    33. //              }   
    34. //              case NSNumber.INTEGER: {   
    35. //                  long l = num.longValue();   
    36. //                  // or int i = num.intValue();   
    37. //                  // ...   
    38. //                  break;   
    39. //              }   
    40. //              case NSNumber.REAL: {   
    41. //                  double d = num.doubleValue();   
    42. //                  // ...   
    43. //                  break;   
    44. //              }   
    45. //              }   
    46. //          }   
    47. //          // else...   
    48. //      }   
    49.     }  
    50. }  

    在d盘下找到angryInfo1.plist打开,已不是乱码的了,现在想要提取啥信息就尽管提取。

    用到的jar下载:

    免费下载地址在 http://linux.linuxidc.com/

    用户名与密码都是www.linuxidc.com

    具体下载目录在 /2012年资料/1月/14日/Java读取ipa中info.plist获取版本信息/

  • 相关阅读:
    SQL SERVER 查询性能优化——分析事务与锁(一)
    SQL Server 查询性能优化——索引与SARG(三)
    SQL Server 查询性能优化——索引与SARG(二)
    SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)
    SQL SERVER的锁机制(一)——概述(锁的种类与范围)
    SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
    关于AutoResetEvent的使用
    ASP.NET缓存
    Spring Framework 3.2.1 发布
    ExactImage 0.8.8 发布,C++ 图像处理库
  • 原文地址:https://www.cnblogs.com/greywolf/p/3026482.html
Copyright © 2020-2023  润新知