上周我发布了我的第一个单独的 iPhone 应用程序,它可以计算12V 船用和船用电池的使用情况。我在模拟器和我的 iPhone 上对它进行了激烈的测试,当我觉得一切都很好时,我将应用程序存档并将其发布给 Apple。当用户开始使用该应用程序时,他们注意到计算没有按预期工作。下面的代码是 NSManagedObject 模型上的一种方法,在发布到调试时会产生不同的输出。
下面应该总结相关 Discharge 项目的总数 - 但如果没有 BBDischarge 项目,那么它应该返回零。相反,当没有项目时(因此 for 循环不会触发),它会返回一个数字,该数字是国内AH 的直接乘积(一个 NSNumber)。如果我将国内AH设置为100,下面的放电AH返回8,如果将国内AH设置为1000,则返回83(浮点数显示时四舍五入)。再次强调,在模拟器上运行或直接放在我的 iPhone 4s 上时,以下内容可以正常工作,只有在通过应用商店发布时,它才会搞砸。
//Other dynamics hidden for simplicity
@dynamic domesticAH;
@dynamic voltage;
@dynamic profileDischarge;
-(NSNumber*) dischargeAmpH
{
float totalWattsPD;
//Calculate the watts per day so we can accurately calculate the percentage of each item line
for(BBDischarge* currentDischarge in self.profileDischarge)
{
float totalWatt = [currentDischarge.wattage floatValue] ;
float totalMinsPD = [currentDischarge.minutesPD floatValue]/60;
float totaltimesUsed = [currentDischarge.timesUsed floatValue];
float numberInOperation = [currentDischarge.number floatValue];
totalWattsPD = totalWattsPD + ((totalWatt * totalMinsPD) * (totaltimesUsed * numberInOperation));
}
int voltage = ([self.voltage integerValue] + 1) * 12;
float totalAmpsPD = totalWattsPD / voltage;
return [NSNumber numberWithFloat:totalAmpsPD];
}
如您所见,self.domesticAH 在任何地方都没有出现在该方法中,并且由于我无法在模拟器中重新创建它,因此我很难追踪它。
几个问题:
- 我可以调试我的应用程序的实时版本吗?将 XCode 附加到我正在运行的、App Store 下载的应用程序实例?
- 有没有一种方法可以模拟存档中的安装 - 有人会推荐临时分发来执行此操作吗?我还没有使用 ad hoc。
- 任何其他想法为什么这可能会以这种方式表现?