我想分发一个企业iOS应用程序,以便在用户打开它时,它已经显示了他们的名字和其他信息,即使.ipa与其他每个用户下载的.ipa相同。我认为我可以通过向用户提供特定于他们的应用下载URL并生成所需的企业下载plist以包含一些用户数据来实现此目的,但我的问题是:
甚至可以从应用程序中的下载链接访问/阅读Plist吗?如果是这样,怎么样?
答案 0 :(得分:7)
有一种方法可以从App中读取企业下载链接(但我确定你不是要求下载和读取文件的代码),但是没有办法显示某些内容基于索引页或清单文件上的参数在App中不同,而不更改IPA本身。
不幸的是,已安装的应用程序不知道从中下载的清单文件或索引页。
使用参考/来源进行编辑
此链接位于标题为“导出应用程序以在App Store外部进行测试”的部分下:Exporting Your App for Testing (iOS, watchOS),讨论清单文件,但未提及从Web部署到应用程序的任何数据链。< / p>
我还与一位高级Apple顾问进行了交谈,他确认没有任何机制可以让应用程序了解应用程序的安装位置。
答案 1 :(得分:2)
我能想到的唯一方法是向所有用户发送相同的链接(examplesite.com/ios/download),并向他们发送唯一的用户标识“SG5JD5J”。首次下载并打开应用程序时,提示用户输入其唯一的用户识别码。然后,您的应用可以更新他们的plist并进入应用程序。
不幸的是,您希望这样做需要私有API 或已越狱的iOS设备,以便您可以查看网络浏览器历史记录,找到您的网址(例如site.com/ios/download)最后带有唯一标识符,并根据需要更新plist。
如果您找到解决方案,请发表评论,我很乐意看到。
答案 2 :(得分:1)
我可以想到两个选择:
codesign
。然后向用户提供IPA服务。NSUserDefaults
:https://developer.apple.com/library/ios/samplecode/sc2279/Introduction/Intro.html 答案 3 :(得分:0)
这是不可能的。 Plist是iOS用于查找下载路径,版本和应用名称等信息,因此iOS会知道要向用户提示的内容。
您的代码只有在设备中安装了应用程序后才能执行,并且此时它不再有关于该plist的信息。并且应用程序无法找到其下载路径信息。
答案 4 :(得分:0)
如果尚未在设备中安装任何文件,则无法从IPA中读取任何文件。
您可以从您的网站获取用户信息,即让用户填写下载页面中的表单。然后将数据与您可以从下载页面生成的 GUID 一起保存到服务器。
应用程序安装并运行后,应用程序应重新创建GUID,然后查询服务器以查找与GUID关联的用户信息。
您的应用可以预先填写用户信息。
挑战在于您的下载页面如何创建也将由已安装的应用程序重新创建的GUID?那么你可以使用浏览器信息创建GUID。请查看如何使用浏览器信息创建GUID:
https://andywalpole.me/#!/blog/140739/using-javascript-create-guid-from-users-browser-information