解压缩iPA后显示应用程序文件的内容,打开exec显示我的本地路径

时间:2015-06-03 14:55:24

标签: ios ipa

我开发了一个应用程序,我需要从生成的iPA文件中删除我的计算机本地路径。

我做了以下事情:

  1. 解压缩iPA文件。
  2. 点击显示包内容。
  3. 使用文本编辑器打开exec(appname.exec)文件。
  4. 现在我可以看到一些二进制内容,以及带有我的计算机本地路径的字符串(使用我的mac名称)。

    由于安全问题,我必须从exec文件中删除这些路径。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

你不能这样做。首先它会破坏代码签名,其次是耗时且容易出错。

正确的方法是不在代码中使用完整路径,而是使用NSSearchPathForDirectoriesInDomains之类的方法来获取Documents文件夹或任何您想要使用的目录。

答案 1 :(得分:1)

正如Accessing Files and Directories所说:

  

虽然您可以打开任何文件并将其内容作为字节流读取,但这样做并不总是正确的选择。 OS X和iOS提供内置支持,可以更轻松地打开多种类型的标准文件格式(如文本文件,图像,声音和属性列表)。对于这些标准文件格式,您应该使用更高级别的选项来读取和写入文件内容。表2-1列出了系统支持的常用文件类型以及有关如何访问它们的信息。

enter image description here

您可以通过多种方式保存数据:

  1. 指定文件或目录的路径
  2. 找到应用包中的项目
  3. 在标准目录中查找项目
  4. 使用书签查找文件
  5. 您已选择Specifying the Path to a File or Directory,正如@Droppy所说

      

    首先它会破坏代码签名,其次是耗时且容易出错。

    您最好选择Locating Items in the Standard Directories

    这就是为什么你应该选择这种方式:

      

    在标准目录中查找项目   当您需要在其中一个标准目录中找到文件时,请使用系统框架首先找到该目录,然后使用生成的URL来构建该文件的路径。 Foundation框架包括几个用于查找标准系统目录的选项。通过使用这些方法,无论您的应用是否为沙盒,路径都是正确的:

    The URLsForDirectory:inDomains: method of the NSFileManager class returns a directory’s location packaged in an NSURL object. The directory to search for is an NSSearchPathDirectory constant. These constants provide URLs for the user’s home directory, as well as most of the standard directories.
    The NSSearchPathForDirectoriesInDomains function behaves like the URLsForDirectory:inDomains: method but returns the directory’s location as a string-based path. You should use the URLsForDirectory:inDomains: method instead.
    The NSHomeDirectory function returns the path to either the user’s or app’s home directory. (Which home directory is returned depends on the platform and whether the app is in a sandbox.) When an app is sandboxed the home directory points to the app’s sandbox, otherwise it points to the User’s home directory on the file system. If constructing a file to a subdirectory of a user’s home directory, you should instead consider using the URLsForDirectory:inDomains: method instead.
    
         

    您可以使用从前面的例程接收的URL或基于路径的字符串来构建具有所需文件位置的新对象。 NSURL和NSString类都提供了与路径相关的方法,用于添加和删除路径组件以及对路径进行一般更改。清单2-1显示了一个示例,它搜索标准的Application Support目录,并为包含应用程序数据文件的目录创建一个新URL。