itms-services://
のURLを使用して、Enterpriseアカウントを介してアプリを配布します。これはいつもうまくいきました、しかし私達のiPadにiOS 7.1ベータ版をインストールした後それはインストールを拒否します。代わりに、アプリのダウンロード中に何らかの問題が発生したときにiOSが不適切に表示する一般的なCannot connect to example.com
メッセージを受け取るだけです。
問題の原因を突き止めるために、SO、Google、7.1のリリースノートには何も見つからなかった。
アプリをインストールしようとしている間私はiPadをコンピュータに接続し、XCode Organizerを通してコンソールを見ることによって問題を見つけました。エラーは以下のようになります。
Https以外のマニフェストURLを読み込めませんでした: http://example.com/manifest.plist
IOS 7.1では、manifest.plist
ファイルのURLはHTTPSでなければなりません。ここではHTTPを使用していました。 URLをHTTPSに変更すると、問題が解決しました。
すなわち.
itms-services://?action=download-manifest&url=http://example.com/manifest.plist
になる
itms-services://?action=download-manifest&url=https://example.com/manifest.plist
問題のドメインに対して有効なSSL証明書が必要です。私達はすでにしました、しかし、あなたはそれなしであなたが問題を抱えることを想像するでしょう。
ingcontiは正しいです。
www.dropbox.com
をdl.dropboxusercontent.com
に置き換えます。download.html
としてフォーマットした<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
ファイルを作成しますdownload.html
をdropboxにアップロードしてくださいwww.dropbox.com
をdl.dropboxusercontent.com
に置き換えます。今、あなたのデバイスでhttps://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html
にアクセスしてください、あなたは以前のようにアプリをインストールすることができます。
何が素晴らしい世界だ!
Mark Parnellの答えに加えて、これを回避する手っ取り早い方法は、マニフェストplistをDropboxに入れてから、Dropboxウェブインターフェースを使って直接httpsリンクを張ることです( 'Share link' - > 'リンク ' - >'ダウンロード 'を取得します。
実際のIPAは、あなたがいつもそれを提供しているところならどこにでも残ることができます。 plmsのURLをitms-servivces URLのクエリに挿入する前にURLエンコードする必要があります(ただし、&を%3Dに置き換えるだけでもうまくいく可能性があります)。
1つの欠点は、インストールダイアログに「dl.dropbox.comが[whatever]をインストールしたい」と表示されることです。
確かに、iOS7.1以降はhttps経由ですべてのOTA展開を実行することが期待されています。これを文書化していないためにアップルを恥じてください。
Dropboxを頼りにしたり、証明書のために現金を引き出すことよりも優れた社内ソリューションを探しているあなたのために、あなたがここでヒント#5に概説されたステップに従うならあなたはソリューションを持つことができます: http ://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/
その要旨はこれです:
これは、単に自己署名証明書を作成するのと同じではありません。このソリューションでは、あなたもあなた自身の私的認証局として機能しています。あなたのAppleデバイスにインストールされているあなたのルート証明書が信頼された(緑)としてマークされていないなら、何かが間違っています。やり過ぎてください。
これは絶対にうまくいきます。
更新日:2014年3月13日 - このプロセス全体を簡素化する小さなコマンドラインユーティリティを提供しました。あなたはそれを得ることができます: https://github.com/deckarep/EasyCert/releases
私は同じ問題を抱えていました。すでにSSLサーバーを使用していましたが、根本的な問題があるため、単純にリンクをhttpsに変更するだけでは機能しませんでした。
そのハイライトされたビットは、証明書を信頼するオプションを与える必要があることを教えてくれましたが、これはアプリストアであるため、Safariを介して動作するため、回復の提案は表示されません。
既存のソリューションに満足できませんでした。理由は次のとおりです。
自己署名ルート認証局を作成し、これを使用してサーバーのSSL証明書を生成することで、最終的に解決策を見つけました。
キーチェーンアクセスとOSXサーバーを使用しましたが、各ステップには他の有効なソリューションがあります
私が収集したものから、認証局は証明書が本物であることを検証するために使用されます。自分で作成しようとしているので、正確にsecureではありませんが、特定の機関からのすべての証明書を信頼できることを意味します。これらの機関のリストは、実際に信頼されているため、通常ブラウザにデフォルトで含まれています。 (GeoTrust Global CA、Verisignなど)
この場合、証明書署名要求はサーバー管理者によって生成されます。単に、「このサイトのこの情報を含む証明書をください」と尋ねるファイルです。
再び認証局として機能する場合、CSRを送信した人が本物であり、他人のふりをしていないかどうかを判断するのはあなた次第です。実際の当局にはこれを行う独自の方法がありますが、あなたがあなたであることを十分に確信しているので、あなたの検証は非常に確実でなければなりません:)
残りのオプションで[続行]をクリックできます。
メールアプリが開き、証明書を送信する機会が与えられます。メールで送信する代わりに、右クリックして保存します。
次に、SSLトラフィック用に作成した証明書を使用するようにサーバーを設定する必要があります。
アプリをインストールする必要がある各デバイスには、この認証局のコピーが必要です。これにより、その認証局からのSSL証明書を信頼できることがわかります。
Plistリンクがhttpsであることを確認してください
私はそれがうまくいくことを確認することができます、しかしあなたはdropboxにhtmlとplistを置かなければなりません。それは非企業OTAのためにも働きます、すなわち、あなたはあなたの開発者とアプリを共有したいです。チーム。
やった:
a)私のサイトで私はこのリンクでページを作りました:
.. href = "https://dl.dropboxusercontent.com/u//(your DB id)/ipa.html"> MyApp
b)DropBoxで私は別のHTMLページを書きました:
.. https://dl.dropboxusercontent.com/u/(your DB id)/MyApp.plist ">をタップしてMyAppをインストールします
c)Dropboxでplistを動かしましたが、古いサーバーへのPOINTに残しました(httpsなし)
端末を開いて次のコマンドを実行します。curl -i https://(.ipaファイルパスがplistではありません)
これにより、インストーラがIPAファイルを参照できるかどうかがわかります。 curlコマンドに '-i'を付けて実行すると、完全な応答が表示されます。おそらくIPAファイルではありません。これはインストーラに表示される応答なので、HTTP 200とIPAが返されない場合は、最後に返す必要があります。
ITMSインストーラーはSafariからコンテキストを保存しません。 Safariで安全なポータルに認証された場合、認証クッキーはインストーラに渡されません。つまり、インストーラーは認証なしでアプリを見ることができる必要があり、これが「サーバーに接続できません」という結果になる可能性があります。
私は同じ悩みを持ち、上記のようにしました。
両方のページともios 7.1でiPhoneにアプリをインストールするのに成功しました。
しかし、今ではIOS 7.0x搭載のiPhoneはアプリをインストールできません。
私は新しい質問を作成しました。 アップグレードされたアドホックアプリのデプロイメントは7.1より前のiosでは動作しません
どちらの問題も密接に関連しており、公式の言及がないことによっても裏付けられています。
Class 1のStartSSL証明書と、証明書のサポート(すべての証明書で動作する)を追加する共有Apache設定、および既存の* .plistファイル内のリンクを自動的に変更するコードを使用して問題を処理しました。コピーするには長すぎるので、ここにリンクがあります。 http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios- 7 /
あなたがAWS S3を持っていることが偶然にも魅力のように働くならば。そうですね。比較的言えば:-)
AWSでアドホック用のバケットを作成し、インデックスファイル(単に空白のindex.htmlファイルにすることもできます)を追加してから、CyberDuckやCodaなどのS3に接続できるクライアントを使用します(ここではAddを選択します)接続ウィンドウを取得するためのサイト)その後、添付のように接続を設定します。
次にXCodeでエンタープライズアドホックを構築し、 https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-appを必ず使用してください。アプリケーションURLとしてipa をクリックし、新しいS3バケットディレクトリにアップロードします。
あなたのITMSリンクは一致するべきです、すなわちitms-services://?action =ダウンロードマニフェスト&url = https://s3.amazonaws.com/your-bucket-name/your-ad-hocフォルダー/ your-app.plist
そしてvoilá。
これは一般的なAWS URLの場合のみです。AWSではカスタムURLを試していませんので、いくつか異なることをする必要があるかもしれません。
私はJames Websterの解決策を上に動かそうとすることを決心しました、しかし私はそれをPleskと働かせることができませんでした。
企業向け配布にDropboxを使用する代わりに、エンタープライズ署名付きアプリの配布にTestFlightを使用できます。
https://www.testflightapp.com/
これは、アドホック開発ビルドとエンタープライズビルドの両方をホスティングおよび配布するための素晴らしいサービスです。
Dropboxに関する以前の回答に加えて、PLISTファイルのみをDropboxにアップロードする必要があるなど、次のファイルツリーを実装しました。
リンクをクリップボードにコピーする「リンクをDropboxと共有する」オプションを使用してください。 www.dropbox.com
でdl.dropboxusercontent.com
という部分を変更した後、このリンクをhtmlファイルのitms-servivces URLのクエリにコピーする必要があります。注@Mikeが推奨するようにリンクをURLエンコードしましたが、それを行わずにテストすることはしません。これで、itms-services URLのクエリは次のようになります。itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist
httpであなたのサーバーにhtmlファイルをアップロードしてください。 htmlファイルには、ipaへのリンクとプロビジョニングファイルの両方が含まれています。
今から、ipaファイルだけがあなたのベータテスターにOTAによって次のアプリバージョンを提供するために変更される必要があります。 Appleがまだセキュリティルールを変えているまで。
私が使っている非常に単純なHTMLファイルの後にここに参加します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>iPhone app for test</title>
</head>
<body>
<h1>iPhone app for test</h1>
<br/>
<ul>
<li><a href="http://www.yourdomain.com/with/directories/provision/v.last/yourprovision_adhoc.mobileprovision">
Install Provisioning File</a></li>
<li><a href="itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist">
Install Application</a></li>
</ul>
</body>
</html>
この記事を読んだ後、私はまだ私のアプリをダウンロードすることに問題がありました。問題は自己署名SSL証明書が原因でした。
私はこの問題に対する解決策を見つけました。証明書ファイルの拡張子を「.crt」にしてWebにアップロードし、そのアドレスをモバイルサファリに入力する必要があります。信頼された証明書のリストに自分の証明書を追加することについてシステムから質問されます。この操作の後、あなたはあなたのアドホックアプリをインストールすることができるでしょう。
普遍的な解決策は、お使いのデバイスをMacに接続して、インストール中に何が起こっているのかを観察することです。私はエラーを得ました:
根本的なエラーでダウンロードマニフェストを読み込めませんでした:エラードメイン= NSURLErrorDomainコード= -1202 "ストアに接続できません" UserInfo = 0x146635d0 {NSLocalizedDescription =ストアに接続できません、NSLocalizedRecoverySuggestion =サーバーに接続しますか?、NSLocalizedFailureReason =安全な接続を確立できませんでした。 日付と時刻の設定を確認してください。、NSErrorFailingURLStringKey = https://myserver.com/app/manifest.plist 、NSUnderlyingError = 0x14678880 "このサーバーの証明書が無効です。機密情報を危険にさらす可能性がある" myserver.com "のふりをしているサーバーに接続している可能性があります。"、NSURLErrorFailingURLPeerTrustErrorKey =、NSErrorFailingURLKey = https://myserver.com/app/manifest.plist }
日付の設定をチェックすることをそのエラーに提案さえありました。何らかの理由で、日付は1970年1月1日でした。正しい日付を設定することで問題は解決しました。
私たちのチームはhttpsを使ったアドホック配布にdropboxを使っていますが、それでも私たちのアプリはインストールに失敗していました。多くのトラブルシューティングの後、titleフィールドも必須であることがわかりました。このフィールドなしでリンクを送信すると、safariはそのリンクを無視し、ユーザーにインストールを促しませんでした。素早い開発テストのために、xmlのtitleノードをスキップしてそれを追加しないことがありました。これがこの問題を抱えている人に役立つ場合は、.plistに次のノードが追加されていることを確認してください。
....
<string>software</string>
<key>title</key>
<string>Your App Name</string>
...