Xcodeから実際のiPhoneデバイスにiPhoneアプリケーションをデプロイするにはどうすればよいですか?


157

US $ 99のApple証明書がなくても、Xcodeから実際のiPhoneデバイスにiPhoneアプリケーションをデプロイするにはどうすればよいですか?


ジェイルブレイクされたiPhoneに配置する方法についての非常に優れたガイドを求めるために、前に質問したこの回答を参照してください。
Dan Walker、


2
Xcode 7は無料でプロビジョニングできるようになったため、実際のデバイスでアプリをテストするためにApple Developer Accountにサインアップする必要はありません。詳細については、この回答を参照してください。
Suragch 2015年

回答:


56

アプリケーションが署名されていないようです。Cydiaからldidをダウンロードして、次のように使用します。ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

また、バイナリが実行可能としてマークされていることを確認してください: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph


3
はい、この方法が機能するには、デバイスを脱獄する必要があります。(明らかに)
esqew 2010

コマンドldid -S ...をどのように起動しますか?そのためにSSHコンソールが必要ですか?ジェイルブレイクされたIPhoneでSSHクライアントを取得する無料の方法はありますか?
Dan Leahu、2011年

tanderson:Cydiaにはldidパッケージがあり、OS X用にコンパイルできます
rpetrich

rpetrich彼の質問は、パックを取得する方法ではなく、コマンドを入力して使用する方法だと思います。@tandersonは、Open SSHを経由して(そしてデスクトップから電話に接続して)、iPhone内のターミナルに接続できます。どちらのアプリもCydiaから無料でダウンロードできます。SSHを使用すると、アプリを電話にコピーするだけで使用できるという利点があります。これを頻繁に行う場合は、必ず他の回答も確認してください。XCodeにすべての仕事を任せることができますが、それをだましてしまうのは面倒な手順です。
cregox 2011

92

:私は2つのHOWTOの混在使用してきたジェイソンさんアレックスのを。2番目には、デバッグできるという利点があります。私はほとんど両方を以下にコピーします(そしてアレックスを簡素化します):

2012年1月の更新:これはまだSDK 4.2.1およびiOS 5.0.1で動作します-新しいコンピューターとデバイスですべてテストしました!


1.自己署名証明書を作成する

この証明書の使用を許可するように、iPhone SDKにパッチを適用します。

  1. Keychain Access.appを起動します。アイテムが選択されていない状態で、[キーチェーン]メニューから[証明書アシスタント]、[証明書の作成]の順に選択します。

    • 名前: iPhone開発者
    • 証明書の種類: コード署名
    • デフォルトを上書きします: はい
  2. [続行]をクリックします

    • 有効期間: 3650日
  3. [続行]をクリックします

  4. [ メールアドレス]フィールドを空白にします。

  5. 完了するまで [ 続行]をクリックしますます。

    あなたは、表示されるはずです「このルート証明書が信頼されていません」。これは予想通りです。

  6. 自己署名証明書の使用を許可するようにiPhone SDKを設定します。

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist

    Xcodeを開いている場合は、再起動してこの変更を有効にします。

そして、もしあなたがiOS 5を使っているなら、それだけです!やってみよう!デバッグはできないかもしれませんが、アプリはそこにあります!

ご存知のように、私はこれらのハッキングのすべてについて何も知らないので、私はこれに非常に驚きました!指摘したように、他の場所で見つけたものを少し改善するだけでした。

そうです、そうです、方法全体がもう同じように機能せず、私は新しい方法を見つけるのに迷惑をかけることができませんでした... これを除いて、Theosと呼ばれるツールを使用しますが、プロセス全体を実行できませんでした。

最後に、何らかの理由でアンインストールする必要がある場合は、この投稿の最後を確認してください。私の場合、この方法全体が機能しなくなった理由を理解できなかったため、そして長い間待たされていたライセンスをすでに取得しているので、もう気にする必要がなかったので、私はしなければなりませんでした。(DUNS番号のフリーキングには時間がかかります...)


2. Xcodeがジェイルブレイクされたデバイス上でビルドできるようにします

  1. ジェイルブレイクされたiPhoneに、ソースを追加してApp Syncをインストールします** http://repo.hackyouriphone.org **

  2. コードサインとエンタイトルメントのSDK要件を削除します(私はsedを愛しています!):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
  3. iPhoneOS5.0.sdkパーツに注意してください。たとえばiOS 4.2 SDKを使用している場合は、それに応じて単に置き換えます。

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
  4. Xcodeにパッチを適用して、要件の削除を完了します。これはバイナリ編集を意味します:

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
    dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
    printf "\xc3\x26\x00\x00" >> working
    /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
    /bin/mv working iPhoneOS\ Build\ System\ Support
    chmod a+x iPhoneOS\ Build\ System\ Support

    Xcodeを開いている場合は、Xcodeを再起動して、この変更(および最後の変更)を有効にします。

  5. メニューから[プロジェクト]> [プロジェクト設定の編集]を開きます。「ビルド」タブをクリックします。検索「コードはアイデンティティの署名」とその子「どれiPhoneOSデバイスを」リストで、エントリの両方に設定「しないコードサイン」

    代替テキスト

    この後、ステップ3を元に戻してください。少なくとも私の場合は、問題なく動作しました。

  6. Xcodeをカスタム署名の自己署名証明書(最初のハウツー)でコード署名に設定します。デバッグできないようにする場合は、この手順をスキップできます。

    mkdir /Developer/iphoneentitlements401
    cd /Developer/iphoneentitlements401
    curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
    mv gen_entitlements.txt gen_entitlements.py
    chmod 777 gen_entitlements.py

    iPhoneを接続してXcodeを開きます。Window> Organizerを開きます。左側のリストからデバイスを選択し、[開発に使用]をクリックします。プロビジョニングWebサイトのログインを求められます。[キャンセル]をクリックします。これは、正当なプロビジョニングを容易にするためにありますが、非正規のプロビジョニングを難しくしません。

    今、あなたはあなたが作るすべての新しいプロジェクトのためにこの最後の部分をしなければなりません。[プロジェクト]> [新しいビルドフェーズ]> [新しい実行スクリプトビルドフェーズ]に移動します。ウィンドウに、これをコピーして貼り付けます。

    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
    fi


アンインストール

前編:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist

後編:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support

2の代わりにステップ3を実行した場合は、それに応じて次のように変更します。

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist

残りは、XCodeで行ったことを元に戻し、必要に応じて削除/Developer/iphoneentitlements401/gen_entitlements.pyするだけです。

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py

これらの指示に従って試してみましたが、「スキーム」のタイプはMy Mac 64ビットになり、シミュレーターや実際のiPhoneを実行するオプションがなくなったため、コードをテストすることもできません。私はSDK 4.3を使用していましたが、それが問題であるかどうかは不明です
nosatalian

1
実際に更新:プロジェクト設定のベースSDKをiphoneosからiOS 4.3に変更した後、動作します。xcodeは「リモートプログラムの起動エラー:プロセスのタスクの取得に失敗しました」と表示していますが、アプリをクリックして起動できます。
nosatalian

1
次のエラーが表示されます:The identity used to sign the executable is no longer valid. ... (0xE8008018) 3650日を期限切れにしても 電話自体がチェックを行っているようです。
Stephen

この「パッチングXCode」のトリックは4.3.2で機能しますか、それともブレーキングします
Gabor

1
ポイント6.私の場合、通常のユーザーが実行できるように、/ Developer / iphoneentitlements401 / gen_entitlements.pyファイルの権限を変更する必要がありました。これで手順は完全に機能します。
アビディボ2012

43

Xcode 7以降の無料プロビジョニング

Apple Developer料金(またはデバイスの脱獄)を支払うのではなく、実際のデバイスでアプリをテストするために、Xcode 7およびiOS 9がサポートする新しい無料のプロビジョニングを使用できます。

ドキュメントから多かれ少なかれ取られたステップはここにあります(これはかなり良いので、読んでください):

1. Apple IDをXcodeに追加します

[XCode]> [設定]> [アカウント]タブ> [追加]ボタン(+)> [Apple IDを追加]に移動します。詳しくはドキュメントをご覧ください。

ここに画像の説明を入力してください

2.プロジェクトナビゲーターの[全般]タブをクリックします。

ここに画像の説明を入力してください

3.チームポップアップメニューからApple IDを選択します。

ここに画像の説明を入力してください

4.デバイスを接続し、スキームメニューで選択します。

ここに画像の説明を入力してください

5. [問題の修正]ボタンをクリックします

ここに画像の説明を入力してください

バンドル名が無効であるというエラーが発生した場合は、一意の名前に変更してください。

6.アプリを実行する

Xcodeで、[ビルドして実行]ボタンをクリックします。

ここに画像の説明を入力してください

7.デバイス設定でアプリ開発者を信頼する

アプリを実行した後、実行するアプリがApp Storeからのものではないため、セキュリティエラーが発生します。

ここに画像の説明を入力してください

あなたには、デバイス、設定>一般>プロファイル>に行き、あなたのアップル-ID-名 >トラストあなたのアップル-ID-名 >トラスト。

8.デバイスでアプリを再度実行します。

それでおしまい。これで、99ドルを無駄にすることなく、独自の(またはソースコードを持っている他のアプリ)を実行できます。最後にこれを許可してくれたAppleに感謝します。


1
どうもありがとう。これは、有料のApple Developer Licenseがなくても完全に機能しました。
kishorer747

ただし、これにはいくつかの問題があります。一度にインストールできるアプリは3つまでで、毎週証明書を更新する必要があります。
SilverWolf-2018年

@seaturtle、更新ありがとうございます。私は結局、開発者ライセンスのお金を手に入れましたので、この回答について最新の状態を維持していません。それは限界についてはあまりにも悪いです。Androidには、Appleよりも優れている点がいくつかあります。
Suragch 2018

9

公式のSDKで構築され、xcodeから直接デプロイするアプリケーションについて話しているのではありません。


8

デバイスを脱獄する必要があります。


1
@rpetrichの方法に従い、実行可能ファイルをデバイスの/ ApplicationsフォルダーにSSHで接続します。再起動/復帰後に機能するはずです。
esqew



4

私は昨晩Apple Developerを通過していましたが、プロビジョニング証明書に「Signing Team Members」のようなものが見つかりました。チームメンバーを有料プロフィールに追加する方法はあると思います。アプリIDの所有者(有料のもの)にチームメンバーとして追加するよう依頼するだけです。私はわかりません。まだそれを探しています。


はい、チームメンバーを追加できます。年間200台のデバイスに制限があります。
cregox

Cawas-Apple IDにメンバーを追加する方法を知っていますか?
Akshay、2011

名前の前に@を追加した場合にのみ、通知を受け取ります。あなたが言ったように、あなたは最初に支払いアカウントを取得する必要があります。それを行う方法についてのチュートリアルが見つからなかったので、それは本当に簡単なはずです。自分でやったことはありません。
cregox、2011

3

いいえ、これを行うのは簡単です。Xcodeで、アクティブ構成をリリースに設定します。デバイスをシミュレーターからデバイス-SDKに変更します。iPhoneに直接エクスポートする場合は、コンピューターに接続します。Build and Goを押します。iPhoneがコンピュータに接続されていない場合、iPhoneが接続されていないというメッセージが表示されます。

これが当てはまる場合:(iPhoneは接続されていませんでした)

プロジェクトフォルダーに移動してから、内部のビルドフォルダーに移動します。Release-iphoneosフォルダーに移動し、アプリを中に入れ、iTunesアイコンにドラッグアンドドロップします。iTouchデバイスを同期すると、デバイスにコピーされます。また、iPhoneのアプリケーションとしてiTunesに表示されます。

お役に立てれば!

PS:証明書が有効ではないというメッセージが表示された場合は、Xcodeのプロジェクト、左側のファイルスタックにある小さなプロジェクトアイコンをクリックし、Apple + Iを押すか、メニューバーから[情報を見る]を実行してください。上部にある[ビルド]をクリックします。[コード署名]で、[コード署名ID-すべてのiPhone OSデバイスを署名しない]に変更します。


7
OPには、署名証明書またはプロビジョニングプロファイルがありません。これらの手順は、99ドルのiPhone開発者プログラムのメンバー向けですが、プログラムにサインアップせずにデバイスで実行する方法の質問には対応しません。
cdespinosa 2010年

2

実際には、プロビジョニングプロファイルなしでiPhoneにデプロイする方法はバージョンによって異なるため、使用しているXcodeのバージョンによって異なります。

Xcode 3.2.1は優れたバージョンであり、簡単に整理できますが、使用しているバージョンを知る必要があります。


2

Cawasによって投稿されたソリューションは、XCode4でも完全に動作します。ただし、IDEのUIにはいくつかの変更があるため、Run Scriptを見つけるためにいくつかの調査を行う必要があります:)

プロジェクトナビゲータービューでプロジェクトのルートアイテムをクリックし、中央のウィンドウで[ターゲット]を選択し、[ビルドフェーズ]タブをクリックします。下部に[ビルドフェーズを追加]ボタンが表示され、[実行スクリプトを追加]をクリックして選択し、「codesign Cawasが投稿したスクリプト。


1

回避策はありません。アプリがデバイスに登録されている場合のみ、アドホック展開アプリを使用できます。これにより、独自のアプリストアを構築できなくなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.