環境構築


OSX

XCode

  • OSX10.5.3以上必須。

XCode3.1+SDK2.1でコンパイルする方法

  1. iPhone SDK2.1をインストール
  2. 証明書を作成
    ここを参考にしながら"iPhone Developer"という名前で証明書を作成
    ttp://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html
    
  3. 証明書をTrustにする
    作成した証明書をAlways Trustに変更
    
  4. Info.plistを修正
    以下のInfo.plistを2カ所修正
    /Developer/Platforms/iPhoneOS.platform/Info.plist
    
    1)PROVISIONING_PROFILE_ALLOWEDをNOに変更
      <key>PROVISIONING_PROFILE_ALLOWED</key>
      <string>YES</string>
      ↓
      <key>PROVISIONING_PROFILE_ALLOWED</key>
      <string>NO</string>
    2)PROVISIONING_PROFILE_REQUIREDをNOに変更
      <key>PROVISIONING_PROFILE_REQUIRED</key>
      <string>YES</string>
      ↓
      <key>PROVISIONING_PROFILE_REQUIRED</key>
      <string>NO</string>
    

XCode3.1+SDK2.2でコンパイルする方法

  1. iPhone SDK2.2をインストール
  2. 証明書を作成
    ここを参考にしながら"iPhone Developer"という名前で証明書を作成
    ttp://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html
    
  3. 証明書をTrustにする
    作成した証明書をAlways Trustに変更
    
  4. Info.plistを修正
    1. 以下のInfo.plistにキーを追記
      /Developer/Platforms/iPhoneOS.platform/Info.plist
      
    2. 追記するキー
      <key>PROVISIONING_PROFILE_ALLOWED</key> 
      <string>NO</string> 
      <key>PROVISIONING_PROFILE_REQUIRED</key> 
      <string>NO</string>
      
    3. 追加する箇所
      <key>PLIST_FILE_OUTPUT_FORMAT</key>
      <string>binary</string>
      →ここにキーを追記
      <key>SDKROOT</key>
      <string>iphoneos2.2</string>
      
    4. 最終的な内容は以下
      <key>PLIST_FILE_OUTPUT_FORMAT</key>
      <string>binary</string>
      <key>PROVISIONING_PROFILE_ALLOWED</key> 
      <string>NO</string> 
      <key>PROVISIONING_PROFILE_REQUIRED</key> 
      <string>NO</string>
      <key>SDKROOT</key>
      <string>iphoneos2.2</string>
      

XCode3.1+SDK2.2.1でコンパイルする方法

  1. 以下のInfo.plistにキーを追記
    /Developer/Platforms/iPhoneOS.platform/Info.plist
    
  2. 内容は以下
    <key>CODE_SIGN_CONTEXT_CLASS</key>
    <string>XCiPhoneOSCodeSignContext</string>
    ...
    <key>SDKROOT</key>
    <string>iphoneos2.2.1</string>
    <key>PROVISIONING_PROFILE_ALLOWED</key>
    <string>NO</string>
    <key>PROVISIONING_PROFILE_REQUIRED</key>
    <string>NO</string>
    

XCode3.1+SDK2.2.1でコンパイルする方法2

正規の開発環境と同等の環境構築 元ネタはこちら

  1. Cydiaから"Mobile Installation Patch"をインストール
    Cydiaのリポジトリに以下のURLを追加
    http://www.iphone.org.hk/apt/
    Tweaksセクションから"Mobile Installation Patch"2.2.1用をインストール
    iPhoneを再起動
    
  2. 証明書を作成
    1.Macのキーチェーンアクセスを起動
    2.メニューの[キーチェーンアクセス]→[証明書アシスタント]→[証明書を作成]
    3.名前:"iPhone Pwned Developer"、タイプ:自己署名ルート、デフォルトを無効化にチェック
    4.シリアル番号:使われていない数字なら何でもいい、有効期間:適当に設定、証明書のタイプ:コード署名
    5.証明書情報:適当に入力(不要かも)
    6.後は最後まで[続ける]ボタンを押す
    7.できあがった証明書を"常に信頼する"に変更
    
  3. プロジェクトフォルダの"Info.plist"に以下を追加
    <key>SignerIdentity</key>
    <string>Apple iPhone OS Application Signing</string>
    
  4. プロジェクトを開き[プロジェクト]→[プロジェクト設定を編集]
  5. ビルドタブを開き以下のユーザ定義の設定を追加する
    PROVISIONING_PROFILE_ALLOWED NO
    PROVISIONING_PROFILE_REQUIRED NO
    
  6. コード署名IDの値を以下に変更
    iPhone Pwned Developer
    
  7. iPhoneを接続しオーガナイザに登録
  8. Deviceを選択してビルド

Xcode 3.1.3+SDK3.0でコンパイルする方法

  1. SDK3.0をインストール、SDK2.2.1を/Developer/221にインストール
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk \
/Developer/221/Platforms/iPhoneOS.platform/Developer/SDKs

sudo ln -s "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0 (7A341)" \
/Developer/221/Platforms/iPhoneOS.platform/DeviceSupport

sudo mv /Developer/221/Platforms/iPhoneOS.platform/Developer/usr \
/Developer/221/Platforms/iPhoneOS.platform/Developer/_usr

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr \
/Developer/221/Platforms/iPhoneOS.platform/Developer

  1. /Developer/221/Platforms/iPhoneOS.platform/Info.plist、プロジェクトのInfo.plistを以前のように編集。
  1. iPhone Pwned Developerの証明書を作成。
  2. プロジェクトのコード署名IDをiPhone Pwned Developerに設定。
  3. ユーザ定義の設定にPROVISIONING NOを追加。
  1. CydiaからInstalld Patch for OS 3.0をインストール。http://iphone.org.hk/apt/
  2. iPhoneを再起動。
  3. オーガナイザに登録し直し。
  1. シミュレータはXcode3.1.3でテスト。
  2. 実機はXcode3.1.2でテスト。

いざやってみると Code Sign error: a valid provisioning profile matching the application's Identifier(r ってなったけど

http://www.iphonedevsdk.com/forum/iphone-sdk-tools-utilities/20983-sdk-3-0-xcode-3-1-3-build-go-jailbroken-device-2.html#post98724

これしたら動いた

iPhone OS 3.0.1

OS3.0の方法に加えて、

ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0\ \(7A341\) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1

詳しくは http://adcdownload.apple.com/iphone/iphone_sdk_3.0__final/iphone_os_3.0.1_advisory.pdf

Xcode 3.2+SDK3.0でコンパイルする方法

#!/bin/bash
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=1 count=300752
printf "\xc8\x2f\x00\x00" >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=300756 seek=300756
/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

http://www.alexwhittemore.com/?p=270&cpage=4#comment-601

  • @MBP Snow Leopard, XCode 3.2, SDK 3.0
    • XCode は前バージョンのコピーとか、消すとかいろいろする必要は無い
    • 要は上のパッチと、AppSync
    • AppSync は効力が消える場合があったが、再インストールでOk

Xcode 3.2.1+SDK3.1.2でコンパイルする方法

http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

Xcode 3.2.2+SDK3.2でコンパイルする方法

http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

  • I want to compile. 全部
  • I want to install and debug too. は面倒なので 4. までやって
  • こことかから appsync をデバイス側でcydiaインストール
  • iPad は armv7 だから ldid をアップデートする

Xcode 3.2.5+SDK4.2でコンパイルする方法

http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

  • I want to compile. 全部
    • s/XCiPhoneOSCodeSignContext/XCCodeSignContext/ が一箇所増えてるがそれもやっておいた
  • I want to install and debug too. 4. まで
  • appsync 4.0+ をデバイス側でcydiaインストール

Xcode 4.4+SDK5.1でコンパイルする方法

http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

  • I want to compile. 全部
    • フォルダが変わった /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
    • s/XCiPhoneOSCodeSignContext/XCCodeSignContext/ とりあえず全部
  • I want to install and debug too. 4. まで
    • フォルダが変わった /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/Resources/iPhoneCodeSign.xcspec
  • appsync 5.x+ をデバイス側でcydiaインストール



w/o appsync

MacPorts

  • 未記載


Windows

Cygwin+Toolchain+iPhoneSDK

  • おおよその手順としては以下
  1. Cygwinのインストール。
  2. winChainのpreBuiltToolchainを解凍してcygwinディレクトリにコピー。
  3. iPhoneSDKからヘッダとライブラリを抽出。
  4. コピーしたpreBuiltToolchainディレクトリにヘッダとライブラリをコピー。

留意点

  • iPhoneSDK
    • AppleサイトからダウンロードするiPhoneSDKは.dmg形式なのでHFSExplorerを使って開く。
    • 開いた後にまた手順がある。とりあえずここ参照。
  • winChain
    • インストーラはまともに動かないので無視。
    • コンパイラなどが若干古い。気になる人はiPhone-devからソース取ってきてビルド。


Linux/Unix


iPhone

iPhoneにGCC4iPhoneとToolchain入れて、iPhoneSDKのヘッダとライブラリをコピーしてネイティブビルド

留意点

  • iPhoneでやる場合にiPhoneSDKのライブラリをiPhone元々のライブラリに上書きするとiPhoneが起動しなくなった。つまり、/libや/usr/libを上書きするなってこと。
  • 3.0はlibgccの問題でgccが入りません。saurik先生がlibgccをどうにかしてくれるのをまちましょう。
  • 3.1.2でも、どこかから取ってきたlibgcc_4.2-20080410-1-6_iphoneos-arm.deb、fake-libgcc_1.0_iphoneos-arm.deb 辺りを入れたら、cydiaからgccがインストールできた。
  • 標準?で入っているlibstdc++.dylibには、basic_string<wchar_t>が入っていない。wstringを使うとリンクでエラー。
  • stat.h、dirent.hの変更内容を誰か教えて。toolchain2.0がinode番号を32bitで定義しているのが悪いのだけど、正しい構造体の定義がわかりません。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年09月16日 05:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。