Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-17713] iOS8: App crashes after starting using "open in .." from another app

GitHub Issuen/a
TypeBug
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2014-09-17T01:15:56.000+0000
Affected Version/sn/a
Fix Version/sRelease 3.4.0, Release 3.5.0
ComponentsiOS
Labelsios8
ReporterAndreas Graetz
AssigneePedro Enrique
Created2014-09-11T15:33:45.000+0000
Updated2014-11-21T20:23:41.000+0000

Description

Using "Open in .." to send a file to my app let my app crashing on opening before the first line of code will be executed. Here is the log:
[ERROR] :  The application has crashed with an uncaught exception 'NSInvalidArgumentException'.
[ERROR] :  Reason:
[ERROR] :  *** setObjectForKey: object cannot be nil (key: source)
[ERROR] :  Stack trace:
[ERROR] :  
[ERROR] :  0   CoreFoundation                      0x2b69ae3f <redacted> + 126
[ERROR] :  1   libobjc.A.dylib                     0x3917dc8b objc_exception_throw + 38
[ERROR] :  2   CoreFoundation                      0x2b5b8ec3 <redacted> + 850
[ERROR] :  3   iQ.Suite                            0x0021fe59 iQ.Suite + 1396313
[ERROR] :  4   UIKit                               0x2ed9d6eb <redacted> + 278
[ERROR] :  5   UIKit                               0x2eda0ea3 <redacted> + 2082
[ERROR] :  6   UIKit                               0x2eda47f7 <redacted> + 2142
[ERROR] :  7   UIKit                               0x2eda3d6b <redacted> + 118
[ERROR] :  8   UIKit                               0x2eda3ced <redacted> + 360
[ERROR] :  9   UIKit                               0x2ed98fd3 <redacted> + 478
[ERROR] :  10  FrontBoardServices                  0x31db21f9 <redacted> + 40
[ERROR] :  11  FrontBoardServices                  0x31dc10e9 <redacted> + 12
[ERROR] :  12  CoreFoundation                      0x2b6615b5 <redacted> + 12
[ERROR] :  13  CoreFoundation                      0x2b660879 <redacted> + 216
[ERROR] :  14  CoreFoundation                      0x2b65f3b3 <redacted> + 1714
[ERROR] :  15  CoreFoundation                      0x2b5ad621 CFRunLoopRunSpecific + 476
[ERROR] :  16  CoreFoundation                      0x2b5ad433 CFRunLoopRunInMode + 106
[ERROR] :  17  GraphicsServices                    0x329410a9 GSEventRunModal + 136
[ERROR] :  18  UIKit                               0x2eb97809 UIApplicationMain + 1440
[ERROR] :  19  iQ.Suite                            0x000d2573 iQ.Suite + 30067
[ERROR] :  20  libdyld.dylib                       0x396fdaaf <redacted> + 2
[ERROR] :  *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: source)'
[ERROR] :  *** First throw call stack:
[ERROR] :  (0x2b69ae3f 0x3917dc8b 0x2b5b8ec3 0x21fe59 0x2ed9d6eb 0x2eda0ea3 0x2eda47f7 0x2eda3d6b 0x2eda3ced 0x2ed98fd3 0x31db21f9 0x31dc10e9 0x2b6615b5 0x2b660879 0x2b65f3b3 0x2b5ad621 0x2b5ad433 0x329410a9 0x2eb97809 0xd2573 0x396fdaaf)

Attachments

FileDateSize
Alert.PNG2014-09-18T17:50:39.000+0000142444
AppDesigner 2014 SVN.zip2014-09-12T07:43:30.000+00002364644
AppDesigner OpenIn Test.zip2014-09-13T19:12:11.000+00001827854
Screen Shot 2014-09-16 at 2.01.23 PM.png2014-09-16T21:03:56.000+00001823454

Comments

  1. Andreas Graetz 2014-09-12

    Example project added. This works on an iOS7 device but not on an iOS8. Try to "open in ..." any file from another app in this app.
  2. Ingo Muschenetz 2014-09-13

    Thank you. Is it possible to use a smaller example project? It helps eliminate unrelated issues.
  3. Andreas Graetz 2014-09-13

    New example created from Titanium "Default Project". Changes in app.js:
       var fileURL = Ti.App.getArguments();
       
       alert(fileURL);
       
       Ti.App.addEventListener('resumed', function() {// notice *resumed*
       	alert(fileURL);
       });
       
       
       Changes in tiapp.xml:
       <key>CFBundleDocumentTypes</key>
                       <array>
                           <dict>
                               <key>CFBundleTypeIconFiles</key>
                               <array>
                                   <string>appicon.png</string>
                               </array>
                               <key>CFBundleTypeName</key>
                               <string>Open File in AppName</string>
                               <key>CFBundleTypeRole</key>
                               <string>Viewer</string>
                               <key>LSHandlerRank</key>
                               <string>Owner</string>
                               <key>LSItemContentTypes</key>
                               <array>
                                   <string>public.item</string>
                               </array>
                           </dict>
          </array>  
       
  4. Lokesh Choudhary 2014-09-16

    Tried to reproduce the issue with the code mentioned above, but could not reproduce. I don't get any crash. The app opens fine for me & I get an alert. See attachment above. Environment: Appc Studio : 3.4.0.201409131030 Ti SDK : 3.4.0.v20140916111716 Mac OSX : 10.9.4 Alloy : 1.5.0-rc2 CLI - 3.4.0-rc3 Code Processor: 1.1.1 xcode 6 gmseed Ipad 4 - IOS 8 Gm Seed
  5. Andreas Graetz 2014-09-17

    This screen tells me, that you haven't open the app using the "open in ..." functionality. This works fine, but try to select a file or attachment from your mail client and open this file in this app. This action causes a crash under iOS 8. If the app may working, you see the file url of the file in the inbox.
  6. Pedro Enrique 2014-09-17

    PR for master https://github.com/appcelerator/titanium_mobile/pull/6110 PR for 3.4.x https://github.com/appcelerator/titanium_mobile/pull/6111
  7. Ingo Muschenetz 2014-09-17

    Approved.
  8. Ewan Harris 2014-09-18

    Verified fix on: Mac OSX 10.9.4 Appcelerator Studio, build:3.4.0.201409161950 Titanium SDK build: 3.4.0.v20140917120000 Titanium CLI, build: 3.4.0-rc4 Alloy: 1.5.0-rc2 Xcode6.0.1 iOS Device iPad4 (8.0) Opened a pdf file sent via email and opened using an app I had created. The app opened successfully, see attached screenshot for the alert message shown. Closing ticket.

JSON Source