Can things go wrong when installing developed app on iOS devices - ipad

I don't have a iPad, and [bizarrely] creating an iPad app (for the experience mostly) but I would like to put it on the App Store after testing it.
My cousin has an iPad, and possibly could lend it to me. Is there any chance of the iPad being broken by an app that doesn't go outside the App Store rules (no private APIs etc)? I know each app has it's own sandbox, and it can't "get out of it", but has anyone ever experienced a problem that couldn't be resolved by a restore from iTunes, or has anyone had to perform restore at all?

That way madness lies. In essence, lots of things can go wrong - you might drop the iPad into a carelessly placed vat of liquid nitrogen for example.
However, it's incredibly, incredibly unlikely that you'll in some way "break" the iPad by simply installing a provisioning certificate and test app onto it. (I won't say "impossible", as your computer might be struck by lightning, reducing all attached USB devices to a cripsy un-pleasantness the very second you first run the app.)
That said, if you're feeling paranoid, simply get the owner to back-up the iPad within iTunes before you borrow it. :-)

Related

Trouble compiling for iOS 11.1 with Xamarin (Visual Studio)

There is not much of a point in posting actual code here, because we're talking about 7 different apps.
All of these apps have been up on the Apple Store and running fine. Until the new iOS 11.1 came out. Now I am being forced to update all of those apps, and rearrange the screen to allow for the new layout of the iPhone X.
Now all of this seems mostly reasonable, if not ridiculous for them changing their own design standard. But the real problem is that I went through all of that. Upgraded Xamarin (Visual Studio), and packages, and Xcode, and the Simulators, AND my Mac system. Everything is up to speed. The apps compile and test fine on any simulator I install them on.
The only change to the code is moving stuff around on the screen. Well, that, and I now need to drop support for anything i386. It all has to be x86_64 now.
From what I can tell, that is a difference from 32-bit to 64-bit. And that change is a dropdown menu choice in the Project Options. In any case, there is no indication at all that there is anything wrong with these apps at all.
So with all of this, I submit my apps for approval, and every single one of them gets rejected because "The app crashes on startup." And they kindly attach a log file showing what went wrong.
Now, I know I can simply scour those logs, for all 7 apps... The log files need to be fed into some other program that can decipher them, because they are not human-readable. Which is just annoying...
What I'm hoping is that someone can save me some trouble and explain what they changed in their systems that is not being caught by the compilers or the simulators.
Any help would be hot.
I am posting my own answer because I have not seen one anywhere that addresses what I have found to have worked. So I am providing this information for the next small developer, like myself, can get some useful answers to questions where Apple and Xamarin are simply NO HELP at all.
Xamarin does provide a page that essentially says, "get your app ready for iOS 11." The most useful part of this is where it shows you how to remove any linkage to anything 32-bit.
Architecture changes
This is mostly helpful. And I thought that once that was done, I'd be all set. There are 2 other things they completely fail to mention:
- You must set your target device to 11.1. You cannot have it set for 9.0. That will make the app crash on an 11.1 system.
- You must make a change in the manual code editing (source) section of the info.plst file. Why this is not done automatically, I cannot say. You must add an entry to the "Required Device Capabilities" section for "arm64". You also must remove the one for arm7.
Failure to do these two things, even after making their suggested changes will cause the app to crash on iOS 11.1 devices.
If you think I'm having a bit of an attitude problem about this, yes, I am. And I will not apologize for it.
It is absurd for Apple to change their design specs, give us very little time to make changes, and then not provide the absolutely essential information to actually make the changes. I blame Xamarin too. For the exact same reasons.
It is also absurd to totally deprecate all the testing devices I have, and then ask, "why don't you test on an actual device?" Because I cannot afford a new $1000 phone for the sake of testing apps that barely make me any money anyway. That's why.
And people wonder why I think it's a pain in the bum to develop for iOS devices.
1) Some of the frameworks that your app use may use libraries, that does not work correctly on iPhone. The reason for that is that when you compile your project on the simulator, is still compile it for a PC architecture, not a mobile one. And if there are any differences, only a real device could tell you about them.
2) I would suggest you to use this method to symbolicate crash reports from Apple. That at least should give you some clue. In summary, what you need to do is after you compile your app, you need to save a few files (.dSYM and .ipa) Then when apple send you back a report, you would be able to symbolicate it into human readable. You can find more info on how to do it here: https://developer.xamarin.com/guides/ios/troubleshooting/questions/symbolicate-ios-crash/

ios app-on-device debugging events

Newbie here, so apologies if this is stupid question:
Are there any applications or solutions out there that would allow you access to debugging events on an app installed on your iphone? To be clear, this isn't an app I've developed, it's just on my iphone and is used as part of another solution which we are developing. Curious if there's a way to just watch the events on an app to help with debugging process.
Thanks.
If you make an app, and build it with a development release, and development signing, you can select to build+run it on a device. Then, you can use the Xcode debugger to see your logs / errors etc.
Steps:
Plug in iPhone
Start Xcode
Hit Build + run
Watch debugger
Logs are either made by the OS for certain things (NSinconsistency, bad constraints, race conditions in view presentation) or by you with NSLog.
Or did you mean when the app is not tethered to your computer? There are other tools for that - including just plugging the phone back in and downloading the logs off the device.

Testing in a iOS 6.1 jailbroken device without Hackulo.us and Apple developer ID

first of all, I know there are many questions similar to this one, but, they are old and the answers in them unfortunately no longer work, since the game has changed without Hacklo.us to do part of the process.
Basically, I want to develop for iOS and test the apps I make, and later in the future I may want to submit them to the Apple Store, but for now I'm not willing to pay 99$ to join the Apple iOS developer program just to use my apps in my iPhone.
I have a jailbroken iPhone 4S with iOS 6.1.
The only posts I found about how to do this, either use Hackulo.us (that went down about 2 months ago) or something called Jailcoder that is also offline and they also seem to work with only old versions of XCode/iOS (not clear about that point).
Any new progresses on how to to this with the present conditions?
Simple. After building the app, just use some utility (SSH, iExplorer, etc.) to copy the app bundle to the /Applications directory on the device. After that, either run the uicache tool or respring the iPhone to make the application appear on the home screen.

Writing a replacement "App Launcher" / "Home Screen" for iPad

Is there a way for schools and businesses to replace the iPad "app launcher" or "home screen" with a customized alternative?
Could an application be developed for iOS that would allow this? Or is the SDK locked down to prevent such an application from being developed.
All pointers and insights greatly appreciated.
You can change the load screen, from the dark black to an image ,but no you can't change the layout of the app menu on the iOSDevice. At least not without jail-braking. This is because apple doesn't want you editing their menu that gives them a nice clean look, or see their software.
The app-launcher is not part of the app, it's different even though it's still mainly made with cocoa in objective c, it's still not accessible by you, legally. So since I frown upon jailbraking, and I'm pretty sure most developers do, I would advise to focus on your app, not the main menu which already works great.
Check out ana App launcher definition here.
The sdk is completely locked down, but you could still make a big app, like an app box that has multiple apps inside. The application could be web-based, allowing more access without updating the app, meaning no waiting for apple to approve an update.
One more alternative is that you could make custom apps that are free, and easy for the students or whoever to download them, but they would require a student password to unlock.
Don't edit an OS, it could do serious damage to the device software forever.

How does an iOS screensaver app work?

A client of mine recently came up with a few apps he came across while browsing online. Specifically, he discovered that there are apps that call themselves 'screensavers', and now he wants me to make him a screensaver app.
The obvious problem is that I don't know of any way to make my app open (displacing whatever is in the background) based on a lack of user input in another app! In fact, I would have sworn that it was completely impossible to do so.
So, to wrap up the question -- is it possible to make such an app, and if so how? Or are those apps really, really, badly labeled?
I just tested 3 of the top "screen-saver" applications on my iPad. None of these can turn themselves on, without the user launching them. They are really badly labeled products. In a non-jailbroken device, launching the screensaver application without user interaction is not possible.
Cydia Screensaver Application for Jailbroken devices.
You're correct -- it isn't possible to open an app with no user interaction with a stock device, although there are jailbroken packages that will complete a task similar to this.
You should explain to your client that these "screensaver" apps usually gimmick the reader into downloading them as if they function as do screen savers on personal computers.

Resources