【发布时间】:2014-05-09 17:57:14
【问题描述】:
长话短说:
如何直接在硬件 (iPhone) 上以与 AppStore 分发的版本/二进制文件完全相同的版本/二进制文件直接调试 iPhone 应用程序,而无需等待 AppStore-Preview-Process?
详情:
我检测到 MKMapView 的行为在使用 Developer Profile 通过 XCode/USB-Cable 在 iPhone 上运行的编译 IPA 和在 Distribution-To-AppStore-Process 之后直接从 AppStore 安装的版本之间存在很大差异。
我将附上两个重要的屏幕截图。
这是应用程序通过 XCode/USB-Cable 在 iPhone 上启动 MKMapView 的方式,指向具有特殊区域的当前用户位置:
这就是从 AppStore没有任何代码更改到上一个版本的分布式版本后,同一个应用程序在同一部 iPhone 上启动的方式:
这里我将提供一些代码:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.mapView removeAnnotations:[self.mapView annotations]];
CLLocationCoordinate2D noLocation;
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(noLocation, 6500, 6500);
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:viewRegion];
[self.mapView setRegion:adjustedRegion animated:NO];
mapView.delegate = self;
mapView.showsUserLocation = YES;
mapView.mapType = MKMapTypeStandard;
}
- (void)mapView:(MKMapView *)theMapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
theMapView.centerCoordinate = userLocation.location.coordinate;
}
顺便说一句,仅供参考:XCode 启动的直接在 iPhone 上运行的 IPA 与通过 AppStore 分发的存档之间存在另一个区别。没有行“[self.mapView removeAnnotations:[self.mapView annotations]];”应用程序在从 AppStore 安装的版本中启动后直接崩溃,但从 XCode 运行时不会。这个问题我在以前的版本中遇到过,不是这个问题的一部分,只是对主要问题的补充
主要问题是:
是否有可能以与 AppStore 分发它的方式完全相同的方式调试 iPhone-App,而无需等待 AppStore-Preview-Process,如果可以,如何调试?
【问题讨论】:
-
过去,Apple 曾建议我使用可用于在我的设备上安装二进制文件的配置文件重新签署最终的 .app 包。通常,这是使用 Release 方案设置的,可以使用 AppResigner 完成辞职。
-
感谢您的帮助,夸张。如何在文件系统中找到 .app - 包?通常我使用“产品 => 存档 => 应用商店分发”。我怎样才能在 iPhone 上启动这个 .app-Package?