How can I force my app into the Applications/ folder? - objective-c

I am currently developing a desktop app in OS X which has a requirement for Autostart on Boot. I have implemented autostart and it works well when I install my app and put it in the Applications/ folder, but I can't expect users to move the file. I am distributing the app using HockeyApp.
So I've started building .pkg files with Packages. This works great and was really easy, but fails to update when used in HockeyApp. After downloading the update, I get a message saying An error occurred while trying to extract the archive. Please try again later. [Cancel Update]
Things I have tried:
Signing the update
Not signing the update
Downloading the most recent version instead of updating (works perfectly fine)
Zipping the .pkg (Fails to upload to HockeyApp)
How can I force my app into the user's Applications/ folder? Should I just ask my handful of (technologically challenged) beta testers to delete their app and download the new version? Can I make a change to my .pkg method to make it work? Should I add code into the app which moves itself (Sounds hacky and painful)?

You cannot force the user to install into /Applications, however if you get the app to arrange the auto-start itself (for example via the App Preferences) then it should use the current location of the app (probably obtained from [[NSBundle mainBundle] bundlePath]) and that will work fine.
You might want to periodically check if the app has moved after this has been turned-on.

Related

Expo uses old code even though new code has been deployed

I have a react-native app that is using Expo.
In the beginning of the project I pushed some code to the default publishing channel that was never intended to be used in production.
Since then I have released dozens of versions to production and mostly all works as expected. (New installs gets the latest JS code)
However, a few users still gets old versions of the code, even though they literally just downloaded the app from App Store / Google Play.
This is extremely frustrating. How can I make sure that fresh downloads of the app will download the correct/latest version och my JS?
Note that this is not related to the app detecting new code that might be available for download. It is the fact that the wrong code is downloaded and used to begin with. Is there any way to remove all JS-code except the very last version that I published? I imagine that would solve my issue
Turns out, expo don’t always do this successfully. You need to rebuild the react native bundle before publishing.https://proandroiddev.com/bundling-react-native-during-android-release-builds-ec52c24e200d
This is what expo gives as a feature known as Over the Air updates (OTA). Whenever a new version is built with expo channel, it automatically updates even in the app store and play store. But there is a way to disable the updates. the expo documentation for disabling:
It is possible to entirely disable OTA JavaScript updates in a standalone app, by setting updates.enabled to false in app.json. This will ignore all code paths that fetch app bundles from Expo's servers. In this case, all updates to your app will need to be routed through the iOS App Store and/or Google Play Store.
This setting is ignored in the Expo client.
And I do recommend you to read the documents of OTA, which is a good feature when you get to know all of it.
The expo link is expo OTA

Missing dSYM files in Crashlytics Today extension (Bitcode disabled)

The title of this question basically says it all. I enabled Crashlytics in my Today extension, and for some reasons, the dSYMs are not being uploaded, even though I'm not using Bitcode.
I tried uploading them manually (from ~/Library/Developer/Xcode/Derived Data/Timelines-evxmjnxmpmcivkavmpijzakaxkrp/Build/Products/Debug-iphoneos/Timelines.app.dSYM), but the web interface doesn't really give me any feedback. It shows this screen:
No matter how long I wait, once I refresh the page, it goes back to the 'upload dSYMS' screen.
I think the problem might be that the UUIDs of the missing dSYMs don't really match those that I found locally.
Some notes on my setup:
Xcode 8.2
Today extension running on iOS 10.2
Bitcode is not enabled.
Fabric and Crashlytics integration was done using CocoaPods.
Archive wasn't uploaded to App Store. I'm just testing it locally on my devices. But since the entry for crash reports was created in the web interface, I assume the automatic upload should work anyway.
My question basically is: how exactly can I upload the dSYMs manually? And, second one: how can I make the automatic upload of dSYMs work? Thank you.
It is described here completely ==> fabric.io.
As it said you can download it from activity tab in itunesconnect and then upload it to crashlytics website.

How to Distribute OS X application Update which is distributed outside the Mac App Store

I would like to know which is the best way to distribute a Mac App's Update to my existing app users.
App is distribute out side the Mac App Store so can not use the app store to distribute the update
I would like to do similar to VyprVPN like Download the new version close the app install new version and relaunch the app and this whole thing done without any user interaction.
I want to do like, Application Installed on my user's Mac now I release new version of my Application then how can I update Application already installed ( Previous Version ) in my user's Mac.
Edits:
I tried to Implement the Sparkle Framework for app update features.
But when i try to update my app I receive the PopUp saying new version of application is available but when I tried to install the new version error occurs saying UPDATE Error An error occurred while downloading the update. Please try again later.
Now I could not find reason of this behaviour. Can any one help me in this?
Thanks in advance
You can build the Sparkle framework into your app, and then your app can discover and install future updates.

Downloading a deployed app packaged from a Windows Phone device

I've recently had some data loss. I would like to be able to download my compiled app package that I have deployed on my phone. I haven't been able to download the app package that I have uploaded in the store (as they are nearly identical), so if there is a way to do that, that would be amenable as well.
Is there a way to download the app package from a device or from the Store page?
Edit: I should note that by "Store Page" I mean "App Submission Page".
You can download the xap file manually from the application's store page. For example, I have a game that I haven't updated in forever (forgive me) :)
Number Munchers XL
Scroll down to the very bottom on the left side of the page, and you will see
Download and install manually
Learn more
Click on that and you should be greeted with a XAP file download.

iOS Application update with one Localization language removed

I'm working about one application for iOS. Application is already on App Store. But in new version, I have to remove one from Localization languages (Germany). After this, i observed very strange behaviors: When i deploy application on my phone without old version previous application, then everything is okay - if i has iOS set to Germany, application is in English. But when i deploy it when old version is already installed, then application does not show English translation, but only keys form unexisting Germany version ("terms_header" and so...).
My question is: How application will behave, when i send new version to App Store, and users will updates their phones to new version of my application?
When you update the application on any iOS device, it's bundle resources always get updated. However you can test the scenario using
- Install old application from xcode with localization
- Test if localization is working properly
- Update application with new build from xcode
- Re-test the application by changing language.
During updates only user generated data stay intact and bundle resources get updated.
What happens if you remove the application from the organiser and then reinstall it?
Ok, i found it. There is the way to check, how application will behave when is updatet from App Store:
Remove application from device
Generate Archive from old version of your app via Xcode (Product->Archive)
Distribute archived application as Ad-Hoc Deployment
Repeat points 2 and 3. for NEW version off your application.
Put .ipa file with old version of your app into iTune.
Install it on you device via iTune and synchronize device.
Check old version of application on you device.
Put .ipa file with new version of your app into iTune.
Press "Update" in iTunes, and synchronize device.
Check new version of application on your device.
In this case, my application is works.