I have developed (on a Mac) a small Flutter app to learn the technology. Now, I would like to build it and use it on Mac, Linux and Android. The few packages I have used claim compatibility with all systems.
So the first thing I did was to run flutter build macos. I indeed obtain an application under build/macos/Build/Products/Release/nameofmyapp.app. It seems this runs correctly, but it fails, for instance, loading data from a DB, which is the first thing it should do.
I have a few questions:
are there any other steps that I should take? I see a long guide about the release process, but to be frank I don't need or want any of that: I only want to use the app myself. Is there something else to do other than flutter build macos?
am I looking for the built app in the right place?
if I did everything correctly, could it be that I need to authorize the app to access to the file in some way? Should I manage this workflow myself, or is there a standard way to perform this action in Flutter?
Sorry for asking more than one question, but I am not sure whether what I am doing wrong is
the build process
where to look for the built app, or
(not) handling the app permissions.
EDIT
Following a suggestion by Madhavam, I tried flutter run --release. The result is identical to running the built application: nothing is loaded from the database, and no errors appear in the console.
To be clear, these are the libraries that are not working:
sqflite should load data from a database (in my Documents folder) but does not show anything
file picker cross should allow me to load data from a JSON file, but when I try this interaction, I an not shown any dialog to load a file
shared preferences should read some settings, but they all appear as null
In short, anything that has to do with interacting with external files or storage does not seem to work
Yup, you have to manage it yourself. Take a look at this package
:https://pub.dev/packages/permission_handler
If you're using Firebase then you probably need to add the release keys.
One thing too, if you face an error only in the release build then I recommend running the app with flutter run --release so that you can see the errors that are being thrown.
So it seems that this is related to the default being an app that runs in sandbox. Since I do not want to distribute the app, it was fine for me to disable this setting. Details are in this answer
Related
I'm trying to port FirefoxOS on Motorola G but I don't understand how to write device manifest. What should be specified in the manifest? Where do I start? Mozilla's official documentation isn't that helpful actually.
The manifest is tricky but like a bike - one you get the hang of it then it becomes second-nature.
Here are the links I used to understand the manifest:
https://developer.mozilla.org/en-US/Apps/Developing/Manifest
https://developer.mozilla.org/en-US/Apps/Developing/About_app_manifests?redirectlocale=en-US&redirectslug=Web%2FApps%2FFAQs%2FAbout_app_manifests
The main point that helped me was to understand that only two fields are required: name, and description. This make other options specific to your needs, so I stripped all other members out to start: "locales" and "developer".
The primary config that I needed to get right was:
launch_path - I got it to work through trial-and-error, but then moved the app within my architecture and was surprised when the app went 404! I shouldn't have been surprised because... the path was incorrect. After updating the path the app installed correctly.
For example:
/Apps/App1/app1.html
Final bit of advice on Manifest. The best way to understand it is to get a test app working from the mdn-app-template! This way you can see how it works and test it's capabilities. I strongly recommend this as a first step. https://github.com/chrisdavidmills/mdn-app-template
Other suggestions:
- It took a while to get the workflow down. It is possible to just click a 'refresh' link in the App Manager. Which is a rather immediate workflow.
- Uninstalling in Android was weird. The app is actually saved within Firefox. So you have to go to about:apps to uninstall. Here is the link: https://developer.mozilla.org/en-US/Apps/Developing/Apps_for_Android
Hope it helps.
I'm just trying to build my first phonegap app. So I created test AdobeID and make a successful built. But on the very same machine I need to use my company AdobeID login, but I cannot find out how to change it. Every time i run phonegap build it uses that test AdobeID that I provided in the first built.
Any ideas ?
Thanks
You should remove the project from your test ID and log in with your real Adobe ID and then upload it again from scratch, I believe.
If you are doing phonegap on mobile such as iOS, Android, you need to deactivate the test AdobeID.
Another way is to completely uninstall the app.
However, you can only activate each account 6 times. One of the limit Adobe set.
My development environment is:
OSX Mavericks, Xcode 5 Cocoa mac application
I have been using FANN to train and run a ANN. It has worked so far and I have been able to train and run an ANN. I have even made a simple command line application to train ANNs using FANN. However I have run into a problem that may have to do with the way FANN is distributed.
I wanted to export and share the application I had made, so I archived the Xcode project. When I did this I made sure to copy libfann.2.2.0.dylib under Build phases, so the end user would have the library which is needed to use the FANN code in my app. However when I tried to save a developer ID sign application using Xcode it failed to code sign it. I can still save it without code signing it. The interesting thing is that if I remove libfann.2.2.0.dylib from the copying phase under Build phases, Xcode can successfully code sign the application and save it. However if I do this the resulting application is corrupt because it cannot find the FANN library.
I made libfann.2.2.0.dylib according to the instructions on http://leenissen.dk/fann/wp/help/installing-fann/.
I understand that this may not be a problem with FANN, but with Xcode. However I have other static libraries in the same project and FANN is the only one that is creating these issues, so I believe there is a high chance it has something to do with the FANN library. I am not an expert in code signing, but my guess is that there is a conflict between the way the FANN library is made using Cmake and code signing.
Thanks in advance.
I was able to find a solution after playing around with code signing.
I decided to try manually code signing my app with instructions from http://www.digicert.com/code-signing/mac-os-codesign-tool.htm. This did not work. However the code signing tool pointed me to a problem with libfann.2.2.0.dylib. So I checked if libfann.2.2.0.dylib was code signed and it was not. When I saw this I thought I would try code signing libfann.2.2.0.dylib with my developer ID and re-importing it into my project. This strategy worked and I was able to export a developer ID signed version of my application.
Folks,
I've done a fair amount of research on this topic, and still haven't found any answers so far. I'm trying to achieve the same goals as demonstrated by #delaney05 in his post at Jenkins on OS X: xcodebuild gives Code Sign error but I seem to be having some problems that he didn't (or, at least that he didn't mention).
Specifically, I can get the developer profiles exported via XCode (using the standard GUI methods), but the security tool doesn't seem to allow me to import those via the CLI to the login.keychain for the Jenkins user. Of course, the Jenkins user is not a "real" user, and so you can't log in and do this using the GUI methods.
I tried posting an update to #edelaney05's article on this subject, but apparently the moderators want me to ask a separate question instead.
At this point, I'm seriously considering creating a real Jenkins user, then installing the app version of Jenkins as kindly provided by #sti a.k.a., Sami Tikka. At least this way I would be able to use all the Mac-standard GUI methods of exporting and importing developer profiles, .mobileprovision files, and other keys, certificates, etc.... Of course, doing that will make it more difficult to build out the cluster of Jenkins servers that we're going to need going forward, but I'm wondering if that really is the best solution right now.
Did I do anything stupid? Did I miss anything? Is there any additional documentation you'd like to see showing all the steps I've done through? Thanks!
BTW, I did try to post a version that fully referenced all the pages with proper links, but as a "new user" I apparently don't have a high enough reputation score to post a question with more than two links. ;-(
Suggest you try building your Xcode project via the command-line, and once this is working you can try setting the same environment in Jenkins.
Note that the user that Jenkins uses for running its commands is not related to the Jenkins-Login, but it is the OS-X user that had started the Jenkins application.
This user is probably 'daemon', which differs from the one you use for your regular work with Xcode.
(can confirm this by running "id" as the command in the Jenkins Job)
Good luck!
I am trying to get started in development of my website and plugins using Umbraco. When I download the binaries from Codeplex, the installation and running of the website works fine. When I downloaded the source code, All I get is a login screen even when the web.config files are the same. Am I doing something wrong or is there something I missed.
The path I use to map IIS to is
branches\4.1.0\umbraco\presentation
You need to compile the source code to get it to work.
To be honest, you shouldn't need the full source unless you really want to start hacking around in the core (which may cause you problems with future updates) or you want to see how stuff works. The Umbraco framework is pretty extensible, I've not found too much so far that I couldn't do without having to touch the core source.
I had a similar issue when running the source and that was that the hashing of the admin password did not work. So i debugged it to see what value was expected and then changed it in the database.