是否可以从应用程序中读取企业iOS下载链接plist?

是否可以从应用程序中读取企业iOS下载链接plist?,ios,objective-c,ios-enterprise,Ios,Objective C,Ios Enterprise,我希望分发一个企业iOS应用程序,这样当用户打开它时,它已经显示了他们的姓名和其他信息,即使.ipa与其他用户下载的.ipa相同。我想我可以通过为用户提供一个特定于他们的应用程序下载URL,并生成所需的企业下载列表以包含一些用户数据来实现这一点,但我的问题是: 甚至可以从应用程序内的下载链接访问/读取Plist吗?如果是,如何读取?有一种方法可以从应用程序中读取企业下载链接(但我肯定你不是要求下载和读取文件的代码),但是,如果不更改IPA本身,就无法根据索引页或清单文件上的参数在应用程序中显示不

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


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

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

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

使用参考/来源进行编辑

在标题为“导出应用程序以便在应用程序商店外测试”的部分下,此链接讨论了清单文件,但未提及从web部署到应用程序的任何数据链


我还与苹果公司的一位高级顾问进行了交谈,他确认没有任何机制可以让应用程序知道应用程序的安装位置。

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


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

我可以想出两种选择:

  • 您可以创建“个性化”IPA。换句话说,当用户请求下载IPA时,您的服务器将生成一个包含所有用户信息的plist,将文件保存在IPA中,然后运行
    codesign
    。然后只需将IPA提供给用户即可
  • 使用MDM将信息直接注入
    NSUserDefaults

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

    不幸的是,您希望这样做的方式需要专用API越狱iOS设备,这样您就可以查看web浏览器历史记录,找到最后带有唯一标识符的URL(例如site.com/iOS/download),并根据需要更新plist


    如果你能找到一个解决方案,请评论,因为我很想看到

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

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

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

    然后,您的应用程序可以预填充用户信息

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


    请看一下这个[stackoverflow链接][1][1]:@JavierCalatravaLlavería,它是.IPA中内置的app-info.plist;我需要的是PrIST提供的公共URL来下载.IPA。您可以创建自定义URL,以便在安装后将数据传递给应用程序。它确实与私人托管的IPA合作。使用它有两个问题:1)您必须使用他们的SDK 2)您添加到URL的任何内容都将发送到Branch.io。@AlexanderWallaceMatchneer您是否设法找到了如何实现这一点的方法?是否有任何链接/来源/技术说明支持此答案?哪些设备ID?自iOS 5或6以来,afaik Apple将设备ID更改为每个应用程序,每个安装。如果设备UUID不再可能,您可以从JavaScript创建GUID。请参见此处的操作方法:那么浏览器和应用程序如何生成相同的guid?下载页面将创建guid。应用程序将通过创建UIWebView重新创建GUID,并执行将重新创建GUID的脚本。但是。。。创建GUID时使用Math.random()?