Any way to debug app with dataset in production environment?

后端 未结 3 1341
旧时难觅i
旧时难觅i 2021-01-13 06:45

My CloudKit dataset in Production Environment is somewhat bigger than Development, and other exotic difference could exist.

T

相关标签:
3条回答
  • 2021-01-13 07:32
    1. Rollback changes in the source code, to be able to run app.
    2. Sync down records from Production Environment to local Core Data Storage.
    3. Copy out in Xcode Device menu the sqlite database from container.
    4. Create an temporary project with same model, populate it with the database.
    5. Set up temporary project to able to use previous CloudKit container.
    6. Reset Development Environment in Dashboard.
    7. Upload all record from temporary project.
    8. Run original project with original source code.
    0 讨论(0)
  • 2021-01-13 07:36

    When the app will go the the background, at some point it will be killed by iOS because your thread won't have answered to the -applicationDidEnterBackground, and then you will get a backtrace of all your threads.

    If you want a better chance to trigger the kill (if the locked thread is not the main thread), you could grab a background task (- beginBackgroundTaskWithExpirationHandler:) in your working threads: if they are locked at some point they will never release the background task and they'll trigger the kill.

    Now just wait for the iOS scheduler to kill your app and grab the stack trace. In there, you should be able to find the culprit by looking at all you thread's backtraces and identify which ones are locked in a mutex lock() function.

    I bet you don't even need symbolication for that.

    0 讨论(0)
  • 2021-01-13 07:41

    I would recommend using a crash reporting service. While there are a few options out there, I worked with Crashlytics, and I was very happy with the reports that they provided, always helping me to fix bugs in production.

    0 讨论(0)
自定义标题
段落格式
字体
字号
代码语言
提交回复
热议问题