Carthage と Bitcode 対応についてのまとめ

iOS 9 や watchOS 2 から新しく Bitcode が導入されました. パッケージ管理ツールの Carthage でも Bitcode を含んだ Framework を適切に出力する仕組みの導入が進んでおり, この対応状況を見ながら Bitcode 対応について考えます.
“Carthage と Bitcode 対応についてのまとめ” の続きを読む

ERROR ITMS-90542: Invalid CFBundleSupportedPlatforms value の対処

Xcode の Organizer で Upload to App Store… をクリックした際に “ERROR ITMS-90542: Invalid CFBundleSupportedPlatforms value.” というエラーが表示された時の対処方法です.

“ERROR ITMS-90542: Invalid CFBundleSupportedPlatforms value の対処” の続きを読む

Xcode Server の Bots で Carthage が Code Sign に失敗する時の対応

Carthage を使ってライブラリ管理をしているプロジェクトで Xcode Server の Bots 機能を使って CI を回す場合, テスト実行前に carthage bootstrap などを実行して, ライブラリをコンパイルすることになると思います. しかしデフォルトの設定では Carthage がライブラリをビルドする際に Code Sign error: となってしまいます.

“Xcode Server の Bots で Carthage が Code Sign に失敗する時の対応” の続きを読む

GCD のディスパッチセマフォを活用する (Objective-C〜Swift 3 対応)

Grand Central Dispatch (GCD) は Mac OS X 10.6+ や iOS 4+ で利用出来る技術で, タスクを簡単に非同期で実行させることが出来る技術の一つです.

この記事では GCD の機能の一つであるディスパッチセマフォを活用する方法を紹介します. 例として有限リソースへのアクセス制限と, タスクの実行待ちを取り上げます.

この説明では Swift 3 を利用しています. Swift 3 から API の命名規則が大きく変わっていますが, 同じ機能は Swift 3 未満や Objective-C でも利用できます. Objective-C や Swift 1/2 での記法はこの記事の末尾を参照してください.
“GCD のディスパッチセマフォを活用する (Objective-C〜Swift 3 対応)” の続きを読む

Swift でジェネレータを作ったり、遅延評価してみる

Swift 1.2 を使ってジェネレータを作成したり, ジェネレータを使って遅延評価をしてみます. 同様のことをこれまでいくつかの言語で行っていますが, それについては以下を参照してください.

“Swift でジェネレータを作ったり、遅延評価してみる” の続きを読む