Xcode .ipa更新循环:更新可用,更新的应用程序

时间:2017-03-21 22:58:32

标签: ios xcode ipa ipod-touch

Morning Lads /女士们,

我可以写的最短的背景:管理库存的内部应用程序,开发人员多余,公司中没有iOS开发人员,来找我。我没有iOS开发经验,有限的HTML / Javascript编程背景。 应用程序在iOS v6.1.6上运行,不得不从现在运行El Capitan v10.11.6和xCode v 6.4(6E35b)的08开始使用Macbook。我不知道用于开发应用程序/维护它的软件/操作系统版本。 Xcode设置为使项目格式:Xcode 3.2兼容。

痛苦地说,我设法找到了上一个。开发人员xcodeproj文件,更改为我的开发人员配置文件以进行代码签名,清理/构建/存档/导出.ipa。此安装和应用程序在预期的设备上运行。

错误是:更新可用,已更新的应用程序可用,现在将安装。

仅当用户选择其用户配置文件(无密码,只需按用户>用户配置文件),商店(项目所在仓库的哪个部分),在应用程序中导航几秒钟时,按下主页按钮然后重新打开该应用程序。

目前,您必须通过网络服务器卸载(常规iOS卸载)/重新安装才能解决问题。重新安装后,我尝试从网络服务器中删除文件。仍然会提示更新。此更新将成功安装该应用程序。如果您在此更新后打开应用程序'它会立即提示再次更新。

我的问题是,如果这不是太模糊,我在哪里可以首先找到这个假设的循环的原因'更新?

EDIT1:*****工作流程:******
我使用最后修改的日期从凌乱的Stocktake文件夹(8个不同的发行版/版本)的深处拉出了项目文件。

将项目加载到Xcode后,需要注意的第一项是“验证项目设置”。这些包括(在子标题下,加粗,构建设置)Target' StockTake' - 自动选择体系结构,项目' StockTake' - 自动选择体系结构,项目' StockTake' - 仅在调试时启用构建活动体系结构。我执行更改并启用后续弹出窗口,要求创建快照。

从顶部,Stocktake Info,部署目标,iOS部署目标[6。 1]

切换到身份:捆绑标识符是正确的(已经从以前的所有者更改,我使用记事本++进行了工作,并浏览项目文件以查找与他相关的任何内容)
版本:[1.0](这次我将离开它) 建立:[1.0]
我还确保选择了正确的团队。

构建设置

架构:基础SDK [最新iOS(iOS 8.4)] 代码签名:所有iOS开发人员或自动 当我调出项目文件时,其他所有内容都保持不变 清洁,干净成功
建立,建立投资:成功 然后,产品,目的地,iOS设备
存档
(可以看到Stocktake,创建日期,版本是上面列出的[1.0]) 验证,选择正确的团队,配置文件是XC创建的 iTunes Store操作失败(找不到合适的应用程序记录,检查包标识符)
我保留原样是因为无论如何我都可以成功使用组织者中的导出功能。 导出,保存Ad Hoc Dep。,选择正确的团队,使用XC创建的prov导出。简介,出口
.ipa创建成功。
我可以更深入,但我不想制作大量的文字墙。如果需要,我可以在某处上传我的深入调查结果的PDF。

- (void)promptForUpdate
{
    CCAlertView * alert = [[CCAlertView alloc] initWithTitle:@" Update Available"消息:@"已更新的应用程序可用,现在将安装。"];

[alert addButtonWithTitle:@"Ok" block:^{
    // open update URL in Web Browser
    if (![[UIApplication sharedApplication] openURL:kUpdaterURL]) {
        ALog(@"Failed to open app updater URL: %@", kUpdaterURL);
    }
}];

[alert show];

}

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题,我们会看到是否会出现更多问题。 appname.plist和两个与此应用程序连接的Oracle数据库相关的web.config文件之间必定存在版本不匹配。我们在这里运行两个Maximo环境,生产和测试。 解决这个问题:
我打开了appname.plist(在我的情况下是Stocktake.plist)并找到了以下编码:

            <key>bundle-version</key>
            <string>1.0</string>

我编辑了这个:

            <key>bundle-version</key>
            <string>1.16</string>

这是为了匹配两个webconfig文件,如下所示:

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="true" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="MaximoConnection" value="provider=OraOLEDB.Oracle; data source=maximo75test; user id=; password=;" />
    <add key="BatchSize" value="200" />
    <add key="Version" value="1.16" />

我没有触及bundle-version字符串,因为在我发现的每个先前的发行版中,它都是1.0。之前我曾经使用过web.config版本文件,但是将它与我​​在Xcode中创建的App版本相匹配(我认为我尝试创建的最后一个版本是1.6)。我不确定为什么这样有效,我没有输入1.16到我创建的任何.ipas中,当我最初开始我的故障排除时它是1.16,但它可能与Maximo有关(也许Maximo是版本1.16?)

如果有任何人在使用“可用更新”循环时出现问题,我建议您尝试查找您正在使用的任何应用程序的最后一次迭代,以及您要集成的最新版软件,并设置版本和导出之前构建相同的数字。这不是最佳实践,但至少如果你可以使它工作,你可以慢慢替换版本/构建,直到你发现问题。

这篇文章(下面链接)帮助我得出了改变版本的结论:
Version vs build in XCode