2019年02月19日

[Unity] ビルドエラー(duplicate symbol _UnityAdsSetMetaData in:)とかの解決方法

Unity2018.2からUnity2018.3に上げ、プロジェクトもそれに合わせて
更新がかかって、エディターで問題なく動いたので、いざiPhoneで動かそうと
Xcodeのプロジェクトを吐いたところ、以下のビルドエラーが出てしまいました。

※長いので一部のみ抜粋
----------------------------------
duplicate symbol _UnityAdsSetMetaData in:
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef4791b259c6a734020a5be22b528a7e5696d.o
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef479f3f3b1a13002e9ef587ebcbda266a24e.o
----------------------------------

たぶん、「UnityAdsUnityWrapperの中身が重複してるよ」という事だと思います。
「duplicate symbol」という文言が入るとだいたいそう。

色々調べた結果、原因は、
「以前Asset StoreからインポートしたUnityAds」と「PackageManagerから
インポートしたUnityAds」で、「UnityAds.framework」が重複している

でした。

↓Pacage ManagerからインポートしたUnityAdsが入っている場所
unity_package_ads.png

Asset StoreからインポートしたUnityAdsは、
Assets > Plugins > iOS
の方に入っていました。
念のため、Assets配下にある「UnityAdsに関連するファイルを全て削除」しました。

この後、Unityから「置き換え(Replace)」でビルドしてXcodeプロジェクトを吐き出したところ、
無事Xcode側でもビルドが通りました。

Unityのデフォルト機能は、今後PackageManagerからインポートする様に統一しよう。。。
posted by be-style at 02:51| Comment(0) | Unity

2019年02月08日

[Unity] プレファブが壊れた(Prefab may be broken)ときの1つの解決方法(Unityのアップデート後)

プロジェクトで使うUnityのバージョンを2018.2.20f1に上げてからの出来事です。

同じプロジェクトでも、使うUnityのバージョンの上げ下げを行うと
プロジェクトを開くときに「プロジェクトをUnityに合わせて更新するよ」
みたいなメッセージが冒頭で表示されます。

これまで「はい」を選択して、気にしていなかったのですが、
Unity2018.2.20f1に上げてから問題が起こりました。

プロジェクト画面にあるプレファブをヒエラルキー画面に
持ってこよう(ドラッグ)としたところ、

------------------------------------
Unable to instantiate prefab. Prefab may be broken.
UnityEditorInternal.InternalEditorUtility:HierarchyWindowDrag()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
------------------------------------

とコンソール画面に警告が表示され、ヒエラルキー画面に既存の
プレファブを置くことができませんでした。
よく見ると、プロジェクト画面のプレファブのアイコンがいつもと
違っていました。

prefab_broken.png

プレファブを編集したかったので困ってしまったのですが、
なんと、「プロジェクト画面の中でプレファブの名前を変える
だけで直りました。

↓適当な名前にしてから、ImageDividedScreen に戻したらアイコンが正常(?)になった

prefab_fixed.png

プレファブが壊れる理由は色々ありますが、もしUnityのアップデートが原因のときは
こちらを試してみると良いかもしれません。
posted by be-style at 21:52| Comment(2) | Unity

2019年02月07日

[Unity] UISimpleAlert (アセット) をリリースしました!

この度、Unityのアセットストア(Asset Store)に初めてアセットをリリースすることができました!
「UI Simple Alert」というアセットで、アラートやプログレスバーを手軽に表示できるものになっています。

単純なアラートやプログレスバーでもゼロから作るのが大変なので、パッケージにして色々なアプリで流用していました。自分で使っていて便利だったので、アセットストアに出してみよう!となりました。

構想から半年、何度もリジェクトをくらいましたが挫けずにリリースまでこぎつけました。
よろしければ、使ってみてくださいm(_ _)m

アラートのサンプル:
uisimplealert1.jpg

プログレスバーのサンプル:
uisimplealert2.jpg

アセットストア(Asset Store):
https://assetstore.unity.com/packages/tools/gui/uisimplealert-71199
posted by be-style at 22:11| Comment(0) | Unity

2018年12月23日

[iOS] iOS10にターゲットを上げたらビルドエラー(Multiple commands produce)

Xcodeで既存のプロジェクトを更新しようとして、まずターゲットをiOS9からiOS10に上げただけでビルドしてみたらビルドエラーが出ました。

------------------------------------
:-1: Multiple commands produce '/Users/[ユーザー名]/Library/Developer/Xcode/DerivedData/[プロジェクト名]-fwvixniobkrxbdakjlradoaanpkk/Build/Products/Debug-iphonesimulator/[プロジェクト名].app/Info.plist':
1) Target '[プロジェクト名]' (project '[プロジェクト名]') has copy command from '/Users/[ユーザー名]/Desktop/MyProject/[プロジェクト名]/[プロジェクト名]/Info.plist' to '/Users/[ユーザー名]/Library/Developer/Xcode/DerivedData/[プロジェクト名]-fwvixniobkrxbdakjlradoaanpkk/Build/Products/Debug-iphonesimulator/[プロジェクト名].app/Info.plist'
2) Target '[プロジェクト名]' (project '[プロジェクト名]') has process command with output '/Users/[ユーザー名]/Library/Developer/Xcode/DerivedData/[プロジェクト名]-fwvixniobkrxbdakjlradoaanpkk/Build/Products/Debug-iphonesimulator/[プロジェクト名].app/Info.plist'
------------------------------------

@CocoaPodsを使っているので、念のため関連するフレームワークを最新版にアップデート。
$ pod update
※対象プロジェクトのディレクトリに移動してから実行

AXcodeの操作(その1)
プロジェクト > TARGETS > [プロジェクト名] > Build Phases > Copy Bundle Resources
から、「Info.plist」を削除。

BXcodeの操作(その2)
(1) Podsプロジェクトの Build Settings > Valid Architectures > arm64 arm64e armv7 armv7s に変更
(2) Podsプロジェクトの Build Settings > Build Active Architecture Only > No に変更

これでビルドが通りました。

参考:
https://stackoverflow.com/questions/50718018/xcode-10-error-multiple-commands-produce
posted by be-style at 18:55| Comment(0) | iOS

2018年04月19日

[Other] PhotoshopCCでPSDを開こうとしたら「カラー設定を一致できません」で開けない

突然、UnityからPSDファイルが開けなくなった。
PSDファイルを開こうとすると「カラー設定を一致できません」というメッセージが表示される。

スクリーンショット 2018-04-19 10.51.27.png

メッセージにあるように、ファイルのロックやアクセス権を調べても問題ないし、Finderでファイルを複製してみてもダメだった。

PCの電源を落として再び起動したところ、この症状はなくなり、普通にPSDファイルを開くことができた。
なんだこれ!
posted by be-style at 16:39| Comment(0) | Other