160

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

4

12 に答える 12

92

ジェイソンとアレックス2つのハウツーを組み合わせて使用​​しました。2つ目は、デバッグできるという利点があります。私は主に以下の両方をコピーします(そしてアレックスを単純化します):

2012年1月の更新:これはSDK4.2.1とiOS5.0.1でも引き続き機能します-新しいコンピューターとデバイスですべてをテストしました!


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

この証明書の使用を許可するためにiPhoneSDKにパッチを適用します。

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

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

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

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

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

    「このルート証明書は信頼されていません」と表示されます。これは予想されます。

  6. 自己署名証明書を使用できるようにiPhoneSDKを設定します。

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

    Xcodeを開いている場合は、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. (メニューから)「プロジェクト>プロジェクト設定の編集」を開きます。「ビルド」タブをクリックします。リストから「CodeSigningIdentity 」とその子「AnyiPhoneOSDevice」を見つけ、両方を「Don'tCodeSign というエントリに設定します。

    代替テキスト

    この後、ステップ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
于 2010-11-15T00:05:35.887 に答える
56

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

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

于 2008-10-30T23:48:56.320 に答える
49

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

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

ドキュメントから多かれ少なかれ取られた手順は次のとおりです(これはかなり良いので、読んでください):

1. Xcode に Apple ID を追加する

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

6. アプリを実行する

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

ここに画像の説明を入力

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

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

ここに画像の説明を入力

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

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

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

于 2015-11-26T00:30:30.103 に答える
9

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

于 2008-10-29T23:29:06.687 に答える
8

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

于 2008-10-29T11:08:09.540 に答える
6

Apple に支払うことなく iPhone アプリを展開する方法があります。デバイスをジェイルブレイクし、http://www.alexwhittemore.com/?p= 398 の指示に従う必要があります。

于 2010-09-11T17:28:03.637 に答える
5

(有料の) 証明書なしで、実際の iPhone にアドホックに展開できることを示すものはどこにもありません。

于 2009-11-14T07:42:02.110 に答える
4

昨夜 Apple Developer を調べていたところ、Provisioning Certificate に「署名チームメンバー」のようなものが見つかりました。有料プロフィールにチームメンバーを追加する方法があると思います。アプリ ID の所有者 (有料) に依頼して、チーム メンバーとして追加してもらうことができます。私はわかりません。まだそれを探しています。

于 2011-02-08T05:48:31.877 に答える
3

いいえ、これは簡単です。Xcode で、Active Configuration を Release に設定します。デバイスを Simulator から Device (SDK に関係なく) に変更します。iPhone に直接エクスポートする場合は、コンピュータに接続します。Build and Go を押します。iPhone がコンピュータに接続されていない場合、iPhone が接続されていないというメッセージが表示されます。

これに該当する場合: (iPhone が接続されていなかった)

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

お役に立てれば!

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

于 2009-05-15T00:46:18.483 に答える
2

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

Xcode 3.2.1 は適切なバージョンであり、簡単に分類できますが、使用しているバージョンを知る必要があります。

于 2009-11-09T01:17:15.500 に答える
2

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

Project Navigator ビューでプロジェクトのルート項目をクリックし、中央のウィンドウで [Target] を選択し、[Build Phases] タブをクリックします。下部に [Add Build Phase] ボタンが表示されます。クリックして [Add Run Script] を選択し、「codesign」を貼り付けます。カワスが投稿したスクリプト。

于 2011-05-22T19:23:50.293 に答える
1

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

于 2009-07-27T11:29:29.890 に答える