Connecting to iMessage functionality with iOS8 - objective-c

I am making an iPhone app and need to be able to minimally see when a message comes in, when I myself look at it, and when I answer it. I need to see when this happens on the message app that is within the iPhone iOS. I have been looking around for a solution on this and have not been able to find one.
Is this possible to access this data on the iPhone or is it completely closed off?

There is no Messages SDK available currently (as of iOS 8.1) that would allow a developer to interact with (or receive) messages.
The most you can do is to share content through MFMessageComposeViewController.
Be aware other search results suggesting you can use CoreTelephony - you app will be rejected by Apple because CT is a private framework.

Related

iOS 10 Toggle On/Off programmatically 3G/4G data with Private API

So I got a client asking for a way to programmatically reset the data connection of his iPhone. The app won't go to the Appstore so any help is welcome.
There is two possibility but each one does involve Private API uses :
• Toggle 3G/4G On/Off
• Toggle AirPlane mode On/Off
The question is simple :
How to use the Private API to get the wanted result ?
With probability of 95% you won't be able to do that. Apple closed most of private APIs as of iOS 8.4. For education purposes, you could take a look at the iOS runtime headers for iOS 10.1 just to see what's no longer available.
Moreover, as of Xcode 7 you can't even link the private frameworks inside an app that easily - be it for AppStore or AdHoc.
So even if the client device is using a jailbreak, you won't be able to achieve it.
What you could do though - is write a jailbreak tweak and post it to Cydia, or somehow call an existing preinstalled tweak from inside your app on a jailbroken device - though I've never heard anyone do that.

is web view wrapper app get rejected by apple app store?

I am creating the app which loads the HTML page in UIWebView. Here, we are doing the offline capture feature for the app(doing encryption and storing data to the device using coredata).
Note : My App UI is completely UIWebView.
Recently, I heard that these kind of apps gets rejected by apple app store.
If it is true or some one have the same rejection, please provide the info.
your help could be appreciated.
Just using HTML as an implementation method of your UI doesn't become a reason for rejection. This once has been an issue a few years ago, and Apple formally does not limit implementation method anymore. If they do, most of hybrid app platforms couldn't work.
If someone have rejection of their HTML UI app, that should be due to bug or crude implementation of the app features rather than using of HTML stuff. In many cases HTML based UI on mobile systems fails to provide nice responses, then you need to care a lot not to break them. If the reviewer think your app is broken, then your app will be rejected.
Take care that the basis of normal or working state is always Apple's native app.
Yes. An app which its purpose is only to preview a website will be rejected based on Apple's Review Guidelines. Your app has to offer a minimum functionality and introduce at least some App Specific values to be acceptable. You can refer to this link for more information on Apples policy for releasing new applications:
App Store Review Guidelines Minimum Functionality

Turn iPhone into a server programmatically?

I want to make my iPhone app display on a Mac's screen, kind of like AirPlay does with other machines. The only way I have heard to do this is, although I do not like it, turn the iPhone into a server. Unfortunately, I cannot figure out how to do so. I also wanted to set it up in such a way that my Mac automatically detects it. I have seen a similar setup in the game Chopper 2. My Mac app will have a simple timer that fires every few seconds to look for the iPhone, in the same way that Chopper 2's "Find iPhone" button does.
Is there a simple way to turn the iPhone into a server, or start a "session" like Game Center does?
One last thing: I know it is somehow possible, because another app I have actually gives my iPhone a web address at the click of a button. It is called the Dicenomicon, if you want proof.
First there is no easy way to redirect your display to Mac, even if you made it a server of some kind.
Second, to discover or publish customized services on WLAN, you may want to refer to the samples on Bonjour:
CocoaHTTPServer: a simple TCP/HTTP server.
WiTap: an app that discovers and connects to services of the same kind on WLAN by Bonjour.
I'm not really sure what you mean by "server", because there is no way to share the screen of an iPhone using the official SDK, although this is possible by jailbreaking.
It would be possible, however, to send data back and forth between the Mac and iPhone, and display the data on the iPhone, on a Mac. Using that data, you could try to recreate the interface on the Mac. All of this could be accomplished using sockets. A class that might help with that would be cocoaAsyncSocket, which makes network programming a lot easier.
The auto-discovery of iPhones on the local network is achievable with Bonjour. Without getting into too many details, NSNetService would allow you to publish a service for your app from an iPhone, and NSNetServiceBrowser would allow you to find that service on the local network from the Mac. From the NSNetServiceBrowser, you could establish a socket connection with the iPhone.
Good luck!
You might want to take a look at the GameKit APIs, I know they do something similar between two iOS devices.
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/GameKit_Guide/Introduction/Introduction.html

iOS Crash Reporter Service / Alternative to MacDevCrashReports.com

I'm looking for a iOS crash reporter web service. I know MacDevCrashReports but they currently do not accept new sign ups.
I know there is a open source crash reporter framework on GitHub, but I don't want to put that stuff on a server, configure it and so on. A nice web service would be much nicer.
Thanks,
Patrick
I've been using Crittercism for my iOS and Android apps. It's saved me a LOT of time. It has a few more features than BugSense and Hoptoad.
MacDevCrashReports is running out, since I am not able to continue providing the service for free, the amount of data is just too huge. 100.000 crash reports e.g. require about 2GB of storage. BUT I am working on a new service with some friends to provide enhanced functionality for managing crash reports and other developer related data. You might want to check for HockeyApp for news about that.
Until then, you can also use the source MacDevCrashReports is based on, on your own web server. It is completely open source and available at GitHub.
The process of collecting crashes is using PLCrashReporter. Which is more reliable and is async-safe. There are also cases of crashes, like crashes in objc runtime, where it will result in a deadlock (Information by Landon Fuller, creator of PLCrashReporter).
Symbolication of PLCrashReporter created crash log files, can be done with the dSYM bundles, check this description.
Regarding the AppStore argument from Peter. As Patrick points out, this is not working for Ad-Hoc builds, which is one big issue, since you want to find and fix the crashes while testing. On the other side, the crash reports in iTunes Connect are very inaccurate:
The data set only updates once a day
The data is only available after users sync their devices with iTunes and only IF they agreed sending that data. Since most users don't understand the dialog, they deny
You only get a subset of crashes, the top 5
You don't get instant reports, as opposed using an in-app reporter
You don't get grouping of similar crashes as the web service does
You don't get a web interface to work with the crashes, make notes, mark as fixed, etc.
iTunes connect reports for my app to have 0 (zero) crashes, but in my database there are about 200! Check this blog post by futuretap about their experience and findings of using an in-app crash reporter.
There is a new service called BugSense . Give it a shot!
For ad-hoc crash reports you can use TestFlight. It has TestFlights SDK, using which you can collect crash reports and additional data, checkpoints, feedbacks.
If you're distributing through the App Store, you should get crash reports in iTunes Connect.
We're playing around with Hoptoad for some apps. Looks to work pretty well.
I've used HockeyApp and Crashlytics with great success. HockeyApp is nice in that once you've added your IPA file to their service they even provide a download page for you to distribute your build to your testers.
Crashlytics is a little cleaner from a UX perspective but it's still in beta and has a bit of a wait period whereas HockeyApp you can use immediately and it's a bit more mature. It also seems Crashlytics gives preference to apps that are already in the app store when you sign up for the program.
You can also check out BugHD,support iOS,Mac & Android Crash Report
For tracking crashes, I really like Appsee for iOS (although also great for Android apps). It gives detailed crash reports, and also session recordings that let you visually monitor all crashes within your app.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Appsee.start()
return true
}

Is it possible to access text message information through iPhone SDK

I am developing an application where in i want to alert the user if he receives a message from a contact.
I have been struggling for the same yet haven't found any solution to this.
I also wanted to know if the sdk 3.0 allows access to the call history..
There is no access to SMS messages from the application sandbox, and there is no access to call logs from the application sandbox. You can file a feature request with Apple, but I doubt you will see changes to this any time soon. You will not be able to provide any functionality in your app that depends on this information.
Similar question here regarding call history:
Reading call history in iPhone OS
Short answer is, not possible. I do not believe this has changed in 3.0.