web-dev-qa-db-ja.com

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

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

155
DFG

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

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

56
rpetrich

2つのhowtoを組み合わせて使用​​しました: Jason'salex's 。 2番目の方法では、デバッグできるという利点があります。私は主に以下の両方をコピーします(そしてアレックスを単純化します):

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


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

IPhone SDKにパッチを適用して、この証明書の使用を許可します。

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

    • 名前:iPhone開発者
    • 証明書タイプ:コード署名
    • デフォルトを上書きさせてください:はい
  2. 続行をクリックします

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

  4. ブランクアウトEmailアドレスフィールド。

  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で、ソースを追加してアプリをインストールしますAppSync** 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. 「プロジェクト>プロジェクト設定の編集」(メニューから)を開きます。 「ビルド」タブをクリックします。リストで "Code Signing Identity"とその子 "Any iPhoneOS Device"を検索し、両方をエントリ "符号化しないでください"

    alt text

    この後、ステップ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を開きます。 [ウィンドウ]> [オーガナイザー]を開きます。左側のリストからデバイスを選択し、「開発に使用」をクリックします。プロビジョニング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

2番目の部分の場合:

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
91
cregox

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

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

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

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

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

enter image description here

2。 Project Navigatorの[全般]タブをクリックします

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

バンドル名が無効であるというエラーが表示された場合は、固有の名前に変更してください。

6。アプリを実行します

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

enter image description here

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

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

enter image description here

デバイスで、設定>一般>プロファイル>your-Apple-ID-name>に移動します信頼your-Apple-ID-name> Trust。

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

それでおしまい。これで、99ドルを支払う必要なく、独自の(またはソースコードを持っている他のアプリ)を実行できます。 Apple、ようやくこれを許可してくれてありがとう。

42
Suragch

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

9
micmcg

デバイスをジェイルブレイクする必要があります。

8
Can Berk Güder

Appleに支払うことなくiPhoneアプリを展開する方法があります。デバイスを脱獄し、 http://www.alexwhittemore.com/の手順に従う必要があります。 ?p = 398

6
Leo

私がどこでも見たことはありませんが、証明書なしで(代金を支払わずに)実際のiPhoneにアドホック展開できることを示しています。

5

昨夜Apple開発者を通り抜けて、プロビジョニング証明書で「チームメンバーに署名」のようなものを見つけました。チームメンバーを有料プロファイルに追加する方法があると思います。アプリID所有者(有料)に依頼して、チームメンバーとして追加するだけです。私はわかりません。まだ検索中です。

4
Akshay

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

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

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

お役に立てれば!

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

3
Christian

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

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

2
Magnatek

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

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

2
Gobol

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

1
Thomas