Lightning->HDMI変換を用いて外部スクリーンに別画面を出す際のメモ。
・lightning-digital-avアダプタはレビューにもある通りアップスキャンコンバータが内蔵されており、1080pのディスプレイとして認識しない。
http://store.apple.com/jp/product/MD826ZM/A/lightning-digital-avアダプタ
・1980x1080ディスプレイに接続し、UIScreenのboundsを調べると1600x900という値を返す。他、availableModesで調べるとVGA他、いくつかでるが最大は1600x900。
・「写真」でムービーを出す際には1080pで出る。MPEGエンコーダを通せばいけるという事??
・Apple Forumも含め調べた限りではUIScreenからの制御ではどうやら1080pでは出せないらしい。。。景品表示法違反じゃないのこれ?
参考:
http://cpplover.blogspot.jp/2013/03/lightning-digital-avarm-soc.html
https://developer.apple.com/jp/devcenter/ios/library/documentation/WindowAndScreenGuide.pdf
Notes about Assembler, C/C++/Objective-C/C#, Java, Python, PHP, Perl, Javascript, ActionScript, LINGO etc.
And developed application will be also announced.
2014年8月15日金曜日
iOS静的ライブラリ内でカテゴリを指定してもunrecognized selectorが出る問題
環境:
iOS SDK 7.1
問題:
iOSで静的ライブラリを作成した際に、ライブラリ内にカテゴリを含む場合、ライブラリ使用時にカテゴリで作成されたメソッドを呼び出すとunrecognized selector sent to classが出る。
原因:
UNIX static librariesとObjective-Cの動的ふるまいの相性の悪さにより、カテゴリが機能しないため(下部Appleドキュメント参照)。
解決:
静的ライブラリを使用するアプリのビルド設定で、
Linking -> Other Linker Flags に以下を追加。
$(OTHER_LDFLAGS)
-ObjC
-all_load
以上で再度ビルドする。上述でビルドする場合は、プロジェクト内にある使用していないクラスやファイルも全てリンクされるため、エラーを含むコードなどは排除しておく必要あり。
参考:
Technical Q&A QA1490 Building Objective-C static libraries with categories
http://i.devris.info/unrecognized-selector-error-with-static-library-and-category
iOS SDK 7.1
問題:
iOSで静的ライブラリを作成した際に、ライブラリ内にカテゴリを含む場合、ライブラリ使用時にカテゴリで作成されたメソッドを呼び出すとunrecognized selector sent to classが出る。
原因:
UNIX static librariesとObjective-Cの動的ふるまいの相性の悪さにより、カテゴリが機能しないため(下部Appleドキュメント参照)。
解決:
静的ライブラリを使用するアプリのビルド設定で、
Linking -> Other Linker Flags に以下を追加。
$(OTHER_LDFLAGS)
-ObjC
-all_load
以上で再度ビルドする。上述でビルドする場合は、プロジェクト内にある使用していないクラスやファイルも全てリンクされるため、エラーを含むコードなどは排除しておく必要あり。
参考:
Technical Q&A QA1490 Building Objective-C static libraries with categories
http://i.devris.info/unrecognized-selector-error-with-static-library-and-category
2014年3月27日木曜日
iBeacon, Bluetooth/位置情報がONでもError 16が呼ばれる問題
環境:
iPhone5s, iOS7.1
問題:
iBeacon検出のためにCLLocationManagerのstartRangingBeaconsInRegionを呼び出した後、Bluetoothがオン、位置情報も有効にも関わらずデリゲートメソッド
- (void)locationManager:(CLLocationManager *)manager rangingBeaconsDidFailForRegion:(CLBeaconRegion *)region withError:(NSError *)error
が呼び出されて、Error 16が送出される。
原因:
今のところ不明
解決:
iPhoneを再起動する
参考:
http://stackoverflow.com/questions/20164952/cllocationmanager-kclerrordomain-codes
iPhone5s, iOS7.1
問題:
iBeacon検出のためにCLLocationManagerのstartRangingBeaconsInRegionを呼び出した後、Bluetoothがオン、位置情報も有効にも関わらずデリゲートメソッド
- (void)locationManager:(CLLocationManager *)manager rangingBeaconsDidFailForRegion:(CLBeaconRegion *)region withError:(NSError *)error
が呼び出されて、Error 16が送出される。
原因:
今のところ不明
解決:
iPhoneを再起動する
参考:
http://stackoverflow.com/questions/20164952/cllocationmanager-kclerrordomain-codes
2014年2月14日金曜日
Application Loaderでアップロード時のエラー対処法
AIR for iOSで作成したアプリをApplication Loaderでアップロードするトラブルシューティング。
環境: OS10.7.5, FlashCS6, AIR4.0.0.1619, Application Loaderでアップロード
<問題1>
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
原因:
AIR for iOSの未対応によるエラー。
解決:
以下から対応済みのAIRパッケージ(4.0.0.1619以降)をダウンロード・インストールし、パブリッシュし直す。
http://labsdownload.adobe.com/pub/labs/flashruntimes/air/air4-0_sdk_mac.tbz2
参考:http://stackoverflow.com/questions/20756582/is-adobe-air-getting-restricted-by-xcode-5
<問題2>
ERROR ITMS-9000: "This bundle is invalid. The file is not a valid application bundle." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
原因:
バンドルが必須となった
スプラッシュ画像とアイコン画像が含まれていないことによるエラー。
スプラッシュ画像:
Default-568h@2x.png,
Default@2x.png,
Default.png
アイコン画像:
Icon-70@2x.png
Icon-70.png
Icon-60@2x.png
解決:
以下の手順で修正を行う
1.iOS7必須画像を用意
Default.png
Default@2x.png
Default-568h@2x.pngIcon-60@2x.png
Icon-76.png
Icon-76@2x.png
2.ipaファイルの拡張子をzipに変更し、解凍
(Payload/アプリ名.appファイルができる)
3.ターミナルでPayloadフォルダのあるフォルダへ移動
4.以下のコマンドで現在のentitlementを取得
codesign -d --entitlements - PayLoad/アプリ名.app
5.上記の結果のうち、から
までをコピーしてテキスト書類へペースト、entitlements.plistというファイル名で保存する
6.以下のコマンドで「アプリ名.app」コンテンツ内の証明書を削除
rm -r "Payload/アプリ名.app/_CodeSignature" "アプリ名.app/CodeResources" 2> /dev/null | true
7.iOS7必須画像を「アプリ名.app」コンテンツ内直下へコピー
8.「アプリ名.app」コンテンツ内のinfo.plistを開き、
iconsに、iOS7必須画像の項目を追加し保存、閉じる
9.以下のコマンドで、codesign_allocateコマンドのパスを通す
(XCodeのインストール先が違う場合は必要に応じて変更)
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
10.以下のコマンドで再署名
codesign -f -v -s "iPhone Distribution: *XXXXXXXX (*NNNNNNNN)" --resource-rules Payload/アプリ名.app/ResourceRules.plist --entitlements entitlements.plist Payload/アプリ名.app
*XXXXXXXXはプロビジョニングファイルを作成した際の認証名
*NNNNNNNNはプロビジョニングファイルを作成した際の認証番号
11.Payloadフォルダを再度zip圧縮後、拡張子をipaに変更
12.iTunes StoreへApplication Loaderを使ってアップロード
参考:https://discussionsjapan.apple.com/message/100814182
環境: OS10.7.5, FlashCS6, AIR4.0.0.1619, Application Loaderでアップロード
<問題1>
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
原因:
AIR for iOSの未対応によるエラー。
解決:
以下から対応済みのAIRパッケージ(4.0.0.1619以降)をダウンロード・インストールし、パブリッシュし直す。
http://labsdownload.adobe.com/pub/labs/flashruntimes/air/air4-0_sdk_mac.tbz2
参考:http://stackoverflow.com/questions/20756582/is-adobe-air-getting-restricted-by-xcode-5
<問題2>
ERROR ITMS-9000: "This bundle is invalid. The file is not a valid application bundle." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
原因:
バンドルが必須となった
スプラッシュ画像とアイコン画像が含まれていないことによるエラー。
スプラッシュ画像:
Default-568h@2x.png,
Default@2x.png,
Default.png
アイコン画像:
Icon-70@2x.png
Icon-70.png
Icon-60@2x.png
解決:
以下の手順で修正を行う
1.iOS7必須画像を用意
Default.png
Default@2x.png
Default-568h@2x.pngIcon-60@2x.png
Icon-76.png
Icon-76@2x.png
2.ipaファイルの拡張子をzipに変更し、解凍
(Payload/アプリ名.appファイルができる)
3.ターミナルでPayloadフォルダのあるフォルダへ移動
4.以下のコマンドで現在のentitlementを取得
codesign -d --entitlements - PayLoad/アプリ名.app
5.上記の結果のうち、から
までをコピーしてテキスト書類へペースト、entitlements.plistというファイル名で保存する
6.以下のコマンドで「アプリ名.app」コンテンツ内の証明書を削除
rm -r "Payload/アプリ名.app/_CodeSignature" "アプリ名.app/CodeResources" 2> /dev/null | true
7.iOS7必須画像を「アプリ名.app」コンテンツ内直下へコピー
8.「アプリ名.app」コンテンツ内のinfo.plistを開き、
iconsに、iOS7必須画像の項目を追加し保存、閉じる
9.以下のコマンドで、codesign_allocateコマンドのパスを通す
(XCodeのインストール先が違う場合は必要に応じて変更)
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
10.以下のコマンドで再署名
codesign -f -v -s "iPhone Distribution: *XXXXXXXX (*NNNNNNNN)" --resource-rules Payload/アプリ名.app/ResourceRules.plist --entitlements entitlements.plist Payload/アプリ名.app
*XXXXXXXXはプロビジョニングファイルを作成した際の認証名
*NNNNNNNNはプロビジョニングファイルを作成した際の認証番号
11.Payloadフォルダを再度zip圧縮後、拡張子をipaに変更
12.iTunes StoreへApplication Loaderを使ってアップロード
参考:https://discussionsjapan.apple.com/message/100814182
2013年11月2日土曜日
iOS7 メニューバー非表示
プロジェクト > TARGTE > Custom iOS Target Propertiesの
View controller-based status bar appearance を NO に設定
http://stackoverflow.com/questions/18303746/setstatusbarhidden-not-working
View controller-based status bar appearance を NO に設定
http://stackoverflow.com/questions/18303746/setstatusbarhidden-not-working
2013年10月15日火曜日
CALayerへのカスタムフィルタ作成時の注意
CALayerへカスタムフィルタを適用する場合、暗黙的アニメーション(Implied Animation)が働き、フィルタのパラメータを強制的に変化させようとする。
この際にCALayerはCIFilterのinputKeysメソッドから、フィルタのパラメータをチェックして遷移させようとする。このためカスタムフィルタでは、追加したパラメータをinputKeysで返すようにしておかないと、パラメータが反映されない。
When we apply a custom filter to CALayer, the layer will execute Implied Animation and force to change the filter parameters.
CALayer will ask the names of the parameters via inputKeys method of CIFilter to change the values. Because of the reason, we have to override the method to reflect to the filter appropriately.
この際にCALayerはCIFilterのinputKeysメソッドから、フィルタのパラメータをチェックして遷移させようとする。このためカスタムフィルタでは、追加したパラメータをinputKeysで返すようにしておかないと、パラメータが反映されない。
When we apply a custom filter to CALayer, the layer will execute Implied Animation and force to change the filter parameters.
CALayer will ask the names of the parameters via inputKeys method of CIFilter to change the values. Because of the reason, we have to override the method to reflect to the filter appropriately.
2011年7月6日水曜日
iPhone/iPad AdHocビルドからipaファイル作成まで
MacOS10.6.8, XCode4
AdHocビルドの手順
1.ADCでDistribution用プロビジョニングファイルを作成しダウンロード
2.オーガナイザからプロビジョニングファイルを登録
3.Project Navigator > Configurations でAdHocコンフィギュレーションを作成
4.TARGET > Build Setting > Code Signing > AdHoc > Any iOS SDK のプロファイルをDistributionにする
5.Edi Scheme > Archive > Build Configuration をAdHocを選択
6.メニューバー > Archive でアーカイブ作成。作成後自動的にオーガナイザが開く
7.Archiveで作成されたファイルを選択し、shareボタンを押す
8.Distributionのプロファイルを選択しNextボタン
9.ipaファイル名をつけて作成 ※
10.プロビジョニングファイルをiTunesのライブラリにドラッグ後、ipaファイルをドラッグ
11.iTunes同期でインストール完了
※プロジェクトでフォルダ参照を利用している場合、参照先がOSのあるハードディスク以外だと"The operation couldn’t be completed. No such file or directory"と出てipaファイル作成に失敗する。参照先がOS(XCodeのインストールディスク?)のディスク上にあれば問題ない。バグ?
参考:
http://iphone-dev.g.hatena.ne.jp/tokorom/20110424/1303664226
http://diaryofacodemonkey.ruprect.com/2011/03/18/ad-hoc-app-distribution-with-xcode-4/
http://stackoverflow.com/questions/5838409/xcode-4-archive-ipa-error-the-operation-couldnt-be-completed-no-such-file-or/6593084#6593084
AdHocビルドの手順
1.ADCでDistribution用プロビジョニングファイルを作成しダウンロード
2.オーガナイザからプロビジョニングファイルを登録
3.Project Navigator > Configurations でAdHocコンフィギュレーションを作成
4.TARGET > Build Setting > Code Signing > AdHoc > Any iOS SDK のプロファイルをDistributionにする
5.Edi Scheme > Archive > Build Configuration をAdHocを選択
6.メニューバー > Archive でアーカイブ作成。作成後自動的にオーガナイザが開く
7.Archiveで作成されたファイルを選択し、shareボタンを押す
8.Distributionのプロファイルを選択しNextボタン
9.ipaファイル名をつけて作成 ※
10.プロビジョニングファイルをiTunesのライブラリにドラッグ後、ipaファイルをドラッグ
11.iTunes同期でインストール完了
※プロジェクトでフォルダ参照を利用している場合、参照先がOSのあるハードディスク以外だと"The operation couldn’t be completed. No such file or directory"と出てipaファイル作成に失敗する。参照先がOS(XCodeのインストールディスク?)のディスク上にあれば問題ない。バグ?
参考:
http://iphone-dev.g.hatena.ne.jp/tokorom/20110424/1303664226
http://diaryofacodemonkey.ruprect.com/2011/03/18/ad-hoc-app-distribution-with-xcode-4/
http://stackoverflow.com/questions/5838409/xcode-4-archive-ipa-error-the-operation-couldnt-be-completed-no-such-file-or/6593084#6593084
2011年1月6日木曜日
iOS Static Libraryの作成
iOS Static Library作成メモ
(XCode3.2.5, iOS4.2)
Static Libraryは.aファイルとヘッダファイルが必要。
.aファイルの出力先にincludeディレクトリを作成し.hファイルが書き出される設定
ライブラリ作成
1.新規 > iOS > Library > Cocoa Touch Static Library から作成。
2.各種プログラムを記述
3.ターゲット > ターゲットファイル内で
追加 > 新規ビルドフェーズ > 新規コピーファイル を選択
4.一般 > デスティネーション > プロダクトディレクトリ
5.パス欄に include と記述
6.includeされるべき.hファイルを追加
ビルド後.aファイルの場所にincludeディレクトリが作成され.hファイルがコピーされる。
http://cocoadays.blogspot.com/search/label/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E9%96%8B%E7%99%BA?updated-max=2010-11-18T00%3A00%3A00%2B09%3A00&max-results=20
(XCode3.2.5, iOS4.2)
Static Libraryは.aファイルとヘッダファイルが必要。
.aファイルの出力先にincludeディレクトリを作成し.hファイルが書き出される設定
ライブラリ作成
1.新規 > iOS > Library > Cocoa Touch Static Library から作成。
2.各種プログラムを記述
3.ターゲット > ターゲットファイル内で
追加 > 新規ビルドフェーズ > 新規コピーファイル を選択
4.一般 > デスティネーション > プロダクトディレクトリ
5.パス欄に include と記述
6.includeされるべき.hファイルを追加
ビルド後.aファイルの場所にincludeディレクトリが作成され.hファイルがコピーされる。
http://cocoadays.blogspot.com/search/label/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E9%96%8B%E7%99%BA?updated-max=2010-11-18T00%3A00%3A00%2B09%3A00&max-results=20
登録:
投稿 (Atom)