更改应用的名称会导致启动时崩溃

时间:2015-06-01 07:31:55

标签: ios crash bundle rename launch

我最近刚将我的应用名称从ABCXYZ更改为

中的ABC-XYZ
info.plist -> Bundle Display Name

这会导致设备在启动时崩溃。这是唯一的信息:

DiskCookieStorage changing policy from 2 to 0, cookie file:
file:///private/var/mobile/Containers/Data/Application/7CB9B0EA-97A2-4D3E-A8AA-CEB419BEB1F2/Library/Cookies/Cookies.binarycookies

模拟器工作正常,只有真正的设备崩溃。这里有什么问题?我在appstore上更新时会崩溃吗?

编辑1:在更改应用名称之前,一切都工作得很好。我会尝试改回名字,看看问题是否已经消失。

编辑2:不,即使我更改名称后它也无效。我现在该怎么办?

编辑3:我只更改应用的显示名称,而不是项目名称或其他任何内容。我的项目名称仍然是ABCXYZ-iPad。我认为问题可能是因为我导入了太多的外部框架,sdk ......它会在某处引起冲突?

编辑4:这些是我到目前为止尝试过的所有解决方案。还没有结果。

0. Rename to its old name, reinstall.
1. Clean, build, reset xcode, clean, build.
2. Delete app on device, reinstall.
3. Re-download from store, reinstall.
4. Reset device, reinstall.

编辑5:我发现我的应用程序通过了这行代码。

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    NSLog(@"background fetch");
    completionHandler(UIBackgroundFetchResultNewData);
}

然后写出上面的消息。不确定它是什么意思。

编辑6:确实发现了引起崩溃的行为! 非常感谢Nicholas Langley,这里印的问题是:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Stripe Payment
    [Stripe setDefaultPublishableKey:StripePublishableKey];
    // iZettle Payment
    [[iZettleSDK shared] startWithAPIKey:@"THE_API_KEY"];

我更改了我的应用名称,导致它更改了捆绑包。在调试之后,它会在该行代码(startWithAPIKey)之后打印出消息,并在我尝试执行此操作时崩溃:

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
NSString *x = [[NSUserDefaults standardUserDefaults] objectForKey:@"X"];
[dic setObject:x forKey@"X"]; <<< HERE ERROR SETTING NIL. STRANGE because it doesn't print any message. Also, My app should store X already.

似乎在更改应用程序名称后,它还会更改捆绑包,从而导致数据丢失。现在真正的问题是:如何在更改应用程序的名称/包后使用新数据迁移旧数据。模拟器不会产生这个错误,我无法调试到设备的目录中来检查任何内容。

编辑7:突然解决了!

更新应用后:

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
NSString *x = [[NSUserDefaults standardUserDefaults] objectForKey:@"X"];
if (x) {
    [dic setObject:x forKey@"X"];
}

然后重新安装,它会崩溃几次,然后再次正常工作。我甚至更改了应用程序的名称几次,没有再出现问题。如果用户下载并升级应用程序,如果将应用程序更新到商店会导致崩溃,我真的很担心。

编辑8:从商店升级进行测试。 我只是从商店旧版本重新下载。然后升级到新版本(不会更改应用程序的名称)。然后更改应用程序的名称。没问题。问题就像梦一样消失了.......我甚至不知道该怎么做。这个模因绝对正确!好吧,感谢所有花时间阅读这篇长篇文章的人。

I have no clue

2 个答案:

答案 0 :(得分:0)

构建项目(cmd + b)。转到产品&gt;清洁(shift + cmd + k)。关闭Xcode找到项目目录I.e. Desktop / ABC-XYZ并双击Xcode项目文件打开项目。

答案 1 :(得分:0)

  1. 关闭Xcode和所有编辑。

  2. 复制项目文件夹。

  3. 创建一个新文件夹,例如文档\项目\ Proj_1。

  4. 将项目文件粘贴到此处。

  5. 打开Xcode,清洁解决方案并尝试重新安装到您的设备。

  6. 也许问题出在您的硬盘中。我的变体会更改文件的位置,这会更改硬盘中项目文件的地址。