Macでアプリケーションを作成した場合、アプリストアを経由せずにiPhoneでアプリケーションを実行する方法はありますか?
公式SDKを使用して作成されたアプリケーションを実行できる限り、iPhoneをジェイルブレイクする必要があるかどうかは関係ありません。入らない理由で、このプログラムをアプリストアに通すことはできません。
標準の iPhone の場合、開発者プログラムのメンバーになるには、年間 99 米ドルを支払う必要があります。その後、アドホック システムを使用して、アプリケーションを最大 100 台のデバイスにインストールできます。詳細は開発者プログラムに記載されていますが、各デバイスの UUID をアプリケーション パッケージに追加する必要があります。UUID は、App Store から入手できるAd Hoc Helperを使用して簡単に取得できます。この方法の詳細については、Craig Hockenberry のBeta testing on iPhone 2.0の記事を参照してください。
ジェイルブレイクされた iPhone の場合、iPhone OS 3.0 でAccelerometerGraphサンプル アプリを使用して個人的にテストした次の方法を使用できます。
まず、自己署名証明書を作成し、iPhone SDK にパッチを適用して、この証明書の使用を許可する必要があります。
Keychain Access.app を起動します。項目を何も選択していない状態で、[キーチェーン] メニューから [証明書アシスタント] を選択し、次に [証明書の作成] を選択します。
名前: iPhone 開発者
証明書の種類: コード署名
デフォルトを上書きする: はい
[続行] をクリックします
有効期間: 3650 日
[続行] をクリックします
電子メール アドレス フィールドを空白にします。
完了するまで [続行] をクリックします。
「このルート証明書は信頼されていません」と表示されます。これは予期されることです。
自己署名証明書を使用できるように iPhone SDK を設定します。
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Xcode を開いている場合は、再起動してこの変更を有効にします。
次の手順ではopenssh
、 とuikittools
を最初にインストールする必要があります。jasoniphone.local
ターゲット デバイスのホスト名に置き換えます。SSH をインストールした後、mobile
とユーザーの両方に独自のパスワードを設定してください。root
アプリケーションを手動でコンパイルして電話にシステム アプリとしてインストールするには (Apple のインストール システムをバイパスします):
プロジェクト、アクティブな SDK の設定、デバイス、およびアクティブなビルド構成の設定、リリース。
プロジェクトを通常どおりにコンパイルします (Build & Go ではなく Build を使用)。
ディレクトリにbuild/Release-iphoneos
アプリ バンドルがあります。好みの方法を使用して、これをデバイスの /Applications に転送します。
scp -r AccelerometerGraph.app root@jasoniphone:/Applications/
新しいアプリケーションがインストールされたことを SpringBoard に知らせます。
ssh mobile@jasoniphone.local uicache
これは、アプリケーションを追加または削除する場合にのみ実行する必要があります。更新されたアプリケーションは、再起動するだけです。
開発中の作業を楽にするために、SSH キー認証をセットアップし、これらの追加の手順をプロジェクトのカスタム ビルド手順として追加できます。
後でアプリケーションを削除する場合は、標準の SpringBoard インターフェース経由では削除できないため、SSH を使用して SpringBoard を更新する必要があることに注意してください。
ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
はい。iPhone Developer Program に参加し、Apple に 99 ドルを支払うと、最大 100 台の iOS デバイスにアプリケーションをプロビジョニングできます。
この投稿の助けを借りて、迅速な展開のためにアプリ Installous を介してインストールするスクリプトを作成しました。
# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist
cd $CONFIGURATION_BUILD_DIR
# zip up the HelloWorld directory
/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist
上記の投稿に欠けているのは、iTunesMetadata です。これがないと、Installous はアプリを正しくインストールできません。以下は、iTunesMetadata の例です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>appleId</key>
<string></string>
<key>artistId</key>
<integer>0</integer>
<key>artistName</key>
<string>MYCOMPANY</string>
<key>buy-only</key>
<true/>
<key>buyParams</key>
<string></string>
<key>copyright</key>
<string></string>
<key>drmVersionNumber</key>
<integer>0</integer>
<key>fileExtension</key>
<string>.app</string>
<key>genre</key>
<string></string>
<key>genreId</key>
<integer>0</integer>
<key>itemId</key>
<integer>0</integer>
<key>itemName</key>
<string>MYAPP</string>
<key>kind</key>
<string>software</string>
<key>playlistArtistName</key>
<string>MYCOMPANY</string>
<key>playlistName</key>
<string>MYAPP</string>
<key>price</key>
<integer>0</integer>
<key>priceDisplay</key>
<string>nil</string>
<key>rating</key>
<dict>
<key>content</key>
<string></string>
<key>label</key>
<string>4+</string>
<key>rank</key>
<integer>100</integer>
<key>system</key>
<string>itunes-games</string>
</dict>
<key>releaseDate</key>
<string>Sunday, December 12, 2010</string>
<key>s</key>
<integer>143441</integer>
<key>softwareIcon57x57URL</key>
<string></string>
<key>softwareIconNeedsShine</key>
<false/>
<key>softwareSupportedDeviceIds</key>
<array>
<integer>1</integer>
</array>
<key>softwareVersionBundleId</key>
<string>com.mycompany.myapp</string>
<key>softwareVersionExternalIdentifier</key>
<integer>0</integer>
<key>softwareVersionExternalIdentifiers</key>
<array>
<integer>1466803</integer>
<integer>1529132</integer>
<integer>1602608</integer>
<integer>1651681</integer>
<integer>1750461</integer>
<integer>1930253</integer>
<integer>1961532</integer>
<integer>1973932</integer>
<integer>2026202</integer>
<integer>2526384</integer>
<integer>2641622</integer>
<integer>2703653</integer>
</array>
<key>vendorId</key>
<integer>0</integer>
<key>versionRestrictions</key>
<integer>0</integer>
</dict>
</plist>
明らかに、MyApp のすべてのインスタンスをアプリの名前に置き換え、MyCompany を会社の名前に置き換えます。
基本的に、これは、Installous がインストールされているジェイルブレイクされたデバイスにインストールされます。セットアップ後は、どこからでもインストールでき、会社の Web サイトにアップロードし、ファイルをデバイスに直接ダウンロードして、~/Documents/Installous/Downloads
.
今後の Xcode 7 では、Apple 開発者ライセンスがなくてもデバイスにアプリをインストールできるようになったため、アプリ ストアをスキップできるようになり、デバイスをジェイルブレイクする必要がなくなりました。
これで、誰もが自分の Apple デバイスで自分のアプリを入手できるようになりました。
Xcode 7 と Swift により、誰でも簡単にアプリを作成し、Apple デバイスで直接実行できるようになりました。Apple ID でサインインするだけで、アイデアを iPad、iPhone、または Apple Watch で操作できるアプリに変換できます。Xcode 7 ベータ版をダウンロードして、今すぐ試してみてください。プログラムのメンバーシップは必要ありません。
引用元:https ://developer.apple.com/xcode/
アップデート:
XCode 7 がリリースされました。
無料のオンデバイス開発 今では、誰もが自分のアプリをデバイス上で無料で実行およびテストできます。Mac、iPhone、iPad、iPod touch、または Apple Watch で独自の作成物を実行およびデバッグできます。料金もプログラムへの参加も必要ありません。無料の Apple ID を Xcode に入力するだけです。App Store や iTunes ですでに使用しているのと同じ Apple ID を使用することもできます。アプリが完成したら、Apple Developer Program を利用して、App Store でアプリを入手できます。
デバイスでのインストールと実行の詳細については、デバイスでのアプリの起動を参照してください。
ジェイルブレイクされたルートに行くと、iPhone OS のアップデートによってこれらのアプリを実行できなくなる可能性がある (可能性が高い?) ことに注意してください。私は公式ルートに行き、99 ドルを支払って認証を取得します。アプリが破壊されることを心配する必要がないことに加えて、ストアでアプリをリリースする機会 (選択する必要があります) も得られます。
@Jason Weathered で説明されている方法でアプリを iPhone にコピーした後、必ずアプリの「chmod +x」を実行してください。そうしないと実行されません。
*これをXcode 3.2.1およびiPhone SDK 3.1.2で動作させるための変更点/注意事項
WiFi を介した手動展開
2) Info.plist を変更した後は、必ず Xcode を再起動してください。
3) killall -HUP SpringBoard を使用すると、「uicache」コマンドが見つかりません。
それ以外は、これが正常に機能することを確認できます。
PwnageTool 3.1.4 を使用している Mac ユーザーは、ジェイルブレイク (急流経由の DL) に最適でした。
パッチ/Developer/Platforms/iPhoneOS.platform/Info.plist
を適用してから、Apple の実際の開発用プロビジョニング プロファイルを使用して、デバイス上で実行されているアプリケーションをデバッグしようとすると、おそらく動作しません。症状は、からの奇妙なエラー メッセージでcom.apple.debugserver
あり、Xcode でビルドするときにエラーを取得せずに任意のバンドル識別子を使用できます。解決策は、復元することInfo.plist
です。