#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でターゲットのチェックを外す。