Program Tip

UDID 및 재 컴파일을 관리하지 않고 무선으로 iOS 애플리케이션을 배포하는 방법

programtip 2020. 12. 1. 19:38
반응형

UDID 및 재 컴파일을 관리하지 않고 무선으로 iOS 애플리케이션을 배포하는 방법


사람들이 UDID를 관리 할 필요없이 무선으로 iPad 애플리케이션 데모를 (내부적으로) 배포하기 위해 어떤 방법을 사용하고 있는지 알고 싶습니다.

testflight 또는 betabuilder와 같은 솔루션이 필요하지 않습니다.이 모든 작업을 수행하려면 애플 프로비저닝 프로파일 포털에서 UDID를 관리해야합니다.

이 질문을하는 이유는 다른 스튜디오가 지금 훨씬 더 현명한 방식으로 작업하는 것을보고 어떻게했는지 알고 싶습니다. 그들이 제공 한 링크를 사용하여 간단한 HTML에서 무선으로 데모 애플리케이션을 설치할 수 있습니다. 프로비저닝 프로파일이 내 iPad에 마술처럼 나타납니다. 이 모든 일은 내가 그들에게 내 아이 패드의 UDID를 말하지 않고 일어 났고, 따라서 그들이 프로젝트를 재 컴파일 할 필요가 없었습니다.

어떻게했을까요?


이제 몇 달 동안 문제없이 내 앱을 무선으로 배포하고 있습니다. 물론 저는 연간 299 달러의 비용이 들고 내부 업무용으로 사용되는 엔터프라이즈 라이선스에 따라 배포하고 있습니다. 이는 일반 개발자 라이선스로 작동 할 수 있지만 확인하려면 몇 가지 테스트를 수행해야합니다. 작동하면 프로세스가 동일하다고 생각합니다. 저는 XCode 4를 사용하고 있으므로 다른 버전을 사용하는 경우 약간 다를 수 있습니다. 기본적으로 리소스에 Entitlements.plist 파일을 추가해야합니다.

New->File->Code Signing->Entitlements

배포하기 전에 변경해야합니다.

"Can be debugged" to NO

프로젝트가 올바른 코드 서명 프로필로 설정되어 있는지 확인하십시오. 이제 다음으로 이동하십시오.

Product->archive

새로 만든 항목으로 다음을 클릭하십시오. 공유

Select "iOS App Store Package (.ipa)"

사용하려는 적절한 배포 프로필을 선택합니다. 다음을 클릭 한 다음 .ipa 파일을 저장할 위치를 선택합니다. 저장을 클릭하기 전에 확인해야합니다.

Save for Enterprise Distribution

.ipa 파일은 FTP 서버에 저장해야합니다. 그렇지 않으면 최소한 그렇게해서 작동하게됩니다. "응용 프로그램 URL"필드의 경우 저장할 .ipa 파일의 경로를 사용합니다. 예를 들면 다음과 같습니다.

ftp://ftp.company.com/Installers/myApp.ipa

제목을 지정한 다음 "큰 이미지 URL"및 "작은 이미지 URL"에서 큰 (512x512) 및 작은 (72x72) 아이콘 파일의 경로를 지정합니다 (iPad 용으로 개발 중이므로 iPhone이 다를 수 있음). . 예를 들면

ftp://ftp.company.com/Installers/small.png

.ipa 파일을 저장하십시오. 이제 ftp 서버에 .mobileprovision 파일을 배치해야합니다. 앱을 실행하려는 사람은 누구나 파일을 설치해야합니다. 그렇지 않으면 실행할 수 없습니다. 이제 엔터프라이즈 프로그램의 일부가 아니라면 모든 장치 ID가 내장 된 .mobileprovision 파일이 필요한지 확실하지 않지만 시도해 볼 수 있습니다. 파일이 모두 ftp 서버에 있으면 두 파일에 대한 링크가 포함 된 이메일을 만들어야하지만 .ipa 파일에 대한 링크는 특수 형식이어야합니다. 프로비저닝 파일의 경우 :

ftp://ftp.company.com/Installers/profile.mobileprovision

.ipa 파일의 경우 :

itms-services:///?action=download-manifest&url=ftp%3A%2F%2Fftp.company.com%2FInstallers%2FmyApp.plist

이제이 이메일을 누군가에게 보낼 때 먼저 .mobileprovision 파일을 다운로드하고 설치 한 다음 .ipa 파일을 다운로드하면됩니다. 짜잔, 그들은 당신의 프로그램을 실행하고 있습니다. 엔터프라이즈 구독없이 작동하는지 알려주세요. .mobileprovision 파일에 장치 ID가 포함되어 있다면 그럴 것이라고 생각합니다.

편집하다:

앱을 배포하는 훨씬 더 나은 방법을 찾았지만 PHP 서버가 필요합니다. 당신이하는 일은 즉석에서 plist 파일을 생성하고 그것을 반환하는 PHP 파일을 만드는 것입니다. 큰 이미지, 작은 이미지 및 ipa 파일에 대한 링크에서 특정 프로그램에 대해 해당 항목을 반환하는 다른 PHP 파일에 대한 링크를 전달합니다. 링크에서 앱을 설치하려면 다음과 같은 URL을 전달하면됩니다.

itms-services:///?action=download-manifest&url=http://mycompany.com/php/installApp.php?app=myappname

PHP 함수에서 myappname을 다른 PHP 호출에 삽입하면 서버에서 적절한 파일을 가져옵니다. 이 방법을 사용하면 앱이 생성 될 때 plist 파일을 저장할 필요가 없습니다. 따라서 매번 정보를 다시 입력 할 필요가 없기 때문에 앱을 쉽게 업데이트 할 수 있습니다. 확인란을 선택하지 않아도됩니다. 엔터프라이즈 배포의 경우 이전 파일 위에 ipa 파일을 저장하기 만하면됩니다. 또한이 방법으로 보안 및 로그인 기능을 쉽게 구현할 수 있습니다. 또한 모바일 프로비저닝 파일은 앱을 설치할 때 자동으로 설치되므로 특별히 설치할 필요가 없습니다. ipa 파일에 저장됩니다.

편집하다:

PHP 방법을 명확히하기 위해 plist 파일을 생성하는 php 파일을 생성합니다. 엔터프라이즈 배포 빌드에서 생성 된 표준 plist 파일을 복사 한 다음 php 파일에서 다음과 같이 헤더를 설정합니다.

$pathToAddFi = "installers/".$_GET['app'].".plist"; //points to the php server file location of your .ipa files. when you call this php script, you pass in the name of the ipa file you want to install. Note: this location doesn't actually contain any plist files!
$root = "http://yourserver.com/php/root/"; //path to this PHP file's directory

header('content-type: application/xml');
header('Content-Disposition: attachment; filename='.basename($pathToAddFi));
header('Content-Transfer-Encoding: binary');

그런 다음 다음과 같이 항목의 URL을 대체하는 문자열을 작성합니다.

<string>".$root."ipa_serve.php?app=". $_GET['app']."</string>

xml 문자열을 에코하기 전에 마지막 헤더로 끝냅니다.

header('Content-Length: ' . strlen($myXml));

마지막으로 ipa 파일을 제공하는 php 파일, 큰 이미지를 제공하는 파일, 작은 이미지를 제공하는 파일을 만듭니다. PHP에 익숙하지 않다면 상당히 간단해야합니다.


저도 같은 일을 겪었습니다. 큰 차이점은 엔터프라이즈 배포 프로필 (연간 $ 299)입니다.이 중 하나가 있으면 목록에 장치 UDID가 필요하지 않습니다. 연간 $ 99의 정상적인 거래가 있다면 그렇게해야합니다. 그렇게 간단합니다.

Good news is that Apple have recently dropped the "500 employee" restriction so any company can get one of these: http://blog.apperian.com/2010/10/apple-opens-ios-developer-enterprise.html

You just have to get a free DUNS Number from Dun and Bradstreet, which take 30 days. We've applied for ours and will see how it all pans out.


You do need a provisioning profile, but it's embedded in the .ipa file, it doesn't need installing via iTunes as a separate installable.

You should check out TestFlight, a web app for managing OTA Ad Hoc build distributions; it's fantastic. It does all kinds of clever stuff, including gathering the UDIDs of your user's devices for you. (You, the developer, still need to input these into the iPhone Dev Center's provisioning portal, but the user can remain blissfully unaware that UDIDs even exist, never mind that they have to send it to you. Maybe this is what your boss used previously.)


I don't know of a way to accomplish this without the UDID of the user. My guess is that the developer already had your boss' UDID from before and created/bundled a new provisioning profile, or your boss was testing a mobile web app.

You can do ad-hoc distributions a little more easily now with Wireless App Distribution.

iOS 4: wireless app distribution for in-house applications


The application you're referring to is called Beta Builder. My boss used it for the first time today and it worked great. Definitely worth $2.


All this happened without me telling them the UDID of my ipad, and therefore definitely without them to recompile the project.

Little known fact: You don't need to recompile the app. You don't even need to resign the app. All that matters is there's an installed provisioning profile that's "similar enough" to the embedded.mobileprovision inside the app (profile name? bundle ID? bundle seed? Who knows).

Alternatively, they could be doing automated builds. Maybe. Maybe not.

What might be happening:

  1. The server sends you a "configuration profile" (see SCEP/enterprise whatever). Apparently this can be used to get your device's UDID. TestFlight does this.
  2. The server automatically does a few things (either by screen scraping, or through some Enterprise API if there is one):
    1. Add the device UDID to Apple's list of devices.
    2. Tell apple to generate the provisioning profile.
    3. Download the provisioning profile.

The accepted answer is pretty old, and I found a lot of confusing resources for distributing Enterprise apps, so I thought I'd respond with a better solution.

HockeyApp is free and allows you to upload your Enterprise (and Ad-Hoc) builds and serve as a public download page. Note that this will only work without registering users and provisioning their device's UDIDs if you have an Apple Enterprise account as others here have mentioned, but it is by far the simplest, quickest workflow for distributing apps to clients quickly without the overhead of device provisioning.

참고URL : https://stackoverflow.com/questions/5546581/how-to-distribute-ios-application-wirelessly-without-managing-udids-and-recompil

반응형