App Crash due to Urban Airship Implementation in ios - iphone

I am having an app in which I am using Urban Airship For Push notification.
I integrated the latest SDK for it.
My configuration plist is as follow:
APP_STORE_OR_AD_HOC_BUILD = YES
In Production (resolved): 1
In Production (as set): 1
Development App Key:
Development App Secret:
Production App Key: XXXXXXXX
Production App Secret: XXXXXXXX
Development Log Level: 4
Production Log Level: 1
Resolved Log Level: 1
Detect Provisioning Mode: 0
Clear Keychain: 0
Analytics Enabled: 1
Analytics URL: https://combine.urbanairship.com
Device API URL: https://device-api.urbanairship.com
But my app is crashed on following line
[UAirship takeOff:config];
Please help me.
Thanks in advance.

Probably related to https://stackoverflow.com/a/18922547/1637562.
Make sure you add "-ObjC" flag to "Other Linker Flags" in your build settings.

Related

argocd-notifications single app update triggers sync event on all other apps as well

I have multiple apps (helm) deployed via argocd (app of apps pattern), all residing in folders in same git repository:
app1, app2, app3... appN.
I am using argocd-notifications.
I have configured trigger for on-deployed event (from example in helm chart):
trigger.on-deployed: |
- description: Application is synced and healthy. Triggered once per commit.
oncePer: app.status.sync.revision
send:
- app-deployed
when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy'
and default subsciption:
subscriptions:
- recipients:
- slack:release
triggers:
- on-deployed
Now if I change file(s) in app1 folder, trigger is firing on all other apps as well: app2, app3 ... appN, spamming slack with unneeded messages about apps that are not affected by change and are not actually deployed.
I want to be notified only about apps that are actually updated/deployed. Is there any workaround to achieve this?
I had the same issue. What worked for me was the following trigger
oncePer: app.status.syncResult.revision and app.metadata.name
send:
- app-deployed
when: app.status.operationState.phase in ['Succeeded'] and
app.status.health.status == 'Healthy'
In this case, I get 2 notifications per release, one for the app of apps and the second for the app itself. If you are not interested in the app of apps notification you can also filter this out. Though in my case is fine to have 2 notifications because I have an aggregation service before the notification goes to slack.
oncePer: app.status.operationState.syncResult.revision
I have it working like this.

Analytics Kit - When Response Content From Connection inputStream operation exception! 40

I'm trying to implement Huawei Analytics Kit in the app, but unfortunately I faced with a problem, when in debug mode my custom event's are not displaying on the web in App debugging. In logs I can see the following error, that is saying that I have no network or no Internet permission which is NOT true in my case.
W/HiAnalyticsSDK: HttpClient=> When Response Content From Connection inputStream operation exception! 401
W/HiAnalyticsSDK: StreamUtil=> closeQuietly(): Exception when connHttp.getInputStream()!,There may be no network, or no INTERNET permission
I/HiAnalyticsSDK: ReportInstance=> response code : 401
I/HiAnalyticsSDK: SendTask=> events PostRequest sendevent TYPE : oper, TAG : _openness_config_tag, resultCode: 401 ,reqID:530a86a50e7643cb83ec1328b5332fbf
I/HiAnalyticsSDK: SendTask=> is debug mode
Could you suggest me please the source of this kind of problem, because I've already made a full research of documentation and didn't find the solution of this problem. Thanks.
Would you mind provide some further info for further check?
-The version number for Huawei Analytics SDK
-Data storage area selected when analysis service is enabled
-A complete Huawei Analytics SDK log, from initialization to error occured
Error code 401 means unauthorized access or invalid login credential. Please make sure that you have include your agconnect-services.json in your app directory, enable and configure Analytics API correctly in your developer console.
You can refer to this FAQ - https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/environment-faq-0000001050162062-V5.
Please go over this doc and make sure that you don’t miss any step - https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-dev-process-0000001050163813-V5.

rails private-pub gem: chat does not work in iphone/ipad safari

I implemented the chat functionality in my RoR app based on the 'private pub' gem and Faye. I launched it on heroku and it works on laptop browsers, however, not on iphone/ipad Safari (messages don't auto refresh).
I found a similar question but was not clear about the answer/if there was a solution.
Does Faye work on the iPad
How can iOS Safari connect to the faye server/ pub channel? I have followed the settings as per the tutorial (http://www.thegreatcodeadventure.com/hello-or-building-a-chatting-app-with-rails/):
MyApp/config/private_pub.yml:
production:
server: "http://myapp.herokuapp.com/faye"
...
Heroku-deploy-faye-app/config/private_pub.yml:
production:
server: "http://myapp.herokuapp.com/faye"
...
Heroku-deploy-faye-app/private_pub.ru:
# Run with: rackup private_pub.ru -s thin -E production
require "bundler/setup"
require "yaml"
require "faye"
require "private_pub"
Faye::WebSocket.load_adapter('thin')
PrivatePub.load_config(File.expand_path("../config/private_pub.yml", __FILE__), ENV["RAILS_ENV"] || "production")
run PrivatePub.faye_app
I'm hoping for a quick fix based on the config settings. Or do I need to switch to a different solution (e.g. socket.io, Twilio, Pusher...)?
Thanks a lot!

Not able to push my local app to bluemix

I had an app running on another bluemix account. I wanted to copy the app and run it in another bluemix account. So I downloaded code from github repo., but when I am trying to push this app to another account I am seeing following error.
Note : I used cf push to push the downloaded app. Any help ?
Log :
2014-12-16T14:49:15.41+0530 [API] OUT Updated app with guid e2fca26a-c62d-47 5d-8c21-8e959ae6632c ({"state"=>"STOPPED"})
2014-12-16T14:49:42.10+0530 [DEA] OUT Got staging request for app with id e2 fca26a-c62d-475d-8c21-8e959ae6632c
2014-12-16T14:49:45.08+0530 [API] OUT Updated app with guid e2fca26a-c62d-47 5d-8c21-8e959ae6632c ({"state"=>"STARTED"})
2014-12-16T14:49:45.65+0530 [STG] OUT -----> Downloaded app package (4.6M)
2014-12-16T14:49:46.15+0530 [STG] OUT -----> Downloaded app buildpack cache(4.4M)
2014-12-16T14:49:48.62+0530 [STG] OUT Staging failed: An application could not be detected by any available buildpack
2014-12-16T14:49:49.37+0530 [API] ERR Encountered error: An app was not succ
essfully detected by any available buildpack
Please check your Manifest.yml. Either your app is missing it or has some wrong entry. you can look for this file in your downloaded app. And also don't forget to pass build pack name when running push command.
This link could be helpful:
https://ibm.biz/BdEgub
What language is the app in? Sometimes Cloud Foundry can't detect the type of app you are running and when you push the app you need to tell it what kind of app it is. We can do that with some of the following commands. I went ahead and posted it for a couple different languages. More info here. https://www.ng.bluemix.net/docs/#starters/byob.html
To see all the "built in" buildpacks run the following command.
cf buildpacks
You will get something like the following.
Getting buildpacks...
buildpack position enabled locked filename
liberty-for-java 1 true false buildpack_liberty-for-java_v1.9-20141202-0947-yp.zip
sdk-for-nodejs 2 true false buildpack_sdk-for-nodejs_v1.9.1-20141208-1221-yp.zip
noop-buildpack 3 true false noop-buildpack-20140311-1519.zip
java_buildpack 4 true false java-buildpack-v2.5.zip
ruby_buildpack 5 true false ruby_buildpack-offline-v1.1.1.zip
nodejs_buildpack 6 true false nodejs_buildpack-offline-v1.0.4.zip
liberty-for-java_v1-8-20141118-1610 7 true false buildpack_liberty-for-java_v1.8-20141118-1610-yp.zip
liberty-for-java_v1-3-20140818-1538 8 true false buildpack_liberty-for-java_v1.3-20140818-1538.zip
sdk-for-nodejs_v1-8-20141104-1654 9 true false buildpack_sdk-for-nodejs_v1.8-20141104-1654-yp.zip
Java App:
cf push appname -b liberty-for-java
or cf push appname -b java_buildpack
Node.js:
cf push appname -b sdk-for-nodejs
or cf push appname -b nodejs_buildpack
Ruby:
cf push appname -b ruby_buildpack
There are a bunch of other languages supported as well.
For a list head over to https://github.com/cloudfoundry-community/cf-docs-contrib/wiki/Buildpacks.
If for example you wanted to use PHP you would do the following.
cf push -b https://github.com/cloudfoundry/php-buildpack.git
If you wanted to do Go you would do the following.
cf push appname -b https://github.com/cloudfoundry/go-buildpack.git
two ways to sort out this issue(Assuming its a node.js app)
Run command like below from cf tool mentioning app name :
cf push testmyapp -b sdk-for-nodejs -n testmyapp -m 128M -c 'node main.js'
P.S- "-n" option is used for required hostname on bluemix
mention app name,service name explicitly in manifest.yml file like below:
applications:
name: testmyapp
host: testmyapp
memory: 128M
command: node main.js
P.S- You need to create manifest.yml explicitly if you are using 2nd method.
If you still getting any error,please provide o/p of "cf logs testmyapp --recent"
Alternatively,you can even directly push your app like below:
For Go application to Bluemix, but need to supply -b with the Go Buildpack URL:
cf push appname -b https://github.com/cloudfoundry/go-buildpack.git
Similarly,you can do for other one's.
Looking at the below error,your app is not able to detect correct type of SDK.
2014-12-16T14:49:48.62+0530 [STG] OUT Staging failed: An application could not be detected by any available buildpack
2014-12-16T14:49:49.37+0530 [API] ERR Encountered error: An app was not succ
essfully detected by any available buildpack
you need to check the correct sdk type and mention it while pushing like below:
cf push myapp -b sdk-for-nodejs -n myapp -m 128M -c 'node main.js'
I had a talk in the last CloudFoundry summit on all kinds of app push errors: their symptoms, how to diagnose and what are the solutions. See https://www.slideshare.net/greensight/10-common-errors-when-pushing-apps-to-cloud-foundry. Hopefully it will be helpful.
Given the above answers are a bit stale here is the latest. Build packs version do go out of support. You should check what version of the build pack you are specifying either on the command line using -b option the command line or in your manifest.yml
See the commands to check these items here in the IBM Cloud Doc ibmcloud cf buildpacks. https://cloud.ibm.com/docs/cloud-foundry-public?topic=cloud-foundry-public-using_buildpacks
To see the build packs that are available by language:
ibmcloud cf buildpacks

apple push notifications - no valid 'aps-environment' have tried all solutions I've seen on web?

I'm tearing my hair out trying to get push notifications to work! I'm following this tutorial to basically no avail. I've deleted xcode several times, redone the whole apple dev certificate, cleaned out my login keychain a few times. This has helped a few issues, but at the end I'm still stuck.
What I think I need to do (from reading other people's experience with this):
1) My openssl cert and key need to be talk to the apple server
2) The app id with this openssl cert has a provisioning profile associated with it.
3) The build (in xcode) needs to have the proper provisioning profile associated with it
4) The build identifier (in xcode) needs to have the same text as the application id with the provisioning profile
4) ???
As far as I can tell, all of this is ok:
My ssl certificate + key talk nicely to the apple server (ignore the error, I still get a prompt eventually):
MacBook-Pro:apple_dev_certification nflacco$ openssl s_client -connect
gateway.sandbox.push.apple.com:2195 -key xxx.pem -cert xxx.pem Enter
pass phrase for xxx.pem: CONNECTED(00000003) depth=1 /C=US/O=Entrust,
Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009
Entrust, Inc./CN=Entrust Certification Authority - L1C verify
error:num=20:unable to get local issuer certificate .....
2,3,4) When I create a new project, it never gets the right app ip (build settings->info-bundle identifier). If my provisioning profile matches 'com.xxx' then the app will always be 'com.xxx.FOO', so the default IOS Team Provisioning Profile is selected. I run the app like that, and get:
2011-10-22 22:42:45.086 VVV[3552:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x16d140
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
4 contd) I want to use my provisioning profile that uses my app id with push enabled, so I change the app identifier to 'com.xxx', and select the proper profile in the code signing option in the build menu. Install it on my iPhone, same thing :(
The only things I can think of:
My provisioning profile is not correct? I've made a new one several
times, deleted the all existing ones in xcode organizer, but this
hasn't helped.
Code is still getting signed with the Team Profile instead of my new
one? Is there a way to ensure this?
Any ideas on what I should do here? This can't be this complicated. Should I just wipe my HD and reinstall from scratch and hope it works?
You know what it was? My app id.
foo.bar is treated as foo.bar.* (which is not permitted)
you have to have foo.bar.xxx
I think for push you need an Entitlements.plist file that has an aps-environment key, with a value of "production". I just got finished getting this working (again) for my app. Some other answers here helped me get the Organizer window to pop up after I did the Archive, but then I was getting your error.
I also had to quit & restart XCode with some frequency, touch settings that didn't actually change, delete the old, pre-push certificate and add the new one, etc etc. A lot of the settings in XCode didn't actually change, but it seems like touching them caused it to start working.