How is OpenPlug able to build on windows? - ios

OpenPlug is a app builder that runs on mac and windows.
http://developer.openplug.com/learn-more//362-cr14
"iOS distribution signing on Windows and Mac
Sign your iOS applications for distribution right from OpenPlug Studio. There is no more need for signing with Xcode! IPA package signature for both development and iTunes distribution was completed with the additional support of:
Apple Push Notification service
in App purchase
And it runs seamlessly on Mac and Windows machines."
Apple, I am sure will ban Openplug apps if there isn't an agreement.
Just seen that marmalade SDK can also build on windows.
How are they allowed?

I am the product manager for the OpenPlug tools.
Our tools are not the only ones that allow IPA signing on Windows (you mentioned marmalade, but there is also Adobe CS5/AIR/Flash Builder, and certainly others ...)
As far as I know, Apple hasn't banned any app built with those tools on the ground that they were developed on a non-Apple-branded computer.
For publishing your app you anyway need to access iTunes Connect from a Mac.
Having the possibility to sign IPAs on Windows facilitates the dev/debug cycle on device if you are a developer with a Windows host.
Technically, the signing tools are available open source from the Mach open source distribution of MacOSX. You can refer to the comments section of this post on Corona's blog (another app development tool) for discussion about legalities: http://blog.anscamobile.com/2010/03/does-flash-cs5-for-windows-violate-the-iphone-developer-agreement/.
The last time I looked at Apple's agreements, its only the "SDK" (i.e. xCode and associated iOS SDK) that was only allowed for use on Apple-branded computers only.
Hope this helps
Guilhem

Related

Is a Mac Required for Packaging Apache Cordova App?

I was reading how to package and deploy Apache Cordova apps to the Apple Store; but it almost seems as though one needs a Mac in order to do so.
Is this correct?
I've seen a few questions on SO about this but was wondering if this is still the case...
This is the documentation I was reading: https://taco.visualstudio.com/en-us/docs/tutorial-package-publish-readme/#package-the-ios-version-of-your-app
Step 1: Request a distribution certificate A distribution certificate
identifies your team or organization.
If your team already has one and you want to reuse it, see How to
share an iOS distribution certificate. Then, skip straight to the
Modify the settings of your app section.
If you don't have a distribution certificate yet, continue on with
this section and we'll help you set one up.
Start Xcode.
If you haven't installed Xcode, see the First, install a few things
onto your Mac section of the iOS setup guide.
Yes, you need Mac for build & sign and upload it to store. You will need your app screenshots and videos for a lot of different apple device also. iOS emulators only running in Mac. You can rent Mac on internet. I suggest, bought your own machine. If you have limited budget, you can buy second hand mac mini. You can try your chance with WM also but full hd simulator for ipad very bad.

How to distribute my finished app without app store?

As the title states, I have been developing and testing an app for Iphone. I have got it to install to an iphone via it being plugged into the Mac. But, I would like to get the app place it on my webserver then via a website allow someone to download and install the app. I tried following various tutorials, but as shown below after archiving the app, the export and other buttons are greyed out. Have also made sure 'Generic iOS devices' selected. What could be causing this ?
You have to use Apple TestFlight or use a third party service to allow your beta to be distributed for testing. One good service is HockeyApp, which I am using currently and it is very cheap $10/month.
Without having the UDID of your client, you simply can't!
What is causing this may be that you are not enrolled in the correct Apple developer program.
A stock iOS device will only install an app from a link on a website if the app is signed by certificate from an Enterprise Developer program enrollment (or Ad Hoc provisioned). The Enterprise distribution method is only allowed to employees of the enrolled corporation.
Ad Hoc deployment to devices registered to your enrolled Developer account is also supported by stock iOS devices.
One other possibility is to put a link to your entire Xcode project on your website, with instructions on how anyone with a Mac and Xcode can build your app and then run it on on their device.

iPhone - Put App on Phone Using Windows Computer

I have a problem: I am using a windows computer to code using Google Remote Desktop. I am writing an iPhone app for my phone. I dont want to release the app, I just want to get it on my iPhone. I do not have access to any kind of mac. Basically, I have an xcode project on a mac that I am accessing using Google Remote Desktop. How can I put this app on my iPhone. This is for a school project. It is time sensitive. Is there anything I could do with iCloud or iTunes or something? Thanks for any suggestions.
You're going to have to find a Mac to at least compile the code. After that, you can put it on your iPhone directly in Xcode - if, and only if, you've paid your $99 to Apple to get a development certificate.
You might be best off finding someone with a Mac and a membership in the iOS Developer Program to compile your app and run it on your phone.
I'm afraid you can't sync an app to your phone without using Xcode. Xcode provisions the app using your developer certificate so that it can be installed on a device. This is part of Apple's software security and helps prevent malicious apps. As far as I'm aware Xcode is the only app that will do the code signing and install.
To be a bit more precise, Xcode uses command line tools under the hood to perform the code signing and syncing, and these tools that are only available on OS X.
You can install an app package (.ipa) using iTunes on Windows - refer to this answer - install ad-hoc distribution over iTunes running on Windows
BUT as others have said, you need to have an iTunes developer program membership in order to generate the signed IPA file on your remote Mac.

Package iOS applications

I am little confused about the packaging process for iOS application. One of my client already have a private distribution channel and want us to supply just the packaged file. Now what all do we need from client.... just Application Name, Application ID and certificates in P12 format?
Also how can we test the application on a real device, do we need to have developer license, if yes then can I reuse developer license to develop another application...
Sorry if it is a lame question... I am pretty new to iOS application packaging.
Testing the application on a device is easy if you have XCode version 7 or more.
Simply plug the device via usb and run the app using the play button in XCode
You don't need to have a developer license or a paid developer account for testing. This can be done via your Apple ID also

How does TestFlight do it?

TestFlight offers over-the-air beta distribution of iOS apps (on non-jailbroken devices). How can this be done? Is this an iOS feature, or a vulnerability exploit?
This article showed how Apples OTA implementation works and can be used outside enterprises as well: ios wireless app distribution
The complete process is documented by Apple.
Apple also published documentation and sample code for registering devices and get the UDID by using profiles, so your website can detect which device is calling.
Some additional solutions with different strenghts:
iOS Beta Builder, a Mac Application to create the website by using a build. Simply upload the resulting files to your webserver.
Diawi: Simple Web service. Upload your IPA file, optionally set a password and send a link to your testers.
AppSendr: Web service for beta build hosting, similar to Testflight, but does not include the device registration process. But provides deployment utilities to automatically upload new versions.
HockeyKit: Open source project for hosting beta versions on your own PHP5 server with additional functionalities like an client for In-App-Updates, automatic device specific web sites and handling multiple applications. Completely file and directory based.
HockeyApp: Web Service for beta build hosting, In-App-Updates, Statistics, and including device registration, invite and recruitment. Also provides server side crash report collection, symbolication (for all threads) and crash grouping for beta and app store apps (iOS + Mac). SDKs are open source, using HockeyKit, QuincyKit and PLCrashReporter (which is the only safe solution on how to do crash report collection on iOS, see this article.
Note: I am the main developer of HockeyKit and QuincyKit, and one of the developers of HockeyApp.
This was possible before TestFlight rolled out a service. The technique stemmed out of the enterprise distribution mechanism. Since 4.0 devices have supported install from web.
Remember - you still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device. All they are doing is taking the email the IPA step out of things.
See:
http://www.alexcurylo.com/blog/2010/08/27/wireless-ad-hoc-distribution/
Update: I want to say that Test Flight is one of the most helpful tools I've used when developing though. Just taking the IPA emailing out of the picture was an understatement- I was just trying to call out the technical mechanism. They do a fantastic job managing the whole beta process. Getting new devices enrolled. Notifying users etc.
Testflight basically uses the normal Ad Hoc as already stated.
For this to work, you need the UDID for every device in order to add it to the Ad Hoc profile, re-compile the app with the new profile an redistribute the new build.
You can get the UDID with the help of the OTA Authentication Request. This is actually a step that is done in MDM before the actual profile is rolled out to the device. It basically asks the device for further information about itself and send it back to a self specified server.
The first step is documented here: Apple OTA Configuration
I guess Testflight uses this right after the registration process to collect the UDID, phone name, ...
Yes this is a core feature of iOS for Enterprise Customers who wish to distribute OTA.
Presumably you would pass your UDID over to TestFlight along with the app and they use their Enterprise Licence to send the app to you. I'm sure I'm missing a lot of the technical details but if you want to know more, Apple has a video on this from WWDC 2010.
Login to developer.apple.com, go to WWDC 2010 Videos and use the link to get to the vidoes. The video you want is "Session 108 - Managing Mobile Devices". It is very informative about what is possible with OTA and the steps you have to take to do OTA provisioning.
Stock iOS devices are "vulnerable" to running the user loading Ad Hoc apps from any developer who has that device's UDID, and registers that UDID among their 100 allowed devices on Apple's developer portal.
OTA distribution is just another way to install an Ad Hoc beta test distribution from an enrolled developer.

Resources