管理 BES 软件配置

管理 BES 软件配置

我在 OTA 部署我们编写的定制应用程序时遇到了问题。我读过很多其他地方的帖子,也得到了一些帮助,但对于我的具体情况,这些帮助都没有真正起到作用。所以我想我应该解释一下我的具体情况,并尝试在这里寻求帮助。

我正在运行适用于 Microsoft Exchange 的 BES 版本 4.1.5(Bundle 79)。我们编写的应用程序分为 5 个模块(由我们控制)和另外 4 个模块(我们需要的第三方库)。因此,对于我们的模块,版本号会定期更改,但对于其他模块,版本号几乎始终保持不变。

我们设置了一个 alx 文件,该文件标识了所需的所有文件,事实上,我可以毫无问题地创建软件配置并部署应用程序。但是,我试图在 BES 上维护我们应用程序的多个版本,并能够选择要为每个用户部署哪个版本。我尝试过多种方法(正如我所说,我读过很多其他帖子,其中有关于此问题的解决方案),但每种方法似乎都有自己的问题。

首先,我尝试为每个版本的应用程序创建不同的配置,但由于它们各自具有相同的应用程序 ID,因此 BES 通知我无法这样做。

我读到过一些解决方案,即创建第二个共享文件夹(例如 \Program Files\Common Files\RIM),并将 apploader 内容和新版本的应用程序添加到此文件夹。然后,我可以创建具有相同应用程序 ID 的第二个软件配置。这样做的结果一开始似乎很有希望。当我更改分配给用户的配置时,新版本可以顺利推出。但之后 BES 报告设备状态无效,这意味着在我重新激活设备之前,我无法推送任何其他内容。我猜这是因为第一个配置从未设置为不允许,所以旧版本没有被删除,并且设备基本上报告它安装了同一应用程序的多个版本。

我收到的下一个建议是更改每个版本的应用程序 ID,例如包含版本号。这意味着应用程序的每个版本都可以包含在单个配置中,我可以将一个版本设置为不允许,另一个版本设置为必需。最初,这种方法有效,并且部署了第一个版本。但是当我切换时(即旧版本变为不允许,而新版本变为必需),BES 报告需要升级并删除了旧版本。设备重新启动,旧版本消失,但新版本未推出。我检查了 BES,它仍然显示需要升级。我检查了日志文件并发现:

[40000] (11/12 09:50:27.397):{0xEB8} {[email protected], PIN=1234, UserId=2}SCS::PollDBQueueNewRequests - Queuing POLL_FOR_MISSING_APPS request 
[40000] (11/12 09:50:28.241):{0xE9C} RequestHandler::PollForMissingApps: Starting Poll For Missing Apps.
[40304] (11/12 09:50:28.241):{0xE90} WorkerThreadPool:: ThreadProc(): Thread released with empty queue
[40000] (11/12 09:50:28.241):{0xE9C} SCS::RemoveAppDeliveryRequests - No App Delivery Requests purged for User id 2 
[30000] (11/12 09:50:28.960):{0xE9C} Discard duplicate module group "name" on device 
[30000] (11/12 09:50:28.960):{0xE9C} Discard duplicate module group "name" on device 
[40000] (11/12 09:50:29.163):{0xE9C} RequestHandler::PollForMissingApps: Completed Poll For Missing Apps, elapsed time 0.922 seconds.

(您会注意到,出于隐私原因,我删除了真实姓名和电子邮件地址等。但有一个问题:模块组的名称来自哪里?就我而言,它接近应用程序 ID,但不包括我为了使其正常工作而在最后添加的版本号。该信息是否嵌入在 COD 文件或类似的东西中?)

所以它报告设备上有重复的模块组?这是什么意思?我检查了设备属性(如 BES 上所报告的),确认设备上仍存在具有旧版本号的模块。所以应用程序已被删除,但模块没有??我检查了设备,模块不见了,所以只是 BES 报告它们还在那里??我检查了数据库,SyncDeviceMgmt 表中有问题的模块。如果我从数据库中删除这些模块,BES 会更改为报告需要安装,然后应用程序的新版本就会被推出。

所以最后,我的问题是:有人对如何处理从 BES 升级我们定制的应用程序 OTA 还有其他建议吗?或者有人能指出我上面描述的错误之处,从而解决我遇到的问题吗?我想问题是为什么数据库在模块被移除后仍保持模块在设备上?

感谢您的任何帮助,您可以提供。

答案1

因此,解决方案是确保您在 BES 上为每个版本创建的每个配置都必须参考所有不同版本的模块。因此,安装 v1.0 的配置必须将所有 1.0 模块设置为必需,而将其他版本的所有其他模块设置为不允许。

您必须记住的烦人的事情是,每当您添加新版本时,您都需要返回所有其他配置并添加这些新模块并将其设置为不允许。

相关内容