12 Replies Latest reply on May 9, 2017 10:51 AM by codecruncher

    Filemaker iOS SDK

    JesperHjalmarsson

      Hi,

       

      I have been working on converting a FileMaker Go solution to an app with the Filemaker iOS SDK. But i find a problem.

      This solution is to showcase products with video, photos and text so the filemaker file is around 4 gb large.

       

      I have successfully converted it to an app with the SDK, but when a start up the app in the simulator or iPad (through xcode), the app takes about 50 seconds to start up. Then when the app is running, no problem. When a unplug the iPad from the computer and restart the app from within the iPad's home screen, the startup is interrupted by Apples    ~20 sec limit before the launch is killed by the OS.

       

      I've tried creating an app with just a small Filemaker file and that works fine. Therefore it seems like it's the size of the file that's causing the long startup time. I've also tried separating the rather large video files from the Filemaker file with no better result than having them in there.

       

      I have transferred the filemaker file with all the videos (about 4 gb) to the filemaker GO app itself by iTunes and when i start the solution on the filemaker Go app its start in less then 5 seconds.

       

       

      Best Regards,

      Jesper

       

      Product and version: FileMaker Pro Advanced 15.0.1.119

      OS: iOS 9.3

      Hardware Description: iPad PRO 12,9" and MacBook Pro (15", Late 2013)

        • 1. Re: Filemaker iOS SDK
          TSGal

          JesperHjalmarsson:

           

          Thank you for your post.

           

          At first launch of an iOS App SDK generated app, the files are copied from the binary to the Documents folder, hence 40 seconds for 4GB of data.  I am not aware of any 20 second limit in iOS, especially if it is copying files.  Our testing team uses a 6GB solution, and it generally takes a minute to copy and launch.

           

          FileMaker Go may take 5 seconds to launch, just as the iOS App SDK generated app, but the copying of the files would take the additional 35 seconds.

           

          Check your config file, and make sure "solutionCopyOption" is set accordingly.  If it is set to 1, then it will always copy the files each time it is launched.

           

          Keep me updated with any progress.

           

          TSGal

          FileMaker, Inc.

          1 of 1 people found this helpful
          • 2. Re: Filemaker iOS SDK
            JesperHjalmarsson

            Hi TSGal,

             

            Thank you for your answer and explanation how it works when the app starts.

             

            I had the solutionCopyOption set to "1" so the app was copying the solution file every time the app was starting up. I change it to "2" so now it will only do it once.

             

            Works prefect!

            • 3. Re: Filemaker iOS SDK
              codecruncher

              Jesper,

              The issue may be related to the inability of the SDK to copy large files to the iOS user's documents folder reliably since it is being suspended by iOS (*). It's unclear if it is related to an iOS bug or an SDK bug but the issue can appear on older hardware which have much slower write speeds (unlike your iPad Pro).

               

              The problem is if you set the Copy Option to '1' and the SDK app will crash/be suspended while writing your large file for the first time then the user will see a 'The file ....fmp12 cannot be found' dialog upon re-relaunching the app. The SDK does not attempt to re-write the file since the option is set to '1' and the app will not launch.

               

              By setting the option to '2' you ensure that the SDK will attempt to re-write the file but it will simply quit itself as described in your initial post.

               

              I would recommend testing your app on older hardware prior to releasing it. I have never experienced the issue on my iPad Pro/ iPhone 6 but there have been reports of users trying to launch my 600MB fmp12 solution app on iPhone 5 / iPad Air etc. All of these older iOS devices allow my app to run in FileMaker Go 12/13/14 without issues. It's not the .fmp12 file. It's the SDK that causes the problem.

               

               

               

              (*) Suspended iOS state (copied from Apple's developer page):

              "The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code.

              When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app."

              • 4. Re: Filemaker iOS SDK
                codecruncher

                TSGal,

                I have verified that the SDK is being suspended due to Apple's iOS app 20 sec launch limit. I have discovered how to replicate the issue on an older iPad Air consistently. Every time the iPad has been rebooted the SDK app experiences the same crash while writing the fmp12 file but before opening the fmp12 file. Clicking on the SDK app icon a second time after the crash allows the launch procedure to finish successfully. My SDK app copies the fmp12 file to the documents folder every time the app is launched.

                 

                The SDK crash report states that the app 'failed to scene-create after 18.91s (launch took 1.09s of total time limit 20.00s)'. All reports show a launch time of under 2 seconds, however, when adding this initial launch time to the time allocated to the expected 'screen-create' event they add up to 20 seconds in every crash report. Basically the SDK app is terminated before the copied fmp12 file is opened.

                 

                While I am using the FM14 SDK and Jesper is using the FM15 SDK we both experience the same issue. The only reason why Jesper is able to launch his file after setting the solutionCopyOption to "2" is because the fmp12 file has already been copied via Xcode. A new user would not be able to install his SDK app with the solutionCopyOption set to "2" because the SDK will be terminated before the fmp12 is copied successfully into the documents folder and the SDK will not attempt to copy the fmp12 file it again upon relaunch.

                 

                Let me know if you need the crash reports. Thanks!

                • 5. Re: Filemaker iOS SDK
                  TSGal

                  codecruncher:

                   

                  As you recall, neither myself nor Testing was able to even launch your application, but Testing was able to build a similar solution (1.5 GB) that failed on an iPhone 6, iPad 3 and iPad Air 2.  Changing the overwrite to "0" allowed opening of the standalone solution without any issue.  All information has been sent to Development for further review.

                   

                  One of your crash reports may be helpful.  I have sent you a private message with instructions where to send the crash report.

                   

                  TSGal

                  FileMaker, Inc.

                  • 6. Re: Filemaker iOS SDK
                    codecruncher

                    Thanks TSGal,

                    I have emailed 3 of my crash reports. Apple’s latest analytics report of my app shows 885 sessions performed by current users (Opt-in Only) and 11 crashes (Opt-in Only). The app is generally working very well and is actively being used.

                     

                    The first version of the app was released with the overwrite option set to “0” resulting in the ‘The file … could not be opened. (Not Found)” dialog for a few unfortunate users with older hardware. Even though I was never able to confirm this issue I have received screenshots of the dialog.

                     

                    I have experienced the launch issue for the first time two days ago on an iPad Air (1) and can now re-create it consistently by restarting the device each time. The issue never appeared while testing the solution on a wide range of devices connected to Xcode.

                    • 7. Re: Filemaker iOS SDK
                      TSGal

                      codecruncher:

                       

                      I received your three crash reports.  Thank you.  The reports have been attached to the original report.

                       

                      The promo code is not necessary since we were never able to get your solution to launch under FileMaker Go as it is.

                       

                      TSGal

                      FileMaker, Inc.

                      • 8. Re: Filemaker iOS SDK
                        codecruncher

                        Thanks, TSGal. The crash report will certainly be more useful than the promo code.

                         

                        I only included the promo code so it can be easily verified that the app runs without any issues on new iOS hardware 'as it is'. However, the SDK .fmp12 file was purposely designed not to launch in FileMaker Go, FileMaker Advanced, and FileMaker runtimes and therefore won't be of any use to the testing department if extracted from the SDK.

                         

                        It's important to remember that the SDK app seem to crash before the .fmp12 is successfully copied to the documents folder. The only relevant factor seems to be the size of the .fmp12 file. I'll be at your disposal if you want me to perform any addition test on my old iPad Air. Thanks again for all your efforts.

                        • 9. Re: Filemaker iOS SDK
                          TSGal

                          codecruncher:

                           

                          This issue has been addressed in iOS App SDK 16.

                           

                          TSGal

                          FileMaker, Inc.

                          • 10. Re: Filemaker iOS SDK
                            codecruncher

                            Wow, that actually would be a major reason to submit an update to the app store. Are we talking about the issue which causes the SDK to get stuck upon first launch? Is there more information about this specific bug fix available?

                            • 11. Re: Filemaker iOS SDK
                              TSGal

                              codecruncher:

                               

                              iOS will terminate any program that fails to respond after 20 seconds.  Since the operation that copies/installs the files originally ran on the main application thread, the files were moved to a different thread to ensure the app would no longer crash.

                               

                              TSGal

                              FileMaker, Inc.

                              • 12. Re: Filemaker iOS SDK
                                codecruncher

                                Super! Thanks so much for the follow up.