##symbolicateとは MacやiOSのクラッシュログは取得した状態ではアプリ固有のシンボル名は記載されません。 そこで、クラッシュログを読みやすくするためにアプリ固有のシンボル名をクラッシュログに付加する必要があるのですが、この処理のことをsymbolicateと呼びます。 ##symbolicatecrash symbolicatecrashというXcodeに付いているスクリプト(perlで書かれています)を使ってsymbolicateすることができます。symbolicateには以下の3つのファイルが必要になります。 ・クラッシュログそのものである.crashファイル ・アプリの本体(.app) ・シンボル情報(.dSYM) symbolicatecrashスクリプトの第一引数はクラッシュログのパスです。しかし、それ以外の引数はオプションです。.appと.app.dSYMは必
はじめに 現在、XcodeのOrganizerや、Crashlyticsなどのクラッシュ検知ツールを用いることで自身のアプリのクラッシュログ(スタックトレース)を簡単に解析することが可能となっています。 ただし、生のクラッシュログはスタックトレースがアドレスで表記されているため、パッと見ただけでは全く解析ができません。(語弊があるかもですがw) アプリのdSYMファイルを用いて**シンボル化(Symbolicate)**することで、はじめてクラッシュ検知ツールで見ることができるような、解析可能なスタックトレースへと復元することができるようになります。 今回はそのような手動でSymbolicateするやり方をまとめます。 これが意外と罠にハマりやすかったので手順を追って記します。 iOSエンジニアなら知っていて損はない内容かなと思いました。 こんなシチュエーションで役に立ちます クラッシュし
Appleの審査でリジェクトされた際に、「.clash」や「.ips」といった形でクラッシュログが添付されていることがあります。 中身を確認すると以下のような内容になっていますが、このままだとコードのどの部分でクラッシュしたのかが分かりません。 〜一部抜粋〜 Thread 5 Crashed: 1 CoreFoundation 0x24936b62 0x24831000 + 135152 2 Foundation 0x255e49f5 0x25575000 + 21531 3 SampleApp 0x000341d2 0xb000 + 55521 4 libdispatch.dylib 0x32a107b6 0x32a0f000 + 1235 そこで、「symbolicatecrash」というツールを利用してログにシンボル情報を追加することで、クラッシュ箇所を特定出来るようにします。 必要
はじめに こんにちは。モバイルアプリサービス部の平屋です。 「フォトライブラリ」や「カレンダー」などのユーザーデータへアクセスする方法が、iOS 10 で変更になるようです。本記事では、対象となる操作や対応方法について説明していきます。 検証環境 Xcode Version 8.2.1 iPhone 6s, iOS 10.2.1 変更履歴 2017/2/17: 表 1 に NSRemindersUsageDescription, NSSiriUsageDescription, NSSpeechRecognitionUsageDescription を追加 対象となる操作 Apple の公式ドキュメント「Information Property List Key Reference」の「Cocoa Keys」セクションの説明によると、以下の表の中のいずれかの操作を行う場合、特定のキーと使用目
iOS、iPadOS、visionOSでカスタムのエンタープライズアプリをインストールする 所属組織で独自開発したカスタムのアプリをインストールし、信頼を確立する方法について説明します。 Apple Developer Enterprise Programを利用すれば、社内専用のアプリを開発し、社内利用を目的に配布できます。こうしたアプリは、信頼が確立されていないと開けません。 Appleでは、アプリの配布にはモバイルデバイス管理(MDM)ソリューションを利用することを推奨しています。この方法でインストールされたアプリは管理され、自動的に信頼が確立されます。ユーザが開発元を手動で信頼する必要はありません。 所属組織が運用する安全なWebサイトからアプリをインストールできるという利点もあります。アプリを手動でインストールする場合は、信頼も手動で確立する必要があります。 手動でインストールした
###前提・実現したいこと iOS用アプリの申請作業を行っています。Archiveを行うとエラーが出て前に進めないので、この問題を解決するためのヒント等がありましたら、教えてください。 ###発生している問題・エラーメッセージ このページを参考に、「Build Settings」->Code Signing のCode Signing Identity にある Release を「iOS Distribution」にセットしアーカイブを行うと、以下のエラーが出てしまいます。 ※MacOS、XCodeの再起動、クリーニング等を行っても状況は変わりません。 アプリ名 has conflicting provisioning settings. アプリ名 is automatically signed, but code signing identity iPhone Distribution:
今日は、iPhoneアプリ制作の内容のうち、ネットワーク接続中に、 現在の接続が3GなのかWifiなのか圏外なのかを判断する方法をブログに書きたいと思います。 自分のアプリ制作中に、WifiならiTunesへのリンクを有効にしたいなぁと思い、 ネットワーク状態を調べる方法を検証したので、その内容を書きたいと思います。 まずは準備から まずは、ネットワーク状態を調べる為の、Appleが作成している?クラスをインポートします。 Reachability.hとReachability.mを、以下のリンクからダウンロードできます。 Reachability @developer.apple.com また、以下のフレームワークを追加する必要があります。 私はこれを知らずに、起動時にリンクエラーとなり、何が不足しているのかかなり困りましたw。 「SystemConfiguration.framewor
UnityのiOSネイティブプラグインはObjective-Cで記述して、Objective-CからUnity(C#)側のメソッド呼び出しはUnitySendMessage関数、UnityからObjective-C側のメソッド呼び出しはextern "C"で宣言されたCインターフェイスを通しておこなうのがセオリーとなっています。 近頃Swiftネイティブの開発者も増えてきたということもあり、タイトルの通り「UnityのiOSネイティブプラグインをSwiftで書くためのネイティブプラグイン」を作ってみました。 SwiftからのUnity側のメソッドを呼び出す SwiftからCの関数やObjective-Cのクラスにアクセスするには、それらが宣言されているヘッダーファイルを、特定のヘッダーファイル(Bridging Header)でimportしておきます。 Bridging Headerは、
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>application-identifier</key> <string>FAEH9523ZZ.jp.co.hoge.tap.2014.ImageViewer</string> <key>get-task-allow</key> <false/> <key>keychain-access-groups</key> <array> <string>FAEH9523ZZ.jp.co.hoge.tap.2014.ImageViewer</string
Apple continues to put a high priority on protecting the privacy of a user so it should be no surprise that iOS 9 brings new security and privacy measures. One such measure is to prevent the abuse of canOpenURL to discover the Apps a user has installed. Querying a URL Scheme It has long been possible to open an external application using the openURL: method. Typically you first query for the URL s
iOS9 で導入される ATS (App Transport Security) の話です。 ATS は OSX, iOS アプリケーションが NSURLConnection, CFURL, NSURLSession を利用してサーバに接続する際 現時点で最善に近いセキュアな接続をデフォルトとする仕組みです。 この記事で言いたいことはだいたい 公式ドキュメント に書いてあるのですが、"よくわからんから全てにおいて ATS を無効化する" で終わらないためにどうすれば良いかについて書きます。 個人的に AWS をよく使っているので、AWS における事情なども適宜付加します。 何が変わるのか "Default Behavior" の項目に記載されていますが、 ATS が有効になっていることによって外部接続先に要求される要素は、以下のものです。 サーバは TLS 1.2 をサポートしていなければ
Splash screen image fileだけでなくUI document (storyboard/xib)を使用してautolayout-ableなUIを作成できる。ただしoutletに接続できないので dynamicなUIを作ることはできない。 Image fileのサイズは Retina HD 5.5 iPhone portrait iOS 8 - iphone 6+ : H2208 x W1242 Retina HD 4.7 iPhone portrait iOS 8 - iphone 6 : H1334 x W750 Retina HD 5.5 iPhone landscape iOS 8 - iPhone 6+ : H1242 x W2208 2x iPhone portrait iOS 7/8 - iphone 4 : H960 x W640 Retina 4 iPho
※タイトルはあまり深い意味は無い。なんとなく「第三の〜」の響きが良かったので。。 前回紹介した Keychain Services を使えば制限付きながら iOS 上の複数のアプリケーションでデータ共有ができることがわかったのでそれを解説する。 [前回] Cocoaの日々: [iOS] Keychain Services とは 仕組み Keychain Services に格納されるアイテム(パスワードなど)のアクセス制御は Keychain Access Group(グループ)を元に行われる。アイテムにはこのグループ属性があり、同じグループに所属しているアプリケーションからのみアクセスが許可される。 Keychain Services のアイテムはパスワード、秘密鍵、証明書を格納するようになっているが、CFData(NSData)型 であればパスワードである必要はない。格納したい値を C
現象 Apple 申請でネットワークエラーが起きた、という理由でリジェクトされる。 こんな感じのことを言われる: Apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required. 背景と原因 2016-06-01 から、Apple の審査では IPv6-only で接続できるかがチェックされる iOS9 では IPv6-only なネットワークでも動くようにしろ、と Apple は要求している Supporting IPv6-only Networks - News and Updates - Apple Developer 基本的に普通の通信ライブラリを使っていたら対応タスクは無いことが多いが、 例えば C
Libraries and frameworks are designated as Required by default, but you can change this designation to Optional. Required libraries must be present on the host computer for the product to load. Optional libraries do not have to be present for the product to load. A Required framework will always be loaded into memory, but an Optional framework will be loaded only if needed. The initial load of the
iOS 6.0の advertisingIdentifier と identifierForVendor にはバグがあるので注意 いささかタイミングを逃した感が強いのですが、厄介なバグにぶち当たってしまったので共有いたします。 iOS 6からUDIDに変わる識別子としてUIDeviceのidentifierForVendorとASIdentifierManagerのadvertisingIdentifierが使えるようになったのはすでにみなさんご存知かと思います。ですがどうもこやつらiOS 6.0だと正しく機能しない場合があるようなのです。 詳細は以下のとおり。 http://stackoverflow.com/questions/12605257/the-advertisingidentifier-and-identifierforvendor-return-00000000-0000-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く