#author("2018-10-09T16:25:26+09:00","default:wikiwriter","wikiwriter")
#author("2018-10-10T14:00:57+09:00","default:wikiwriter","wikiwriter")
&tag(Xcode/Tips);
*目次 [#p46f90b2]
#contents
*関連ページ [#c3d78b95]
*参考情報 [#r4fe95ae]

*複数バージョンを同時に使用する [#j719c357]
**参考情報 [#i3ed4da9]
-古い情報が錯綜しているのでできるだけ最新情報を参照する。
-[[Working with Multiple Versions of Xcode – Geoff Hackworth – Medium:https://medium.com/@hacknicity/working-with-multiple-versions-of-xcode-e331c01aa6bc]]
-[[環境変数を使用して Xcode のバージョンを切り替える - Qiita:http://qiita.com/watson1978/items/14291efc27adbea19e06]]

**基本 [#l93c0a23]
-古いバージョンのXcodeをAppleの開発者サイトからダウンロードし、Applicationフォルダに"Xcode8.3.2.app"のような名前でコピーする。
-普通に使用する場合これだけでOK?
-コマンドラインツールを使用する場合、「xcode-select -s パス」を実行しないといけない。DEVELOPER_DIRも使えるらしい?

*操作 [#jc005670]
**ファイルの追加 [#kcceaea5]

***UIViewControllerの追加方法 [#cfd1fd8b]
-「File > New > File」でCocoa Touch Classを選択。
-「Subclass of:」でUIViewControllerを選択。


*ビルド [#t0346cf0]
**アプリをビルドしたXcodeのバージョンを知りたい [#m2dfe14e]
-Macアプリの場合.appの中にあるInfo.plistを開く。
-DTXcodeはXcodeのバージョン、DTXcodeBuildがビルド番号となっている。
-例えばDTXcodeが0721の場合、Xcode v7.2.1ということになる。

**Mac用バイナリの出力場所 [#u427ee01]
-[[日々雑感、覚書: Mac OSX Xcodeの実行形式保存場所について:http://etc2day-linux.blogspot.jp/2014/02/mac-osx-xcode.html]]によると、
 ~/Library/Developer/Xcode/DerivedData/プロジェクト名以下に出力される。
-出力パスを変更することも出来る。[[Xcode 4.2のビルドパスを変更(周回遅れ) | MacFeeling Blog:http://blog.macfeeling.com/archives/11811]]
-コマンドラインアプリでリリースビルドを作成したい場合Profileを選べばいいらしい。

**配布用バイナリの作成方法 [#k1a12d30]
-Archiveを使う。[[objective c - Compile application from Xcode for deployment - Stack Overflow:http://stackoverflow.com/questions/5708255/compile-application-from-xcode-for-deployment]]
-Copy asで署名なしで.appをエクスポートすることができる。

**配布用dmgファイルの作成方法 [#t63e9f1c]
-[[Distributing Your Application:https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/distributing/distibuting.html]]…公式ドキュメント
-crete-dmgというツールが存在する。
--[[andreyvit/create-dmg: A shell script to build fancy DMGs:https://github.com/andreyvit/create-dmg]]
--[[sindresorhus/create-dmg: Create a good-looking DMG for your macOS app in seconds:https://github.com/sindresorhus/create-dmg]]


***create-dmg [#v1d13ce4]
-npm install create-dmgで以下のエラーが発生。
#pre{{
gyp ERR! configure error
gyp ERR! stack Error: Command failed: /Users/sora/.anyenv/envs/pyenv/shims/python2 -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack pyenv: python2: command not found


}}
-[[pyenv利用環境でのnpm installでpython2周りのエラーが出た時 - 人生シーケンスブレイク:https://shinespark.hatenablog.com/entry/2015/10/29/012921]]によると、pyenvでglobalを二つ指定すればいいらしい。
 pyenv global 2.7.15 3.7.0

***古い情報 [#ff8e3133]
-[[Xcodeでリリースビルド時に.dmgを自動生成する « LANCARD.LAB|ランカードコムのスタッフブログ:https://www.lancard.com/blog/2011/02/01/create-dmg-image-after-built-on-xcode/]]
#pre{{
set -ex

[ "$ACTION" = build ] || exit 0
[ "$BUILD_VARIANTS" = "normal" ] || exit 0
[ "$CONFIGURATION" = "Release" ] || exit 0

dir="$TEMP_FILES_DIR/disk"
dmg="$HOME/Desktop/$PROJECT_NAME.dmg"

rm -rf "$dir"
mkdir "$dir"
cp -R "$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app" "$dir"
cp -R "$PROJECT_DIR/README.txt" "$dir"
cp -R "$PROJECT_DIR/LICENSE.txt" "$dir"
ln -s "/Applications" "$dir/Applications"
rm -f "$dmg"
hdiutil create -srcfolder "$dir" -volname "$PROJECT_NAME" "$dmg"
rm -rf "$dir"
}}



*その他 [#ib132297]
**プロトコルの実装方法 [#p7a9f247]
-例えばUITableViewDataSourceを実装して、Option+クリックする。
-定義が開くのでoptionalじゃないメソッドをコピーする。

**テストプロジェクトを後から追加する [#v99d32f0]
-[[iphone - Adding Unit Tests to an already existing project? - Stack Overflow:http://stackoverflow.com/questions/6865735/adding-unit-tests-to-an-already-existing-project]]


**バンドルから特定のファイルを除外する [#d7b1bdda]
-[[ios - How to exclude image files in Xcode project bundle, conditionally for Release version? - Stack Overflow:http://stackoverflow.com/questions/5214698/how-to-exclude-image-files-in-xcode-project-bundle-conditionally-for-release-ve]]にあるように、Identify Inspectorでターゲットのチェックを外す。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS