Copying / Reading files on iPhone - objective-c

I am copying a SQLite file to the "Documents" directory of my iPhone/Simulator.
First I deleted the app off my phone and from the simulator and the app folder disappeared in "Application Support / iPhone " folder.
I made changes to the structure, deleted old version and copied new version to my "Resources" folder. Restarted my app which then copied the file back to the "Application Support / iPhone " fine.
The problem was though the file seemed to be cached as it would not execute queries on the new tables I added?
I have now fixed this by following the above steps BUT also renaming the database, but was wondering if anyone could shed some light on this?
Thanks
James

When changing a ressource I always "clean all target" and delete my App from the iPhone (device or simulator) , so I'm sure it will make the change.
However if your sqlite database is located in you ressources directory and not in document directory , you w'ont be able to do action such INSERT or ALTER TABLE because ressource directory is READ ONLY ;-) .
I advise you to move your sqlite db in Document folder when the app launch ;-) .
Hope it will help you.

Try a clean build. In Xcode: Build > Clean All Targets

Had to renamed the files as Cleaning the targets did not seems to work.

Related

How to get SQLite database file path for get Database using react-native

im using react-native-sqlite-storage For database
https://github.com/andpor/react-native-sqlite-storage
Now i have pre-populated-sqlite-database in .../www/ folder for both android & ios.
Now insert some data with query & get proper output of it in app. But now im delete database from /www folder but still its results are get in app. SO i think its create copy database of it.
how im get proper database path for this copy database file for both android & ios in react-native
When you deploy an app (or use in emulator), the database is copied to the platform and isn't the same as www/ folder. If you want to remove data from app
Either uninstall and install (it will copy again from www)
OR
Clear Application Data (that will clean all storage and make app as originally installed)
If you're keen to find path (though I couldn't think of a usecase), You can run make use of package like https://www.npmjs.com/package/react-native-fs and run code within App.js to find current directory and console.log it.
Run your app with Xcode and it will show you in Xcode console local database path copy that path and find it in Finder (macOS) and you will get you database file

Abc.app unsealed contents are present in the bundle root - Xcode, any change required to bundle?

I have switched my XCode version from 3.2.6 to 5.1.1, I have been asked to change the project settings and porting to a new format and resolved many compilation errors as well.
Now there is no compilation errors i could able to build my project successfully.
When I tries to sign the project using codesign v2 (mac 10.9.5) i could see the following error
"Abc.app unsealed contents are present in the bundle root"
To Resolve I have gone through the below link and tried to create a bundle structure as mentioned in it, but i'm missing something basically I don't know what it is.
Codesign: What are unsealed contents?
My folder Structure would be similar to below, if anyone has seen discrepancy kindly mention what i need to correct.
/src/Abc/
Abc.xcodeproj
build\
doc\
English.proj
Info.plist
Installer.pmdoc
InstallScripts\
Japanese.lproj\
Libraries\
Abc_Prefix.pch
Abc.pmproj
Package\
Resource\
*.png, *.icns, *.jpg, setting.plist
Source\
Uninstall\
zh_TW.lproj\
In my experience, this error message means I've left some files in the same folder level as the Contents folder.
Everything must be inside the Contents folder.
Try moving whatever files are on the same level as the Contents folder to somewhere inside the Contents folder.

How can one see an iOS bundle's file structure?

I'm trying to create a subfolder structure in my app following this advice:
Subdirectories within an iOS application
But I can't see (using the Organizer) a way to test whether the subfolder structure is actually achieved or not...is there a way to check, other than jailbreaking the phone and getting in through ssh?
You can open the bundle that is installed to the simulator by navigating to:
<User Name>/Library/Application Support/iOS Simulator/<Alpha-Numeric String>/<App Name>.app'
Once you navigate to the above location (it may be .ipa, can't remember exactly) you can right click and choose Show Package Contents which will show you the contents app bundle.
If the question relates to *.ipa or *.app boundles, then you can rename them to *.zip and go from there.
At the moment, with Xcode 10 and macOS 10.14.X the path for simulators would be:
/Users/<user>/Library/Developer/CoreSimulator/Devices/<XXX>/data/Containers/Bundle/Application/<YYY>
Also, if you want to check for the previous step and check the files that would be inside the *.app(bundle) in Derived Data (to check for devices) the path would be:
~/Library/Developer/Xcode/DerivedData/

Files removed from Xcode project, but still available in game

My cocos2d-iphone project has tiled maps (.tmx files along with .png textures).
Recently, I deleted all the .png textures in my project (in Xcode, you hit the delete key and then choose to send to trash).
Then, I ran the project, and it tried to load up the CCTMXTiledMap. I was expected it to crash (there shouldn't be any textures in the project, anyway), but it didn't. In fact, it ran just fine, and the maps did load. No idea why - is Xcode keeping some kind of reference to such files somehow?
I checked the .tmx file, and this is the line that defines the source image:
<image source="myMap-hd.png" width="973" height="1024"/>
There definitely is no myMap-hd.png nor myMap.png file in my project folder. Not even Xcode's search toolbar shows it!
Oh, and I also cleaned the project.
As I wrote in question's comment. Problem was not in your Xcode project. Deleted resource files will most likely be still available on device/simulator if you had run application with these resources previously. The reason is that Xcode doesn't track files that are in application bundle, they're just simply copied. That's why they land in Copy Bundle Resources build phase.
You should delete application from device/simulator and run it again. Or if you have precious data already in application, you could navigate to application bundle and delete file manually. Files won't appear again.
In the simulator, iOS Simulator (menu item) > Reset Content and Settings. Clean your project, then run again. Same thing happens without cocos2D.
I've found this to be an issue when nib files are automagically loaded, and while not in the referenced files seem to still be loaded (or attempted). Can cause some brain pain bc the files don't appear in the Xcode IDE though they do exist in the file system.

Xcode: "The document could not be saved. You don’t have permission."

I'm getting this error when trying to save a file in Xcode 4:
"The document could not be saved. You don’t have permission. To view or change permissions, select the item in the Finder and choose File > Get Info."
Naturally, saving the file in TextMate works fine. Permissions: -rw-r--r--
Nothing changed from when it worked the last time.
Files are not locked, I tried rebooting, disk space is ok, files are on a local drive, error was googled. Any ideas?
Thanks.
Update: Also tried copying the files or renaming them. Directories are not locked. By the way, when I edited project configuration in Xcode it saves fine, I only met with the issue saving .m/.h files. I guess that copying the actual text in the files would work but I'm trying to find a bit less hardcore solution (bash script wouldn't be the issue but there could be other problems). It's not the simplest project either (~70 files, edited config).
Update 2: Found possible duplicate, doesn't really resolve the problem Unable to unlock file for editing in Xcode 4?
Update 3: Checked out earlier commit and when opening Xcode it said the project is locked. Checked out the same commit again and the error does not appear again (all files exc. DS_Store are tracked). What.
Update 4: I created a new user and set chmod -R 777 to the project directory. Editing now works fine. However I can't get it to work under my main account (I have all my preferences here.)
Rebooting fixed the error in my case.
Fixed by changing account name by following this guide. This essentialy creates a new account but with your old Home directory and within the process of transferring it fixes some file permissions.
(From above link:)
For Mac OS X v10.5 or later (do this twice if you want to keep your original username)
:
Enable the root user.
Log in as root.
Navigate to the /Users folder.
Select the Home folder with the short name you want to change, and rename it just like you would rename any folder. Keep in mind that the shortname must be all lowercase, with no spaces, and only contain letters.
Use the Users & Groups pane (Accounts pane in Mac OS X v10.6.8 or earlier) in System Preferences to create a new user with the Account name or Short Name that you used in the previous step.
Click OK when "A folder in the Users folder already has the name 'account name'. Would you like to use that folder as the Home folder for this user account?" Note: This will correct the ownership of all files in the Home folder, and avoid permissions issues with the contents.
Choose Log Out from the Apple menu.
Log in as the newly created user. You should be able to access all of your original files (on the desktop, in Documents, and in the other folders of this Home).
After verifying that your data is as expected, you can delete the original user account via the Users & Groups pane (Accounts pane in Mac OS X v10.6.8 or earlier).
Disable the root user.
Xcode 6 update: still seeing this problem.
Seems like an Xcode bug, because opening the file by clicking the error in the Issue navigator causes this problem, but if I open the file using the cmd+shift+O shortcut I am able to edit and save it. So for me the workaround is to not open the file by selecting the error and to open it using the Project navigator or Open quickly shortcut.
I upgraded to Lion and downloaded the new Xcode and found the same problem and found nothing to help, losing about three days trying to fix it. Then I realized that the Xcode 4, which is saved in the Applications folder, doesn't overwrite Xcode 3, which is in the Developer folder. When I was opening Xcode, I was opening version 3, not 4.
Make sure you're opening the right version.
open up the terminal and set
chmod 777
to the desired file or set
chmod -R 777
to the desired directory.
it should solve your problem
I just ran into this issue also. I was not able to fix it not by changing the permissions of the individual project file or folder. However, I was able to fix it by going into 'get info' on my user's home folder, reselecting the 'Read & Write' permissions for my user, and then clicking the gear->'apply to enclosed items'. Took it a while but then everything worked as expected. Hope it helps someone else.
This maybe helpful If you use CocoaPods: https://stackoverflow.com/a/38885499/3395008
I'm running Xcode 7.3 and CocoaPods 1.0.0. and this happens when trying to modify a file from a pod added as a development pod (i.e. from a local directory).
I just pod update again, when pod finished, Xcode will show an alert "The document has previously unsaved changes.", then click "Re-Save". that fix my issue.
I Had the same problem with actual swiftUI.
Solved the Problem easy:
Copy and paste the content from .swift-file to a word-document
Delete the swift-file
Close Xcode and reboot Hardware
New .swift-file in XCode and paste code from word-document
cmd+B ... cmd+r
I used to encounter the same problem several times, last time it was on Xcode 12.4
It seems like a bug for me, because it tells that some private file is modified despite I don't have any permissions to do so even if I want. Force quitting and relaunching the Xcode always helped before.