Crashlytics not deobfusticating code - proguard

I'm new to Crashlytics, and I'm having a problem where it is not de-obfusticating my stack traces. According to Crashlytics this should be happening automatically. It should be using the mappings.txt file that's included in your .apk to decrypt the stack traces. I have a few questions about the whole process, as well as how I should go about solving the problem.
1) The mappings.txt file should be packaged with .apk by default correct? I'm using gradle; are there any options that you have to set?
2) I can't seem to download the stacktrace from Crashlytics, nor update the mappings.txt file on their dashboard. Are either of these options possible?
3) Can I get the stacktraces anywhere else, the application has GSM services enabled.

I had the same problem, but it seems to have been fixed by manually reinstalling the Crashlytics plugin.
Instructions at https://www.crashlytics.com/downloads/android-studio
(Using Android Studio 1.0 RC2)
EDIT: Crashlytics is now part of https://fabric.io
EDIT: Fabric is now part of https://firebase.google.com/docs/crashlytics/

Related

How to codesign and enable the hardened runtime for a 3rd-party CLI on Xcode?

My project needs the Ghostscript to do lots of tasks, so I have added the gs CLI tool into my project resource. However when I tried to notarize the project application, Xcode shows me this:
I assume that might because the ghostscript portable CLI is a 3rd-party program from the internet and which doesn't have a codesign, also it has not been enabled the hardened runtime. On the latest MacOS Mojave I have to notarize applications to avoid the gatekeeper shows warnings during the user opens the DMG file. But it seems the notarizing is hard to pass if the application contains a 3rd-party CLI.
Is there a solution for this?
I found the solution finally. Sign the CLI this way:
codesign --force --options runtime --sign "Developer ID Application: COMPANYNAME" ./CLITool
Then I successfully archived the Application and uploaded to Apple to notarize.
The enable hardened runtime is achieved via --options runtime.
I found this guide to be very helpful with the notarization and code signing process for app distribution outside the mac store.
I had an issue with my app crashing after enabling hardened runtime for it tho. This comment and this other one helped me with my issue at the time.

Cannot select latest uploaded version to add to testflight

I cannot select the latest version I have uploaded to seed to beta in external testing. First of all whenever I upload a build two version appearing, that have upload time difference of 5 to 15 minutes between them. One of them gets changed from processing to normal available state, but other does not. But now selecting the available build also selects the processing one and my selection is blocked and I cannot select the OK button because probably my selection is blocked by the processing one. I think it is UI frontend issue at itunesconnect side but it could be something I am doing wrong. Please help me if anyone has been able to tackle this issue if they faced. Please see checkout the attached image.
Update:
I Included <key>ITSAppUsesNonExemptEncryption</key><false/> in my subsequent builds that I uploaded according to the new Export compliance message on the iTunes Connect home page. I am still facing the issue. I have contacted Apple Dev support, will keep you updated if I find a solution.
The issue has been mysteriously solved by uploading the application from Application Loader with Aspera turned off instead of using Xcode's organizer window as suggested by Apple Developer support. Make sure you add: <key>ITSAppUsesNonExemptEncryption</key><false/> in your info.plist file before archiving the build. Although mysteriously my previously uploaded builds have also become available for external testing.
Body of email that helped solve the issue:
After further research, it looks like their may be an issue from your
end with your network while trying to upload to this app record in
iTunes Connect.
First, for the best upload experience make sure that all ports and IP
addresses are accessible. Additionally, it’s important to make sure
the internet connection is very good, and that there are no firewalls
blocking the uploads. More information can be found here:
http://help.apple.com/itc/apploader/#/itc8e7ec5a60
Second, it may be beneficial to try using the latest version of
Application Loader. Please note that you can export your project from
Xcode to upload through Application Loader. As a temporary workaround,
once you have Application Loader open, you can go to the File menus
and select the following:
Application Loader > Preferences
Then, select Advanced, and as a temporary workaround you can try
deselecting Aspera and upload the build again. You can follow the
steps below to use the latest version of Application Loader.
Download the latest version of Xcode from the Mac App Store:
-http://help.apple.com/itc/apploader/#/itc8e7ec5a60
Open the latest version of Xcode
Go to the File menu and select Xcode > Open Developer Tool > Application Loader
Lastly, try uploading again to see if the issue persists.
Hello my dear friend there,
I am also having your issue yesterday, I have this similar screen with yours:
The build is duplicated which one of them are processing forever until today.
My personal problem solving was:
Increase my build number in Xcode so that I can reupload my build
Rearchive the build then export for iOS App Store Deployment in Xcode Organizer
Reupload the build using Application Loader
Then try to reconfigure the build in iTunes Connect. For a while it is processing like usual, but it will not take forever, after one hour, the build will be available for testing.
Hope my personal troubleshooting can be applied to your issue too.

Invalid Binary Or Invalid Swift Support

After I send my app for approval to the app store I get the message 'Invalid Binary' in the iTunes Connect. Then I get the following message in an email from Apple:
Invalid Swift Support - The bundle contains an invalid implementation of Swift. The app may have been built or signed with non-compliant or pre-release tools. Visit developer.apple.com for more information.
My app is just a simple game application. No external programs are called. I have researched this message and went through and checked the following:
xcode is up to date - checked in app store
EMBEDDED_CONTENT_CONTAINS_SWIFT to YES or NO
send with the xcode app, not the application loader
did NOT build with the command line
(Xcode menu -> Preferences -> Locations tab - verified that the Command Line Tools matches Xcode version.
"Clean"ed the app, rebuilt and rearchived and then resent, same message
The app validates through the organizer fine
viewing the contents of the archive shows a SwiftSupport folder
I am only using one developer account and have never logged into any other developer account
I cannot find anything online that would help solve this problem.
I am running OS X Yosemite 10.10.1.
xcode version is 6.1.1 version 6A2008a - built, cleaned and sent with this version
I have also pressed the Option key and "Cleaned Build Folder" and resent, same message
I cannot find any other reason for this online or in any forums. Any help is greatly appreciated. Thank you for your time.
SOLUTION I FIND
Edit:
(1)
One you contact Apple and you wait long time … for reset iTunes connect because this problem coming in Apple . (Apple ask to send log of this problem)
(2)
An other solution, your create an other project application on iTunes connect and upload your work, this solution work fine, is the solution for me .
(3)
An other solution, you create a new project on Xcode, copy and paste your project in this other project.... (create new provisioning profile etc..) And upload your work in the same project application on Itunes Connect.
(4)
Step (2) + step (3), create a new project in Xcode and Itunes Connect.
(5)
Create a new project with the same name bundle identifier, it works perfectly !
See: Technical Q&A QA1881 Embedding Content with Swift in Objective-C.
It seems that you only need to set EMBEDDED_CONTENT_CONTAINS_SWIFT to YES "If you are building an app that does not use Swift but embeds content such as a framework that does".
What language is your app written in? If Swift yo do not need EMBEDDED_CONTENT_CONTAINS_SWIFT.
I ran into this problem the other day. Took some doing, but I finally figured out the problem ( for me at least). Everything I read online said the problem had to do with this setting:
EMBEDDED_CONTENT_CONTAINS_SWIFT
When this started failing, I had this set to NO. So I tried setting it to YES, and it still failed for the same reason. The GUI wouldn't let me remove this setting, I could only change it between YES and NO.
For what it's worth, my code has no EMBEDDED code, it's all just straight up SWIFT.
Anyway, so I decided to uninstall XCode and redownload it, hoping that would help.
While XCode was downloading, I fired up Beyond Compare, and compared my current project, with a backup from last week, to see what could have changed.
Beyond Compare found that a file deep inside the Projectname.xcodeproj file, changed ... a file called project.pbxproj file.
Inside this, was that line:
EMBEDDED_CONTENT_CONTAINS_SWIFT = NO;
This appeared in the current version of my project (that was failing). Interestingly enough, this line didn't exist at ALL in the old backup version from a week ago. I know that I didn't set this flag. There must have been something in Xcode that did it under the covers.
Anyway with that knowledge, Xcode finished downloading, and I reinstalled. Started it up, opened my project, and magically, Xcode REMOVED that line from the .pbxproj file, and now my project uploaded to itunesConnect sucessfully.
BottomLine: There's a bug in xcode that it may decide to add this line to your project for no reason, making your project invalid.
Solution: Editing the pbxproj file yourself and removing that line might work ... but reinstalling XCode seemed to clear up any confusion it had, and it removed it for me.
If you are submitting an app that has an AppleWatch extension, you can get this error if you try and submit the app using the Application Loader utility and a zip file. I got the error:
The bundle contains an invalid implementation of Swift. and
The bundle contains an invalid implementation of WatchKit.
I went through pretty much every solution for the first of the errors - but it was submitting via Xcode that fixed it.
well xcode 6.1 is a bit old and contains old swift. xcode 6.4 is the newest public one IIRC
"Check your code signing. I had this error when in automatic signing. I Put my dev profile for dev and production profile for release version and error is gone."
Link for the Quote
Sometimes this happens inadvertently.
To be safe, all components of your app should be built with the same version of Xcode and the Swift compiler to ensure that they work together.
I think you need to do a pod clean and install. I reckon one of your swift pods was created on a old version of Xcode, you updated Xcode and then tried to do a submission to the app store.
Read the apple swift blog about binary compatibility and frameworks
You will also want to specify that your embedded content contains swift in the build settings:
EMBEDDED_CONTENT_CONTAINS_SWIFT
Enable this setting to indicate that content embedded in a target's product contains Swift code, so that the standard Swift libraries can be included in the product.

Can't use background task in Windows Phone 8.1 (the ID_CAP_NETWORKING required, but it's included in the manifest)

I need to update my Windows Phone application tile by downloading and parsing JSON. So I'm using Microsoft HTTP Client Libraries.
And I've always got the exception Use of networking APIs requires the ID_CAP_NETWORKING capability to be defined in the application manifest when I'm trying to debug background task.
But my manifest included ID_CAP_NETWORKING as required (screenshot https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xaf1/t31.0-8/10750111_821340111262044_6461333323674658178_o.jpg).
I don't know what to do. I tried rebuild or recreate the app, but this didn't help. Also I can't find any documentation or an answer on the internet.
Can you please write, what can I do to solve this problem?
This is demo project http://1drv.ms/1yjHm49 with reproduced problem (project's name is 'Meduza. Windows Phone').
I debug my application on Lumia 720 (if it can help).
I re-downloaded your project and now I get your error. So I thought, I must of done something before launching your project that fixed it.
It took me while, but I can get your project to work by doing this
Unzip project to directory
Open Project
Clean Project
Add Internet (Client and Server) in Package.appxmanifest file (make sure you save it before exiting)
Put the break points in your background task
And it works. So a combination of Clean Build + editing the Package.appxmanifest did the trick for me.

Appcelerator Titanium Module - Verification issue, unlicensed module(s)

I had found a module in the appcelerator marketplace to allow for the rotate gesture called gesture recogniser but unfortunately it's now been removed when i went to purchase but it looks like the developer has also released the module as a 'skeleton' version on github here:
https://github.com/atsusy/Gesture-Recognizer
Now i followed the instructions on the readme file and built the project which created the module for me, when putting this into an app though i get the following error message and red screen:
Verification issue
Unlicensed module(s) detected.
You must be a subscriber to use one or more of the modules included with this project
Is there something i have missed to get this and how to i go about resolving the issue? Sorry i have no clue when it comes to github and modules so apologies if i am trying to use this in my app when i shouldn't but if anyone can help explain how and if i am allowed to get this working?
p.s the original link for the marketplace link that is now not found is: https://marketplace.appcelerator.com/http-status/?1894758329
You need to follow steps as follows:
Open Terminal and run “uuidgen”
Copy the code you see on the terminal
Open tiapp.xml, replace what’s in the “guid” tag with the the code you copied.
In Titanium Studio, do Project –> Clean
Run
Concept is to change GUID of module which is mentioned in manifest.
If you have the source code, just go the the manifest file, change the guid in the manifest to a new one, and build the module again. Probably better to increase the version and include it in your project again. Clean and build and it will work.
I guess the Titanium studio checks if you have licence for the modules you use. In case a module is on the marketplace with the same guid and you have no licence for that, it triggers it as unlicensed module.