XCode7のアプリをiOS7シミュレータで実行(デバッグ不可)
XCode7からiOS7シミュレータが無くなってしまったので、XCode7でビルドしたアプリをXCode6のiOS7シミュレータで実行してみました。動かすだけで、デバッグはできないです。
参考:
Xcode 7 付属のシミュレータに iOS 7.1 シミュレータを登録する
How can I run the iOS 7.1 Simulator in Xcode 7.0 beta 2?
XCode7ビルドのアプリをiOS7シミュレータにインストールする手順(手動)
①XCode7でビルド
②ビルド先出力先からファイルを探す
~/Library/Developer/Xcode/DerivedData/
~/Library/Developer/Xcode/DerivedData/sampleApp-aoojucyaxnqzykfazgwztxxebsfq/Build/Products/Debug-iphonesimulator/sampleApp.app
もしくはデバッグ中にアプリを検索
ps aux | grep 'CoreSimulator/Devices' | grep '.app'
apo 1823 0.0 0.9 2748692 37004 ?? SXs 12:48PM 0:00.30 ~/Library/Developer/CoreSimulator/Devices/BFEDD1F1-E633-4094-ADD0-181C5071366A/data/Containers/Bundle/Application/6CB2178C-CB30-40EE-A853-EEBE4E5FC3CF/sampleApp.app/sampleApp
③XCode6シミュレータ起動
open -a "iOS Simulator"
④メニューのデバイス選択(Hardware→Device)からiOS7シミュレータを選択
32/64bit機種同士なら、機種は違っても問題無い。
⑤XCode6シミュレータのデバイスidを調べる
xcrun /Applications/Xcode6.app/Contents/Developer/usr/bin/simctl list
※/Applications/Xcode6.appは適宜変更
-- iOS 7.1 --
iPhone 4s (68EE77B6-CAE3-4E22-9AEC-E1B4989FC67C) (Shutdown)
iPhone 5 (E1401CC0-EADC-470C-9DCF-EF8047021170) (Shutdown)
iPhone 5s (4A99BE13-D8BA-4F2C-8A56-B5B6D95A54FB) (Booted)
⑥XCode6シミュレータにインストール
xcrun /Applications/Xcode6.app/Contents/Developer/usr/bin/simctl install "4A99BE13-D8BA-4F2C-8A56-B5B6D95A54FB" "~/Library/Developer/Xcode/DerivedData/sampleApp-aoojucyaxnqzykfazgwztxxebsfq/Build/Products/Debug-iphonesimulator/sampleApp.app"
⑦シミュレータにアプリがインストールされてるので実行
シェルスクリプト
手順が面倒なのでシェルスクリプトを書いてみました。
#!/bin/bash
# アプリ名とXCodeのPath。適宜変更してください
XCodeAppName='sampleApp'
XCode7Path='/Applications/Xcode.app'
XCode6Path='/Applications/Xcode6.app'
#毎回アプリ名を入れる場合はコメントを外す
#echo "アプリ名を入力してください"
#read XCodeAppName
# XCode7シミュレータ起動中デバイスID取得
XCode7BootDeviceid=$(xcrun $XCode7Path"/Contents/Developer/usr/bin/simctl" list | grep -E 'Booted\)$' | awk -F'(' '{print $2}' | awk -F')' '{print $1}')
XCode7BootDeviceid=$(echo $XCode7BootDeviceid | awk -F' ' '{print $1}')
echo "XCode7 Deviceid:"$XCode7BootDeviceid
# XCode7アプリPath取得
XCode7appFilename=$(ps aux | grep 'CoreSimulator/Devices' | grep '.app' | grep $XCode7BootDeviceid | grep $XCodeAppName | awk -F'/Users' '{print "/Users" $2}' | awk -F'.app/' '{print $1 ".app"}')
echo "AppPath:"$XCode7appFilename
# XCode6シミュレータ起動
open -a "iOS Simulator"
echo "XCode6シミュレータのデバイスを変更して、完了したらエンターキーを押して下さい"
read
# deviceIdを指定してシミュレータ起動も可能
#open -a "iOS Simulator" --args -CurrentDeviceUDID 4A99BE13-D8BA-4F2C-8A56-B5B6D95A54FB
# XCode6シミュレータ起動中デバイスID取得
for i in `seq 5`
do
XCode6BootDeviceid=$(xcrun $XCode6Path"/Contents/Developer/usr/bin/simctl" list | grep -E 'Booted\)$' | awk -F'(' '{print $2}' | awk -F')' '{print $1}')
if [ -n "$XCode6BootDeviceid" ]; then break; fi
sleep 1s
done
echo "XCode6 Deviceid:"$XCode6BootDeviceid
# XCode6シミュレータにインストール
xcrun $XCode6Path"/Contents/Developer/usr/bin/simctl" install $XCode6BootDeviceid $XCode7appFilename
①テキストエディタで上記スクリプトを作成して適当な場所に保存
4~6行目のアプリ名とXCodeのPathを適宜変更してください。
②実行権限を変更
chmod u+x XCode6Run.sh
③ターミナルで実行(ファイルを保存した階層で)
./XCode6Run.sh
Author And Source
この問題について(XCode7のアプリをiOS7シミュレータで実行(デバッグ不可)), 我々は、より多くの情報をここで見つけました https://qiita.com/APO/items/6e7df06a45a6df941bb6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .