8

我想分发一个企业 iOS 应用程序,这样当用户打开它时,它已经显示了他们的姓名和其他信息,即使 .ipa 与每个其他用户下载的 .ipa 相同。我认为我可以通过为用户提供特定于他们的应用程序下载 URL 并生成所需的企业下载 plist 以包含一些用户数据来做到这一点,但我的问题是:

甚至可以从应用程序内的下载链接访问/读取 Plist 吗?如果是这样,怎么做?

4

5 回答 5

7

有一种方法可以从应用程序中读取企业下载链接(但我确定您不会要求下载和读取文件的代码),但无法在应用程序中显示不同的内容索引页面或清单文件上的参数,而不更改 IPA 本身。

不幸的是,已安装的应用程序不知道从中下载它的清单文件或索引页面。

编辑参考/来源

此链接在标题为“Exporting Your App for Testing outside the App Store”的部分下:Exporting Your App for Testing (iOS, watchOS)讨论清单文件,但未提及从 Web 部署到应用程序的任何数据链.

我还与 Apple 的一位高级顾问进行了交谈,他确认没有任何机制可以让 App 了解 App 的安装位置。

于 2015-09-01T15:18:07.873 回答
2

我能想到的唯一方法是向所有用户发送相同的链接(examplesite.com/ios/download),并向他们发送一个唯一的用户标识符“SG5JD5J”。首次下载并打开应用程序时,提示用户输入其唯一的用户识别码。此时,您的应用程序可以更新他们的 plist 并进入应用程序。

不幸的是,您想要执行此操作的方式需要私有 API越狱的 iOS 设备,以便您可以查看网络浏览器历史记录,找到最后带有唯一标识符的 URL(例如 site.com/ios/download)并更新plist 根据需要。

如果您找到解决方案,请发表评论,因为我有兴趣看到。

于 2015-09-02T09:16:33.003 回答
1

我可以想到两个选择:

  1. 您可以创建“个性化”IPA。换句话说,当用户请求下载 IPA 时,您的服务器将生成一个包含所有用户信息的 plist,将文件保存在 IPA 中,然后运行codesign​​. 然后只需将 IPA 提供给用户。
  2. 使用 MDM 将信息直接注入NSUserDefaultshttps ://developer.apple.com/library/ios/samplecode/sc2279/Introduction/Intro.html
于 2015-09-02T05:12:03.657 回答
0

如果尚未安装在设备中,则无法从 IPA 读取任何文件

您可以做的是从您的网站获取用户信息,即让用户在您的下载页面填写表格。然后将数据连同您可以从下载页面生成的GUID一起保存到您的服务器。

安装并运行应用程序后,应用程序应重新创建 GUID,然后查询您的服务器以查找与 GUID 关联的用户信息。

然后,您的应用可以预先填写用户信息。

挑战在于您的下载页面如何创建一个 GUID,该 GUID 也将由已安装的应用程序重新创建?好吧,您可以使用浏览器信息创建 GUID。查看如何使用浏览器信息创建 GUID:

https://andywalpole.me/#!/blog/140739/using-javascript-create-guid-from-users-browser-information

于 2015-09-02T10:55:22.527 回答
0

不,这是不可能的。Plist 是供 iOS 查找下载路径、版本和应用名称等信息,以便 iOS 知道向用户提示什么。

您的代码只有在设备中安装了应用程序后才能执行,并且那时它不再有关于该 plist 的信息。并且应用程序无法找到其下载路径信息。

于 2015-09-02T05:03:29.837 回答