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

StackOverflow https://stackoverflow.com/questions/246422

質問

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

役に立ちましたか?

解決

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

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

他のヒント

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

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


1.自己署名証明書の作成

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

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

    • 名前: iPhone開発者
    • 証明書の種類: コードサイニング
    • デフォルトを上書きしましょう: はい
  2. 「続行」をクリックします

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

  4. ブランクアウトEメール 住所フィールド。

  5. クリック 完了するまで続行します.

    君は見るべきだ 「このルート証明書は信頼できません」. 。これは予想通りです。

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

    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にアプリをインストールします アプリシンク ソースを追加して ** http://repo.hackyouriphone.org**

  2. コード署名と権限に関する SDK 要件を削除します (私はとても気に入っています) セド!):

    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. 開ける 「プロジェクト>プロジェクト設定の編集」 (メニューより)。クリックしてください "建てる" タブ。探す 「コード署名 ID」 そしてその子 「あらゆるiPhoneOSデバイス」 リスト内で両方をエントリに設定します 「コード署名をしないでください」:

    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
    

.

.


.

.

アンインストールする

1 番目の部分については、次のとおりです。

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

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

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

以下は、ドキュメント(これはかなり良いので、読んでください):

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

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

6。アプリを実行します

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

ここに画像の説明を入力

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

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

ここに画像の説明を入力

デバイスで、設定に移動>一般>プロフィール> Apple-ID-name >信頼する Apple-ID-name >信頼。

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

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

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

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

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

証明書を見ずに(有料)本物のiPhoneにアドホック展開できることを示すものはどこにもありません。

昨夜、Apple Developerを通過していたところ、Provisioning Certificateで、「Signing Team Members」のようなものを見つけました。チームメンバーを有料プロファイルに追加する方法があると思います。 アプリID所有者(有料)に依頼して、チームメンバーとして追加するだけです。私はわかりません。まだ検索中です。

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

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

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

これがお役に立てば幸いです!

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

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

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top